今日、C言語での組み込みの開発方法の入門講座みたいなのを
聞いてきた。内容をメモメモ
クロス環境
ホストマシンからターゲットマシンにダウンロードする
→ターゲット側のプログラムを作る
バイナリツール
実行形式を変換
デバッグ
ICEを使う場合、モニタプログラムを使う場合
【手順】
Cコンパイラ
↓
リンカー
↓
バイナリツール
↓(変換)
ROMライター(ベンダーで決めている)
↓
ターゲットで動かす
GNUでARM用サポートされている
gas:コンパイラ
ld:リンカ
objcopy:実行形式変換
モトローラー、インテル(HEX)どっちかを変換
→Objcopyで設定
【実習】
・USBドライバをインストール
・USBのポート番号を確認
マイコンピューターのシステム ハードウェア デバイスマネージャー ポート
・FlashMagicを設定する

・プログラムを作る
・makeする
→コンパイル、リンク、実行形式の変換をする
→*.hexファイルができる
・ボードをプログラムが書き込めるモードにする
→ジャンパーを入れて(閉じて)リセット
・FlashMagicでファイルを指定してStart
→下のほうが動く
・基盤のジャンパーをとって(開いて)リセットすると実行
【組み込みプログラム】
・常に動き続ける→返ってしまうと暴走してしまう
while(1){}
【しくみ】
・マクロでアドレスを指定しておく
#define PINSEL0 *((volatile unsigned int *)(0xE002C000))
→#define マクロ名 *((volatile unsigned long *)アクセスしたいアドレス)
→つまり、ハードウェアを直接たたいて制御
・そのマクロを組み合わせて1コマンドへ
LED_ON
・ピンモードをGPIO
・プルアップに設定
・出力に設定
・マスクなし(0)
・1をセットするとHigh,0でLow、LowでLEDON
・Cでプログラム
上記のものは、ライブラリとして用意
→プロトタイプ宣言してあるヘッダーファイルをインクルード
LED_ONとかを書く
聞いてきた。内容をメモメモ
クロス環境
ホストマシンからターゲットマシンにダウンロードする
→ターゲット側のプログラムを作る
バイナリツール
実行形式を変換
デバッグ
ICEを使う場合、モニタプログラムを使う場合
【手順】
Cコンパイラ
↓
リンカー
↓
バイナリツール
↓(変換)
ROMライター(ベンダーで決めている)
↓
ターゲットで動かす
GNUでARM用サポートされている
gas:コンパイラ
ld:リンカ
objcopy:実行形式変換
モトローラー、インテル(HEX)どっちかを変換
→Objcopyで設定
【実習】
・USBドライバをインストール
・USBのポート番号を確認
マイコンピューターのシステム ハードウェア デバイスマネージャー ポート
・FlashMagicを設定する

・プログラムを作る
・makeする
→コンパイル、リンク、実行形式の変換をする
→*.hexファイルができる
・ボードをプログラムが書き込めるモードにする
→ジャンパーを入れて(閉じて)リセット
・FlashMagicでファイルを指定してStart
→下のほうが動く
・基盤のジャンパーをとって(開いて)リセットすると実行
【組み込みプログラム】
・常に動き続ける→返ってしまうと暴走してしまう
while(1){}
【しくみ】
・マクロでアドレスを指定しておく
#define PINSEL0 *((volatile unsigned int *)(0xE002C000))
→#define マクロ名 *((volatile unsigned long *)アクセスしたいアドレス)
→つまり、ハードウェアを直接たたいて制御
・そのマクロを組み合わせて1コマンドへ
LED_ON
・ピンモードをGPIO
・プルアップに設定
・出力に設定
・マスクなし(0)
・1をセットするとHigh,0でLow、LowでLEDON
・Cでプログラム
上記のものは、ライブラリとして用意
→プロトタイプ宣言してあるヘッダーファイルをインクルード
LED_ONとかを書く