加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

OK6410开发板裸板程序实验-LED

发布时间:2020-12-15 06:45:03 所属栏目:百科 来源:网络整理
导读:本人想写一个简单的Bootloader,以前在2410上写过一个。因此现在想在6410上也写一个,方便理解启动过程。但是发现刚一起步就遇到了困惑。 以前玩ARM7、ARM9、PowerPC板子时,都有烧写器或下载器可以将一段汇编代码放到nor flash中运行。 ? 但现在发现目前市

本人想写一个简单的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,#0xc  
   ; orr     r3,r3,#3  
nn 

        lsl     r2,#1
    add     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,#1  
  ;  cmp     r4,#0  
  ;  bne     delay2  
     b       nn 
    END



?

作者:沧海猎人?? 出处:http://blog.csdn.net/embedded_hunter? 转载请注明出处?? 嵌入式技术交流QQ群:179012822

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读