软件版本为:simplelink_cc2640r2_sdk_1_40_00_45,使用BLE5,按着Using the Cache as RAM教程(
software-dl.ti.com/…/platform.html
),将cache设置为RAM。出现三个错误。请问怎么解决?
修改内容:
1)#define SET_CCFG_SIZE_AND_DIS_FLAGS_DIS_GPRAM 0x0
2)#ifdef CACHE_AS_RAM
// retain cache during standby
Power_setConstraint(PowerCC26XX_SB_VIMS_CACHE_RETAIN);
Power_setConstraint(PowerCC26XX_NEED_FLASH_IN_IDLE);
#else
// Enable iCache prefetching
VIMSConfigure(VIMS_BASE, TRUE, TRUE);
// Enable cache
VIMSModeSet(VIMS_BASE, VIMS_MODE_ENABLED);
#endif //CACHE_AS_RAM
3)CACHE_AS_RAM
4)CACHE_AS_RAM=1
Error[Lp011]: section placement failed unable to allocate space for sections/blocks with a total estimated minimum size of 0x2304 bytes (max align 0x8) in<[0x1100'0000-0x1100'2000]> (total uncommitted space 0x2001).Error[Lp017]: the address of "ti_sysbios_family_arm_m3_Hwi_Module_State_0_excActive__A" was needed when computing compressedinitializers for section .data_ti_sysbios_family_arm_m3_Hwi_Module__state__V (app_ble_prm3.orm3 #156), but that address hasn't beenset yet, since the size of the compressed initializers are needed in order to set itError[Lp017]: the address of "ti_sysbios_knl_Task_Instance_State_0_stack__A" was needed when computing compressed initializers forsection .data (app_ble_prm3.orm3 #566), but that address hasn't been set yet, since the size of the compressed initializers are needed inorder to set itWarning[Ls014]: [stack usage analysis] at least one function does not have stack usage information. Example: "LL_ReadBDADDR". Acomplete list of such functions is in the map file.Warning[Ls016]: [stack usage analysis] the program contains at least one indirect call. Example: from "DRDYChangeHandler" inBSP_mVSM.o [1]. A complete list of such functions is in the map file.Warning[Ls017]: [stack usage analysis] the program contains at least one instance of recursion for which stack usage analysis has notbeen able to calculate a maximum stack depth. One function involved is "Power_releaseDependency". A complete list of all recursion nestsis in the map file.Error while running LinkerTotal number of errors: 3Total number of warnings: 3
Kevin Qiu1:
这是没有设定成功,按照步骤来,要用条件编译,包含#include <startup_files/ccfg.c>头文件
#ifdef CACHE_AS_RAM#define SET_CCFG_SIZE_AND_DIS_FLAGS_DIS_GPRAM0x0 /* Enable GPRAM */
#endif //CACHE_AS_RAM#include <startup_files/ccfg.c>
user4441348:
回复 Kevin Qiu1:
您好,我这里没有app_ble_ccfg.c。我在ccfg_app_ble.c中包含
#ifdef CACHE_AS_RAM
#define SET_CCFG_SIZE_AND_DIS_FLAGS_DIS_GPRAM 0x0 /* Enable GPRAM */
#endif //CACHE_AS_RAM
#include <startup_files/ccfg.c>
还是报一样的错,
Kevin Qiu1:
回复 user4441348:
你用的是哪个例程
user4441348:
回复 Kevin Qiu1:
ble5_simple_peripheral
user4441348:
回复 Kevin Qiu1:
我发现我把我的添加的程序的部分代码屏蔽了,
//HwPWMInit();
//HwSPIInit();
//start_detection(); 可以编译成功。.bss地址在0x11000000。如:
GPDATA0x1100'00000x1ec4<Block>.bsszero0x1100'00000x208peripheral.o [1]
屏蔽后,我把我的任务栈调大从1024到2018,也会出现这3个错误。只不过第一个是unable to allocate space for sections/blocks with a total estimated minimum size of 0x22ac bytes (max align 0x8) in<[0x1100'0000-0x1100'2000]> (total uncommitted space 0x2001).
应该是0x22ac放到GPRAM放不下吧。
GPRAM存放的东西可以选择吗?
Kevin Qiu1:
回复 user4441348:
是的,没有这么大空间了,GPRAM就是通用ram,和普通的ram是一样的