組込みソフトウェアコーディングTips
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
* 組込みソフトウェアコーディングTips [#zc1e7a9f]
** volatile 指定 [#r2914a59]
H/W のレジスタなど、ソースコード上ではいじらなくても値が...
volatile 指定をしないと、コンパイラの最適化により、最初の...
例として、以下のようなコードは、ソースコード上 while ルー...
しかし、実際には H/W が timer_reg の値を更新していくので...
long* timer_reg;
long expired = 1000;
while (*timer_reg != expired) {}
組込みソフトウェアのコーディングで、レジスタ変数と while ...
** Cache 操作 [#i40fd5d3]
メモリアクセスの高速化のために、CPU などはキャッシュを備...
キャッシュ上のデータをメモリ本体に反映しているか。CPU で...
キャッシュ上のデータがメモリ本体の内容を破壊しないか。DMA...
** アラインメント [#xbc4d267]
各 H/W によって、メモリアクセスで利用できるアラインメント...
また、構造体を定義する時も、CPU のアラインメントを意識し...
4byte, 32byte, 4KB など、アラインメントは、H/W によって様...
** リンカスクリプトのシンボル定義 [#u1a51acf]
リンカスクリプトには、シンボルを定義して、Cコード側から参...
例えば以下のようなシンボルがあった場合、
SAMPLE_AREA=0x02000000
SAMPLE_AREA_SIZE=0x1000
Cコードでは、次のように値を取得できます。
extern unsigned long SAMPLE_AREA;
extern unsigned long SAMPLE_AREA_SIZE;
printf("addr = %x, size= %x\n", &SAMPLE_AREA, (unsigned ...
注意する点として、リンカスクリプトに定義できるのは、あく...
printf("value = %x\n", *(unsigned long*)&SAMPLE_AREA_SIZ...
----
** 履歴 [#z66b6176]
- 2015/01/28 bokupi リンカスクリプトのシンボル定義を追加
- 2015/01/08 bokupi 新規作成
終了行:
* 組込みソフトウェアコーディングTips [#zc1e7a9f]
** volatile 指定 [#r2914a59]
H/W のレジスタなど、ソースコード上ではいじらなくても値が...
volatile 指定をしないと、コンパイラの最適化により、最初の...
例として、以下のようなコードは、ソースコード上 while ルー...
しかし、実際には H/W が timer_reg の値を更新していくので...
long* timer_reg;
long expired = 1000;
while (*timer_reg != expired) {}
組込みソフトウェアのコーディングで、レジスタ変数と while ...
** Cache 操作 [#i40fd5d3]
メモリアクセスの高速化のために、CPU などはキャッシュを備...
キャッシュ上のデータをメモリ本体に反映しているか。CPU で...
キャッシュ上のデータがメモリ本体の内容を破壊しないか。DMA...
** アラインメント [#xbc4d267]
各 H/W によって、メモリアクセスで利用できるアラインメント...
また、構造体を定義する時も、CPU のアラインメントを意識し...
4byte, 32byte, 4KB など、アラインメントは、H/W によって様...
** リンカスクリプトのシンボル定義 [#u1a51acf]
リンカスクリプトには、シンボルを定義して、Cコード側から参...
例えば以下のようなシンボルがあった場合、
SAMPLE_AREA=0x02000000
SAMPLE_AREA_SIZE=0x1000
Cコードでは、次のように値を取得できます。
extern unsigned long SAMPLE_AREA;
extern unsigned long SAMPLE_AREA_SIZE;
printf("addr = %x, size= %x\n", &SAMPLE_AREA, (unsigned ...
注意する点として、リンカスクリプトに定義できるのは、あく...
printf("value = %x\n", *(unsigned long*)&SAMPLE_AREA_SIZ...
----
** 履歴 [#z66b6176]
- 2015/01/28 bokupi リンカスクリプトのシンボル定義を追加
- 2015/01/08 bokupi 新規作成
ページ名: