cc2640 串口升级
Hi all,
因为2640的oad没弄成功,所以自己援引ST的IAP写了一个串口升级功能,boot功能代码起始地址为0x00000000,应用程序起始地址指定为0x00007000,协议栈起始地址为0x0000F000,应用程序与boot公用协议栈。
问题:我编译应用程序时,改写icf文件,把起始地址改为0x00007000。可是编译生成的bin文件却是128KB,我看了下,icf里面指定了CCFG在flash最后一个page,是这个导致的么(屏蔽掉相关语句,也是变成127KB而已)?怎么才能生成应用程序实际大小的bin文件?
JianHua,
2640的串口bootloader协议在这个文档的第八章有详细介绍:http://www.ti.com/lit/ug/swcu117d/swcu117d.pdf
ccfg在最后一个Page是固定的。
你能把你app和stack编译后的Hex文件分别单独转换成bin文件看看有多大吗?
Yan,
那个协议我看过,是写的基于ROM的bootloader啊。也下载了TI提供的一个基于VC的软件,可是试了一下,选择完COM口就闪退了,backdoor那个引脚我也接地了,反正没有成功进去过boot。
CCFG其实在boot程序里面已经写一次了,所以我想boot和app是不是可以共用呢。
IAR有直接生成bin文件的,我分别把app和stack编译了以下,app-128KB,stack-64KB
然后我用oad的icf编译了一下,有50KB;然后把main函数中的函数都注释掉,变成了37KB;最后,我把icf的最后一段的TIRTOS_ROM.icf也屏蔽掉,就变成10KB了。
这个icf语法有很多看不懂,所以不懂怎么改啊。
现在我的boot程序能够保证用串口的Ymodem协议可以正确的接收和写到flash中去了,可是就是没有一个app能够编译成小一点的bin文件来验证功能。
cc2640的flash大小只有128K字节,有点小,很难实现OAD功能!
官方提供两种bootloader方式!
两种引脚定义: