【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 */
ldr r0, =0x7E004000
mov r1, #0
str r1, [r0]
/* 設置GPMCON讓GPM3作爲輸出引腳 */
ldr r1, =0x7F008820
mov r0, #0x1000
str r0, [r1]
/* 設置GPMDAT讓GPM3輸出0 */
ldr r1, =0x7F008824
mov r0, #0
str r0, [r1]
halt:
b halt 

1. 把外設基地址告訴CPU.

因爲CPU訪問某個地址時不知道訪問的是外設地址還是內存地址,需要協處理指令設置外設地址範圍。

S3C6410外設地址範圍256M(0x70000000-0x7fffffff) ,如代碼所設置。

協處理器訪問指令參見我的另一篇博文  CP15協處理器訪問指令MCR/MRC解析

For example:

MRC p15, 0, <Rd>, c15, c2, 4 ; Read Peripheral Port Memory Remap Register
MCR p15, 0, <Rd>, c15, c2, 4 ; Write Peripheral Port Memory Remap Register



2.關閉看門狗

3. IO口操作

OK6410開發板IO口資源如下圖所示:


IO口主要以下幾點用途:輸出,輸入,外部觸發中斷,複用功能;只要配置相應的寄存器即可。LED操作需要配置爲輸出口。

代碼設置GPM3爲輸出,其餘位輸入,再向GPMDAT寫入0,結果是點亮LED4。



發佈了34 篇原創文章 · 獲贊 7 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章