第008課_第1個ARM落版程序及引申
form:第008課_第1個ARM裸板程序及引申
第001節_輔線1_硬件知識_LED原理圖
當我們學習C語言的時候,我們會寫個Hello程序。那當我們下ARM程序,也該有一個簡單的程序引領我們入門,這個程序就是點亮LED。
我們怎樣去點亮一個LED呢?分為三步:
1. 看原理圖,確定控制LED的引腳;
2. 看主芯片的芯片手冊,確定如何控制這個引腳
3. 寫程序
先來講講怎麽看原理圖:LED的樣子有很多種,想插腳的,貼片的。
它們長得完全不一樣,因此我們在原理圖中將它抽象出來。
點亮LED需要同電源,同時為了保護LED,價格電阻減小電流。控制LED燈的亮滅,可以手動開關LED,但在電子系統中,不可能讓人來控制開關,通過編程,利用芯片的引腳去控制開關。
LED的驅動方式,常見的有四種。
方式1:使用引腳輸出3.3V點亮LED,輸出0V熄滅LED。
方式2:使用引腳拉低到0V點亮LED,輸出3.3V熄滅LED。
方式3:使用引腳輸出1.2V點亮LED,輸出0V熄滅LED。
方式4:使用引腳輸出0V點亮LED,輸出1.2V熄滅LED。
由此,主芯片引腳輸出高電平/低電平,即可改變LED狀態,而無需關註GPIO引腳輸出的事3.3V還是1.2V。所以簡稱輸出1或0:
邏輯1 -> 高電平
邏輯0 -> 低電平
第002節_輔線1_硬件知識_S3C2440啟動流程與GPIO操作
在原理圖中,同名的Net表示是連在一起的。
引腳GPF4怎樣輸出1或0?
1. 配置為輸出引腳
2. 設置狀態
因此,設置GPFCON[9:8]=0b01,即GPF4配置為輸出
設置GPFDAT[4]=1或0,即輸出高電平或低電平
S3C2440框架:
S3C2440啟動流程:
Nor啟動:
Nor Flash的基地址為0,片內RAM地址為0x4000 0000;
CPU讀出Nor上第1個指令(前4字節),執行
第008課_第1個ARM落版程序及引申