回答編集履歴

2

変更

2020/11/26 10:26

投稿

kazuyakazuya
kazuyakazuya

スコア193

test CHANGED
@@ -18,6 +18,14 @@
18
18
 
19
19
  問題2
20
20
 
21
- たぶん、関数のアドレスを正しく取得できていい。
21
+ 関数のアドレスを正しく取得できていませんでした
22
22
 
23
+ その関数ポインタは生成されたrawバイナリの先頭アドレスから
24
+
23
- 関数のアドレスを固定ることで解決)
25
+ 関数の配置アドレスまでのオフセットが入っていま
26
+
27
+ (逆に言えば、アドレス0x0000からrawバイナリを配置すれば問題なく動く)
28
+
29
+
30
+
31
+ なので、[関数ポインタ + バイナリ配置アドレス]とやることで解決しました。

1

変更

2020/11/26 10:26

投稿

kazuyakazuya
kazuyakazuya

スコア193

test CHANGED
@@ -10,23 +10,9 @@
10
10
 
11
11
  割り込みハンドラの関数を定義する際は
12
12
 
13
+ コンパイラに割り込み専用に関数を作らせる必要があります。
13
14
 
14
-
15
- ```ここに言語を入力
16
-
17
- #pragma interrupt
18
-
19
- void Handler_List_0x00(void) { //割り込みベクタ0x00
20
-
21
-
22
-
23
-
24
-
25
- }
26
-
27
- ```
28
-
29
- のようにします。
15
+ (未解決)
30
16
 
31
17
 
32
18
 
@@ -34,8 +20,4 @@
34
20
 
35
21
  たぶん、関数のアドレスを正しく取得できていない。
36
22
 
37
-
38
-
39
-
40
-
41
- 以上のことをなんとかしたところ無事動きました。
23
+ (関数アドレスを固定することで解決)