CC2640之OAD扩充ImageB大小到40KB

来源:互联网 发布:淘宝怎么更改发货地 编辑:程序博客网 时间:2024/04/30 19:51

内置Flash的OAD划分


CC2640内置Flash的OAD配置中,对128KB Flash的划分情况如下图:



根据上图,我做了一个表格,表格截图如下:





重新分配地址


如果你的工程默认是没有配置ImageB编译的,那么请先按照如下链接的博文中的方法进行配置,链接如下:

CC2640之OAD固件升级(内置Flash)手动配置ImageB


如果你的工程默认已经配置ImageB的编译了,但是默认的36KB大小并不能满足你的应用开发要求的话,请继续往下看。

 

为了扩展ImageB的空间,我们需要压缩减少其他部分的空间,参照上表,BIM和OAD Target App的空间是不能动的,所以剩下的我们可以缩减的就是NV Storage Area和BLE Stack的空间了,这两部分的设置都是在编译ImageA的协议栈时定义的。为了达到最大缩减,我们将BLE Stack的绑定相关功能去掉,然后去掉了NV Storage Area(协议栈默认该区域主要存放绑定信息)的空间,这样一共缩减了8KB的空间给ImageB,ImageB的空间就由原来的36KB变成最后的44KB了,具体的配置方式可以参考以下链接的博文:

CC2640之OAD扩充ImageB大小到44KB


正如上面链接的博文最后的题外话提到的:绑定功能很多时候还是需要的,而且NV Storage Area有时候也需要用来存放别的数据,所以除非你的ImageB确实需要44KB的空间,否则,个人建议还是保留NV Storage Area区域的空间,然后扩展ImageB到40KB,一般情况下,这个大小足够用了。至于扩展ImageB到40KB的方法,下面我们再一起来看下吧。

 

下面,我们来看一下具体的操作步骤:

1.BLE Stack的配置

(1)先打开IAR开发工具,然后将

C:\ti\simplelink\ble_cc26xx_2_01_00_44423\Projects\ble\OADTarget\CC26xx\IAR

目录下的OADTarget.eww拖到IAR的左侧工作区,打开OADTarget工程,打开之后显示如下:



点击下方的CC2640Stack,选择CC2640Stack工程配置。


(2)在左侧工作区的工程名CC2640Stack - FlashROM上点击鼠标右键,下拉菜单中选择Options...,弹出如下对话框:



选择Linker---->Config,在Configuration file symbol definitions:中,将ICALL_STACK0_ADDR的值由0xF000改为0x10000,操作截图如下:



上述配置完成之后点击OK,然后重新编译BLE Stack

 

2.OAD Target App(Image A) project的配置

先打开IAR开发工具,然后将

C:\ti\simplelink\ble_cc26xx_2_01_00_44423\Projects\ble\OADTarget\CC26xx\IAR

目录下的OADTarget.eww拖到IAR的左侧工作区,打开OADTarget工程,切换到CC2640App工程配置,操作截图如下:



在左侧工作区工程名CC2640App-FlashROM上点击鼠标右键,然后在下拉菜单中选择Options...,弹出工程配置对话框。

(1)选择C/C++ Compiler---->Preprocessor,在下面的Defined symbols:修改如下值:

ICALL_STACK0_ADDR=0x10000

OAD_IMG_B_AREA=10

 

操作截图如下:



然后,选择Build Actions,修改Post-build command line:下方命令中最后的地址:

:F000:1EFFF

改为:

:10000:1EFFF

 

操作截图如下:



3.Application(Image B) project

承接之前的博文,我们依然用Heart Rate工程为例,用IAR打开该工程。在左侧工作区工程名CC2640App-FlashOnly_OAD_ImgB上点击鼠标右键,在下拉菜单中选择Options...,然后进行如下配置:

(1)选择C/C++ Compiler---->Preprocessor,在下面的Defined symbols:修改如下值:

ICALL_STACK0_ADDR=0x10000

OAD_IMG_B_AREA=10

 

操作截图如下:



选择C/C++ Compiler---->Extra Options,操作截图显示如下:



将上图中框中的-f $PROJ_DIR$\..\..\Config\IAR-Boundary.bdef删掉。删掉之后的截图如下:



(2)选择Linker---->Checksum,修改End address 由原来的0xEFFF改为0xFFFF,操作截图如下:



(3)选择Build Actions,修改Post-build command line:下方命令中的

"6000:EFFF"

改为

"6000:FFFF"

 

操作截图如下:



(4)修改编译链接的配置文件cc26xx_ble_app_oad.icf,修改下面截图中相应地方:



将上述截图中的0x8FFF修改为0x9FFF,修改之后的截图如下:




上述步骤都执行完之后,重新编译,即可生成我们需要的扩展到40KB的ImageB的bin文件。




0 0
原创粉丝点击