实现TI CC254X OAD所遇到问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010631857/article/details/70233516

写在前面:

 算是浪费了一天的时间,甚是苦恼。其实在按照官方的说明资料《OAD_For_CCC254x.pdf》一文中说的很清楚,按照说明就可以很快再远方案上增加OAD功能。

之前也了解过增加这个功能不麻烦,随之竟然用了我将近1天的时间。但付出总会有些收获的,自己比之前更加的熟悉这个OAD功能的具体实现了。


    有个产品一直都在正常的出这货,虽说货量不大,基本一月2K的量,都还算比较稳定,市场也没有反馈什么大的问题。但最近又要出一批货,老板突然想在原来稳定版本的基础增加上OAD的功能。(这里我感觉完全没有必要,若是后期需要增加功能,基本上也会把硬件改了,增加一定的硬件一起丰富整体功能)。

   就这吧,说了一圈废话,只是简单的抱怨下,也由于本身很简单的一个事情,自己办砸了,有点浪费时间,心中不快。还是平和下心态,踏实做事。



言归正传:


所用的硬件是自己的产品PCB板,主芯片:TI CC2541

         BLE协议栈:  BLE StaCK 1.4.0

IAR版本:IAR for 8051   8.20.2

注意:今天浪费一定时间主要是由于,我原电脑装的IAR是8.30.2版本。再此版本的IAR编译 1.4.0的Stack时总是出错,主要浪费时间就是在网上找解决错误的方法了。

后来还是放弃了,重新下载安装回了8.20.2版本。

   所遇问题总结: 

       1,用IAR 8.30.2 编译BLE Stack 1.4.0协议栈中的程序时,有很多奇怪的问题。若你比较熟料,这些问题对于你有可能也不是太大问题,但却是很麻烦人。

2,此项目增加新功能OAD,本身程序代码已经放置好久了,当时为了精简,缩短代码把里面有些相关OAD部分给屏蔽掉了,所以此次再改OAD的各配置参数后,一直行不 通。最终还是在代码中找到的问题。


注意事项:

1:最好运用IAR 8.20.2版本和BLE Stack 1.4.0版本 组合。

2:增加OAD功能,软件必要的功能模块

一,OAD相关宏定义,OAD profile。这个一般不会有问题,大多都会注意到。

二,OAD中运用了硬件的DMA。所以宏定义HAL_DMA=TRUE需要打开,并且需要在HalDriverInit()中调用HalDmaInit()完成初始化。

此次项目升级就遇到这么麻烦,之前为了精简代码,把相关DMA的部分去掉了。在按照官方OAD文档操作时,还是有一些问题。


OAD升级主要有三部分固件:BIM(启动引导固件);ImageA,ImageB。

BIM需要HEX格式固件,第一次ImageA也是需要HEX格式固件,ImageB需要时Bin格式,以后空中升级所用的都是bin格式固件。

所述原因主要是,Hex文件本身记录的有具体存储对应地址,而bin格式固件完全是code数据。

3个固件一般都是先全芯片擦除,下载BIM,而后不擦除芯片下载ImageA。ImageB是通过手机在线空中升级下载到PCB板上的。


按此方案前期就需要对板子经行2次的下载,从而浪费一定时间,不方便批量加工生产,只适合学习和实验。


改进方法就是合并BIM和ImageA  2个Hex文件,生成一个总的Hex文件(在我的上篇文章中刚说了具体实现过程)。然后就可以一次性批量下载了。



猜你喜欢

转载自blog.csdn.net/u010631857/article/details/70233516
今日推荐