1. 程式人生 > >第008課_第1個ARM落版程序及引申

第008課_第1個ARM落版程序及引申

ash 學習 啟動 nor 引腳 技術分享 因此 ask 知識

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落版程序及引申