teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

変更

2020/11/26 10:26

投稿

kazuyakazuya
kazuyakazuya

スコア193

answer CHANGED
@@ -8,5 +8,9 @@
8
8
  (未解決)
9
9
 
10
10
  問題2
11
- たぶん、関数のアドレスを正しく取得できていい。
11
+ 関数のアドレスを正しく取得できていませんでした
12
+ その関数ポインタは生成されたrawバイナリの先頭アドレスから
12
- 関数のアドレスを固定すること解決)
13
+ 関数の配置アドレスのオフセットが入っています。
14
+ (逆に言えば、アドレス0x0000からrawバイナリを配置すれば問題なく動く)
15
+
16
+ なので、[関数ポインタ + バイナリ配置アドレス]とやることで解決しました。

1

変更

2020/11/26 10:26

投稿

kazuyakazuya
kazuyakazuya

スコア193

answer CHANGED
@@ -4,18 +4,9 @@
4
4
 
5
5
  問題1
6
6
  割り込みハンドラの関数を定義する際は
7
+ コンパイラに割り込み専用に関数を作らせる必要があります。
8
+ (未解決)
7
9
 
8
- ```ここに言語を入力
9
- #pragma interrupt
10
- void Handler_List_0x00(void) { //割り込みベクタ0x00
11
-
12
-
13
- }
14
- ```
15
- のようにします。
16
-
17
10
  問題2
18
11
  たぶん、関数のアドレスを正しく取得できていない。
19
-
20
-
21
- 以上ことなんとかしたとろ無事動きました。
12
+ (関数アドレス固定するとで解決)