基於x210開發板的led燈點亮。
查閱底板原理圖可以得到,四個led引腳分別為:
其中pwmtout1引腳與核心板的gpd0_1引腳相連,所以可以通過操作gpd0_1引腳來操作d25。
gpio,general purpose input output的簡稱,屬於晶元上的一部分引腳,這部分引腳可以被程式設計控制工作模式和電壓高低,以上的四個引腳都屬於gpio引腳的一部分,所以我們可以通過程式設計控制這些led的開和關
軟體操作硬體的介面就是暫存器,我們如果要操作控制這些gpio,就要操控gpio的暫存器,通過讀寫這些暫存器來讓gpio發生響應的動作,查閱s5pv210的使用者手冊的gpio的章節可以得到gpj0的相關暫存器:
gpj0dat,資料暫存器,一共8位
gpj0pud,pull-up/ down,控制引腳的弱上/下拉
gpj0drv,deiver,用於配置gpio引腳的驅動能力,驅動電流大小
gpj0conpdn,上/下拉暫存器
gpj0pudpdn,上/下拉暫存器
通過上面步驟可以得到我們點亮led的程式設計步驟:
彙編**:
#define gpj0con 0xe0200240
#define gpd0con 0xe02000a0
#define gpj0dat 0xe0200244
#define gpd0dat 0xe02000a4
.global _start // 把_start宣告為外部可訪問,以便匯程式設計序定位到這裡開始執行
_start:
// 把0x11111111寫入0xe0200240(gpj0con)
ldr r0,=0x11111111 // =號可以看出使用的是ldr偽指令
ldr r1,=gpj0con
str r0,[r1] // 暫存器間接定址,把r0中的資料寫到r1指標指向的變數中
ldr r4,=1
<<4 // 配置led6控制引腳為輸出引腳
ldr r5,=gpd0con
str r4,[r5]
flash:
// 使用位移進行運算
ldr r0,=1
<<1 //熄滅led6
ldr r1,=gpd0dat
str r0,[r1] // 引腳輸出低電平
ldr r0,=~(1
<<3) // 點亮led3,其他熄滅
ldr r1,=gpj0dat
str r0,[r1] // 引腳輸出低電平
bl delay // 呼叫延時函式
ldr r0,=1
<<1 //熄滅led6
ldr r1,=gpd0dat
str r0,[r1] // 引腳輸出低電平
ldr r0,=~(1
<<4) //點亮中間的led4燈
ldr r1,=gpj0dat
str r0,[r1] // 引腳輸出低電平
bl delay // 呼叫延時函式
ldr r0,=1
<<1 //熄滅led6
ldr r1,=gpd0dat
str r0,[r1] // 引腳輸出低電平
ldr r0,=~(1
<<5) //點亮led5
ldr r1,=gpj0dat
str r0,[r1] // 引腳輸出低電平
bl delay // 呼叫延時函式
ldr r0,=0
<<1 //點亮led6
ldr r1,=gpd0dat
str r0,[r1] // 引腳輸出低電平
ldr r0,=(1
<<3 | 1
<<4 | 1
<<5) //熄滅其他燈
ldr r1,=gpj0dat
str r0,[r1] // 引腳輸出低電平
bl delay // 呼叫延時函式
b flash; // 使用b進行不返回跳轉,實現無限迴圈
delay: // 延時函式
ldr r2,=9999999
ldr r3,=0x0
delay_loop:
subr2,r2,#1 // r2遞減
cmp r2,r3 // 通過比較會影響cpsr的z標記,等於的話z=1,eq就會成立,否則下一句的ne就會成立
bne delay_loop // 如果不等就繼續迴圈
mov pc,lr // 返回,將lr中的位址放到pc中,以便呼叫函式繼續執行
make之後,就可以燒寫進開發板進行裸機執行了。 ARM裸機之點亮LED
實驗開發版 s5pv210 1 什麼是gpio?general purpose input output 通用輸入 輸出 簡稱為gpio,屬於晶元引腳的一部分。嵌入式系統中常常有數量眾多,但是結構卻比較簡單的外部裝置 電路,對這些裝置 電路有的需要cpu為之提供控制手段,有的則需要被cpu用作輸入訊...
OK6410裸機程式 點亮LED
globl start start 硬體相關的設定 peri port setup ldr r0,0x70000000 orr r0,r0,0x13 mcr p15,0,r0,c15,c2,4 256m 0x70000000 0x7fffffff 關看門狗 往wtcon 0x7e004000 寫0 ...
S3C2440之裸機之彙編點亮LED燈
虛擬機器環境 oracle vm virtualbox linux系統 ubuntu 14.04.6 交叉編譯工具 100ask分享的所有檔案 100ask分享的所有檔案 002 jz2440資料光碟 20180516 免費 資料光碟 a盤 tools.zip arm linux gcc 4.3.2...