Mini210S 開発キットOSなしのプログラム開発手順連載(11)

Mini210S/Tiny210等開発ボード関連のフォラーム

Mini210S 開発キットOSなしのプログラム開発手順連載(11)

投稿記事by dwtechadm » 火 4 23, 2013 3:33 pm

Mini210S 開発キット詳細URL



第VIII章 DRAMにコードをリロケーション


第三節 コードコンパイルとプログラミングの実行


SDカードをPCにアクセスして、Fedora端末で下記のコマンドを実行します:
# cd 6.sdram
# make
# chmod 777 write2sd
# ./write2sd
makeを実行後、210.binファイルは生成します、./write2sd実行し、.binはsdカードセクタ1にプログラミングします。
write2sd の内容は下記の通りです:
#!/bin/sh
sudo dd iflag=dsync oflag=dsync if=./BL1/BL1.bin of=/dev/sdb seek=1
sudo dd iflag=dsync oflag=dsync if=./BL2/BL2.bin of=/dev/sdb seek=49
./write2sdを実行後、BL1.binは、SDカードのセクタ1にプログラムされ、BL2.binはSDカードのセクター49にプログラムされます。

注:開発ボードにプログラム方法を同じです、以後の章では特に説明致しません。


第四節 実験現象

SDカードをMini210Sに挿入して、SDカードを起動・通電します。次の現象を確認できます:
LEDが正常に点滅します、実験現象は前の章と同じですが、実行中のプログラムには大きな違いがあります。ここまで、私達はリロケーションの基本知識を習得します。次からはより順調開発するために、便利なUSBダウンロード工具をご紹介します。




第VIX章 ブザー制御


第一節 回路図
Mini210Sにはブザーが付きます、この章では、ブザーを制御する方法を学ぶようになります。関連ピン回路図は下記の通り:
画像


第二節 プログラム説明

完全なコードは、ディレクトリ8.buzzerご参照ください。
ブザーを制御するのは簡単です、その原理はLEDと同じ、GPDO_O ピンの制御によりブザーを制御することができます。
1. start.S
start.S は次の三つのプロセスがあります:
ステップ1 ウォッチドッグを閉じる;
ステップ2 スタックを設定する、SuperbootはDRAMを初期化するために、スタックをDRAMの最後0x40000000に設定します;
ステップ3 main 関数を呼び出し;
2. buzzer.c
完全コード:
#define GPD0CON (*(volatile unsigned long *)0xE02000A0)
#define GPD0DAT (*(volatile unsigned long *)0xE02000A4)
void buzzer_init(void)
{
GPD0CON |= 1<<0;
}
void buzzer_on(void)
{
GPD0DAT |= 1<<0;
}
void buzzer_off(void)
{
GPD0DAT &= ~(1<<0);
}
関数Buzzer_init()はGPIOピンを設定、GPD0_0を入力機能に設定します;
関数 buzzer_on()をピン GPD0_0 に 0を出力して、プザーが鳴きます;
関数 buzzer_off()ピン GPD0_0に 1を出力して、プザーが鳴きません;

3. main.c
次にmain.cでは、buzzer_init()を呼び出し、ブザーを初期化します、続いてwhileループでブザーの鳴き/停止を制御します。


第三節 コードコンパイルとプログラミングの実行

コードをコンパイルし、Fedora端末で下記のコマンドを実行します:
# cd 8.buzzer
# make
8.buzzerのディレクトリ下にbuzzer.binを生成し、それを開発ボードにプログラムします。


第四節 実験現象

実験現象は簡単で、開発ボードのプザーが鳴き始めます。








---続く
dwtechadm
 
記事: 60
登録日時: 月 2 25, 2013 1:35 pm

Return to Cortex-A8関連

オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[0人]