新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 在OK6410上點(diǎn)亮指路明燈(LED)

在OK6410上點(diǎn)亮指路明燈(LED)

作者: 時(shí)間:2016-11-21 來源:網(wǎng)絡(luò) 收藏
說實(shí)話,對于專業(yè)人事,這可能是十分簡單的東西,但是還是記錄一下,免得回頭又忘了,畢竟看視頻還是挺麻煩的。

這是開發(fā)板底板的原理圖,所以只要把對應(yīng)的管腳變成低電平就可以了
所以這就是最簡單的GPIO,其實(shí)我覺得這里面的這個(gè)和K60里的那個(gè)十分相似,GPIO既有IO輸入輸出功能,也有外部中斷功能,甚至更多。(畢竟cortexM系列的只適用于工控)
所以附上GPIO的管腳圖和寄存器


所以配置GPMCON為對應(yīng)的功能,數(shù)據(jù)在DATA里配置


GPMCON和GPMCON的地址都已經(jīng)告訴我們了,所以只要往這個(gè)兩個(gè)地址里寫入對應(yīng)的配置就可以了
control寄存器要輸出功能的設(shè)為0001,所以往0x7f8820里寫入0x111就可以了,往0x7f008824寫入0x5就可以了(兩盞燈建個(gè)亮,另外兩盞不亮)
說明這一部分的匯編語言還是蠻重要的=3=!
貼上匯編代碼,為什么是匯編呢?而不是C語言?因?yàn)槲疫€沒有學(xué)搭建C語言的環(huán)境,只能先用匯編
#define GPMCON 0x7f008820
#define GPMDAT 0x7f008824
light_led:
ldr r0, =GPMCON
ldr r1, =0x1111
str r1, [r0]
ldr r0, =GPMDAT
ldr r1, =0x5
str r1, [r0]
mov pc, lr
但是這樣下載到開發(fā)板里面不能使LED亮,因?yàn)闆]有對外設(shè)基地址初始化,對,下面的僅僅是對LED的外設(shè)基地址初始化
set_peri_port:
ldr r0, =0x70000000
orr r0,r0,#0x13
mcr p15,0,r0,c15,c2,4
mov pc, lr
這樣把start.S文件和腳本和makefile放在一個(gè)文件夾里面,在Linux里面用GCC編譯鏈接生成.bin文件,通過USB用dnw下載到nand flash里面(其實(shí)不管用什么,只要把.bin文件下載到芯片的nand flash里面就可以了),在設(shè)置開發(fā)板從nand flash啟動(dòng),重啟就可以看見LED亮了
還是虛擬機(jī)配Linux系統(tǒng)好用,不用去想辦法解決各種Windows的不兼容


關(guān)鍵詞: OK6410指路明燈LE

評(píng)論


技術(shù)專區(qū)

關(guān)閉