IDE:CCS v9.0 SDK:simplelink_cc2640r2_sdk_2_30_00_28
参考例程中的OAD-Onchip工程,搭建自己的工程;
问题1、普通的例程都是“FlashROM_StackLibrary”的编译方式,应用程序和协议栈共享连续的FLASH空间;我如果将其普通的例程(如aoa_sender)设置为“FlashROM”的编译方式? 使得应用程序和协议栈分别生成独立的镜像文件.
问题2:如下图所示是OAD例程中协议栈工程的.map文件,可知程序大约占36Kb
下图是“aoa_sender”对应的.map文件,其中协议栈以库的形式供应用程序调用,库的大小从图中可以看出大约为10Kb:
为什么两个工程的协议栈的大小相差这么大,aoa_sender工程的协议栈是经过了剪裁了吗?那怎么剪裁能使得OAD例程中的协议栈也变的这么小?
问题3:而根据“aoa_sender”工程的.map文件可以整个工程的大小为78Kb,除去协议栈库,那么应用程序占用了68Kb;请问“aoa_sender”例程工程中的应用程序部分应该是可以去掉一些不必要的程序吧?让其应用程序大小控制在30~40Kb;否则话根本没有剩余FLASH空间存储“升级固件”。
问题4:aoa_sender工程中,只包含了“AOA、广播、连接”等基本功能,并没有调用过多的资源呀,为什么.map文件中的FLASH占用情况会那么大呢?那是不是可以说如果我要实现同“aoa_sender”工程相同的功能,那我的程序大小几乎也是这么大?
问题5:在看OAD工程时,发现其协议栈的位置(入口地址)是可变的,我想将其设置为不可变的、固定位置固定大小的,应该是可以的吧?
Viki Shi:
请问你的应用是否想实现OAD+AOA呢?
user5968824:
回复 Viki Shi:
是的
Viki Shi:
1、如果要做OAD,推荐使用FlashROM以生成独立的image,这样方便OAD更新。
2、正如你所说,CC2640R2F片上资源有限,OAD+AOA的话内存不一定够,确实有裁剪协议栈的做法,但不是太推荐,容易造成错误
3、入口地址,是指Program Entry Address吗?
The Program Entry Address is a pointer to the application interrupt vector table or application program entry address. This provides flexibility so that if the program entry address changes between images, BIM will still be able to use this field to run the application.
user5968824:
回复 Viki Shi:
1、是的,我就想想问下怎么从“FlashROM_StackLibrary”设置为“FlashROM”以生成独立的image;我没有找到如何配置的文档
2、协议栈剪裁的话,AOA的工程已经做了,我可以直接应用AOA工程中的协议栈;还是问题1,我怎么配置为“FlashROM”方式
3、这里的入口地址,指的是“协议栈库的入口地址”,不是程序入口地址;我想将协议栈放到固定的FLASH区域中
4、针对我上面的问题4,“aoa_sender”例程工程中的应用程序部分是不是也几乎没有剪裁的可能,如果我要实现同“aoa_sender”工程相同的功能,那我的程序的大小和例程几乎相同?
Viki Shi:
回复 user5968824:
1&2、请参考文档的6.1.3.11. Build Configurations
software-dl.ti.com/…/ccs_project-management.html
3、“我想将协议栈放到固定的FLASH区域中”没有相关资料可供参考,应该是底层的东西
4、是的
user5968824:
回复 Viki Shi:
好的,谢谢
user5968824:
回复 user5968824:
关于问题1&2,是否相关的示例,我查看了你说的“6.1.3.11. Build Configurations”参考文档;但并没有看到如果去具体操作
Viki Shi:
回复 user5968824:
如果我没理解错,你是要把“FlashROM_StackLibrary”改为“FlashROM”,对吧?那个链接就是CCS里build configuration的修改及设置,没有其他文档了