最近业余研究了下CC2530的远程固件更新/空中下载,现做个总结,一则方便大家学习共进,二则自己做个记录以防日后忘了:
一.BootLoader主要技术点
1.程序跳转到指定位置
2.设置好相应的中断向量表偏移
3.FLASH读写(这个相对较简单)
4.将APP程序编译到指定位置(注意不是烧写)
二.主要技术点解决
1.使用汇编指令LJMP,如:asm("LJMP 0x2000\n"); ---跳转到0x2000 flash处
2.工程中加入 interrupt_stubs.s51 汇编文件,该文件里面已经配置好了中断向量表
3.这个在官方给的例程中有
4.采用官方给的链接文件:cc2530-sb.xcl,采用该链接文件编译后的程序的起始地址就到0x2000处了
注:
1.boot程序需要采用sb-boot.xcl链接文件
2.自己完全新建一个APP工程,main.c里面写入流水灯代码,编译运行没问题,但改用cc2530-sb.xcl链接文件之后就会报错误,错误号为e18,此时只要在工程配置里面屏蔽这个错误即可,如下图:
3.对于APP工程,工程配置里面的第一项General Options->Target中的 Code model 选择 banked,data model 选择 Large,Number of virtual 选择 8,如下图&#x
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)