6410裸机开发环境

2 篇文章 0 订阅


前一阵子刚学习6410的裸机编程时,由于用的是FL的OK6410的板子,而官方没有给出十分

详细的裸机教程,导致在初学的时候走了不少弯路。按照FL的教程,裸机开发是在RVDS和

AXD+JLINK环境下进行的。手头上没有JLINK,故舍之。官方的论坛上给出了一种利用nand

指令来烧写nand flash的方法,接下来将会讲述。而之后,我发现在windows下的ADS或者

RVDS开发环境下编写裸机代码时,有很多细节问题没有搞清楚,这直接导致了后来我消耗

了大量的时间做无用功。在调试系统时钟苦无结果之后,又转向linux环境下的编程,最终调

试出来。

        windows下的开发环境就没什么可说的了,官方给出了详细的教程。linux下的环境构建主要是参考了这篇文章,说几个值得注意的点吧。

1、这篇文章是在SD卡中有uboot并且从SD卡启动后进行的。

2、在烧写bin文件的第二步中,该文提到“按住CTRL+A 再快速按S”,这是说ctrl+A之后,终端底端高亮显示命令,这时可以松开ctrl+A了(我还一直以为三个连按。。),按住S进入下载界面。

3、这篇文章的下载方式是串口下载。下载到内存0x50008000之后,普通的流水灯程序可以直接执行(go 0x50008000),但时钟初始化却无法执行了,个人猜测是因为uboot已经初始化过时钟,之后程序运行时发生了冲突。这个问题困扰了好几天也没有解决,最后还是将代码烧写到nand flash中让时钟得以初始化。在命令行模式下,首先将程序下载到地址0x50008000处,之后输入

    nand erase 0 100000

      该命令将nand flash中的前1M存储空间擦除,之后再输入

   nand write.uboot 0x50008000 0 100000

      该命令将0x50008000地址开始的1M字节的数据写到nand flash的0~100000地址中。这时选择从nand flash启动开发板,就可以正常运行裸机程序了。在windows环境下也可以通过同样的命令来实现将代码烧写到nand flash中,详情参考这个帖子。晚上试了一下,编译RVDS的代码后,将bin文件烧写到nand flash后,从nand flash启动程序无法正确运行。在更改RO和entry point为0后仍然无法运行(原先为0x50008000),不知道具体原因。打算接下来继续在linux环境下进行编译链接,对编译的过程进一步了解之后再转到RVDS中来。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值