質問編集履歴

2

情報追加

2016/12/18 10:30

投稿

minato_hy
minato_hy

スコア68

title CHANGED
File without changes
body CHANGED
@@ -18,8 +18,8 @@
18
18
  というようなものになると思うのですが、実際には
19
19
  ```
20
20
  source_b/Ret.c:3:12: error: `HEADER_A' undeclared (first use in this function)
21
- return HEADER_A * 2;
21
+ int x = HEADER_A * 2;
22
- ^
22
+ ^
23
23
  1 error generated.
24
24
  ```
25
25
  というエラーが出ています。
@@ -93,13 +93,16 @@
93
93
  ```C
94
94
  #include "header_a.h"
95
95
  int ret_a(void){
96
- return HEADER_A * 2;
96
+ int x = HEADER_A * 2;
97
+ int y = HEADER_B * 2;
98
+ return x + y;
97
99
  }
98
100
  ```
99
101
 
100
102
  header_a.h
101
103
  ```C
102
104
  #define HEADER_A eeprom_data[0x01] * 10 //EEPROM領域のデータ
105
+ #define HEADER_B eeprom_data[0x02] * 10
103
106
  ```
104
107
 
105
108
  ###補足情報(言語/FW/ツール等のバージョンなど)

1

情報の追加

2016/12/18 10:30

投稿

minato_hy
minato_hy

スコア68

title CHANGED
File without changes
body CHANGED
@@ -1,6 +1,8 @@
1
1
  ###前提・実現したいこと
2
2
  組み込み系のソフト開発で、GNUツールチェーンでの開発環境構築を試みています。
3
3
  [CYPRESSのアプリケーションノート](http://www.cypress.com/file/296741/download)を参考に、Makefileを記述しCソースのコンパイルをしようとしているのですが、インクルードしたヘッダファイル内で`#define`されているはずの変数が、`undeclared`でエラーになります。
4
+ なお問題の変数は、EEPROM領域のデータを読み出して変数として定義したものです。
5
+ EEPROM領域というのは、マイコンメモリのflash領域の一部をEEPROMとみなしてデータを格納している部分という大雑把な認識なのですが、不正確ならすみません。
4
6
 
5
7
  申し訳ありませんが対象のプロジェクトは外部に出せないものなので、以降それをイメージした簡易なプロジェクト例で説明させていただきます。また、この簡易プロジェクトだと同様のエラーを再現できていませんので、あくまでイメージとさせてください。
6
8
 
@@ -97,7 +99,7 @@
97
99
 
98
100
  header_a.h
99
101
  ```C
100
- #define HEADER_A 12
102
+ #define HEADER_A eeprom_data[0x01] * 10 //EEPROM領域のデータ
101
103
  ```
102
104
 
103
105
  ###補足情報(言語/FW/ツール等のバージョンなど)