天天看點

OK6410開發闆裸闆程式實驗-LED

本人想寫一個簡單的Bootloader,以前在2410上寫過一個。是以現在想在6410上也寫一個,友善了解啟動過程。但是發現剛一起步就遇到了困惑。

以前玩ARM7、ARM9、PowerPC闆子時,都有燒寫器或下載下傳器可以将一段彙編代碼放到nor flash中運作。

但現在發現目前市面上很多6410的開發闆不太容易這麼做,很多都是沒有nor flash,要通過u-boot将程式下載下傳到Nand flash中,然後利用u-boot指令來運作nand flash裡面的彙程式設計式。

既然是裸機程式,那麼就不想闆子上同時有其他程式在運作。

這給獨立寫一個Bootloader并放到nand flash上運作程式帶來了不便。

本人買了一塊飛淩科技的OK6410開發闆,準備在上面完成這個Bootloader的工作。

第一件事情就是如何将一個裸機程式單獨的在闆子上運作。從網上找了很多資料,這篇文章http://bbs.witech.com.cn/thread-6921-1-3.html 介紹了具體方法。

我是用的是方法一:使用WinHex_14.0_SR-1_SC.exe來作為輔助軟體。使程式燒寫到SD卡中,從SD卡中啟動裸奔程式。

也就是說闆子啟動從SD卡啟動,這樣也算是真正的裸機程式了。試驗成功。

我是用的代碼如下,可以控制OK6410的LED燈。

把以下代碼編譯後。放到SD卡中,然後用SD卡啟動。

(從網上找的參考代碼,以後有時間再分析吧):

AREA  Test, CODE, READONLY  ; name this block of code
    ENTRY                       ; mark first instruction
                                ; to execute
start
    B   reset
    
        
reset   
    
    B     main
    NOP
        
main            

    ldr     r0,=0x7f008820  
    ldr     r1,=0x1111  
    str     r1,[r0]  
    ldr     r0,=0x7f008824  
    ldr     r1,[r0]
    ldr     r2,=0x1 
    mov     r3,#0 

   ; bic     r2,r1,#3  
   ; orr     r2,r2,#0xc  
   ; bic     r3,r1,#0xc  
   ; orr     r3,r3,#3  
nn 

        lsl     r2,#1
    add     r3,r3,#1 
    cmp     r3,#4
    moveq   r2,#1
    moveq   r3,#0
   
    str     r2,[r0]  
    ldr     r4,=5000000
      
delay1  
    sub     r4,r4,#1  
    cmp     r4,#0 
    bne     delay1  
   ; str     r3,[r0]  
  ;  ldr     r4,=5000000  
;delay2  
  ;  sub     r4,r4,#1  
  ;  cmp     r4,#0  
  ;  bne     delay2  
     b       nn 
    END
           

作者:滄海獵人   出處:http://blog.csdn.net/embedded_hunter  轉載請注明出處   嵌入式技術交流QQ群:179012822

繼續閱讀