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を生成し、それを開発ボードにプログラムします。
第四節 実験現象
実験現象は簡単で、開発ボードのプザーが鳴き始めます。
---続く