初识OK6410

新手一只,只驱动了几只LED,知识有限,,以下笔记纯属个人理解,有错的地方还望轻喷!!!!


学过STM32想往更NB的ARM发展,于是买了一块OK6410。由于以前学的是STM32,所以自然是要先跑跑裸机程序咯。

然后照着裸机教程安装了RVDS2.2,接着写了一个LED的程序,觉得高大上的ARM裸机跑起来就是个单片机吗?不过如此。但是发现掉电后程序需要重新下载,对于我们这些学单片机同学的感到这不合理啊!为什么下进去的程序掉电要重新下载呢?然后就开始查资料找问题,发现廉价的JLINK并不支持烧写NAND FLASH。那为什么能用JLINK能仿真呢?因为JLINK仿真时是把程序写到了内存里,即6410上的DDR中,而DDR掉电后数据是会丢失的,这也就是为什么每次都要重新下载程序。

搞清楚了这个问题,那回过头来再去看看裸机教程,为什么编译器的设置中要将RO Base的地址和entry point设置为0X5000000呢?先看看OK6410核心板的原理图


可以看到芯片的片选接的是XM1CSN0,再来看看另一张图




可以看到XM1CSN0是与Memory Port 1相关联的,继续看图


而Memory Port 1的内存地址是0X50000000 ----- 0X60000000;所以RVDS的将RO_Base和entry point 设为0X5000000使得程序的链接地址和入口点为0X5000000,这样当程序运行时就是从0x50000000开始运行的。

现在为题又来了,DDR在使用时是要一定时序和初始化才能使用的,不像单片机内部的RAM,内部RAM与CPU通讯是由单片机的生产商做好的。那为什么我们能使用DDR呢?应为飞凌的裸机教程是在板子上有bootloader的情况下写的,所以我们看到的他提供的例程中的启动文件只有一个转跳,非常简单。后面的都是C语言了。

但我不想用带bootloader的板子跑真正的裸板程序怎么办呢?找了下资料发现可以用openJTAG烧写NAND FLASH,还有一个方法就是使用SD卡启动!当然还有其他方法。

我手上没有openJTAG,而且openJTAG也要180大洋,,,对于我这种屌丝买不起啊!于是我决定使用SD卡的启动方式去跑纯裸板程序!怎么做?下次搞定在写,,嘻嘻!



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值