亲爱的对话框,
我想编译CODELESS项目而不需要修改。Keil链接器给出的代码大小错误,因为大小超过32768字节。我尝试了所有3种可能的目标设置:
- 代码大小链接器错误:32804字节;
- 代码大小链接器错误:32900字节;
- 代码大小链接器错误:37068字节;
它们都比Keil-linker允许的最大值大。32768字节,没有额外的许可。
例如,我想移除SUOTA(减少尺寸)如果我注释掉CFG_PRF_SUOTAR在user_profiles_config.h链接者报道35300字节;远远大于SUOTA左内。这是怎么回事,我删除了一些东西,而代码变得比以前更大,当我包括它?
从中删除一些AT命令也是一样user_at_commands.h;例如,注释掉AT_GAP_CONNECT和AT_SLEEP结果在代码大小36780字节,如果它们在,则代码大小为32804.
C/ c++选项我选择Level-3,最高的代码大小优化。
我按照说明进去了嗯- b - 057设置Keil-environment
这是链接器错误信息:
连接……
\ out_531 \ codeless_531_datapump。axf: error: L6050U: The code size of this image (32804 bytes) exceeded The maximum allowed for this version of The linker.这个图像的代码大小超过了这个版本的链接器所允许的最大值。
没有足够的信息来生成一个SYMDEFs文件。
完成:1个信息,0个警告,0个错误和1个致命错误消息。
”。\ out_531 \ codeless_531_datapump。axf" - 1错误(秒),0警告(秒)。
我有一张Keil发给我的30天有效期的驾照过期了1月2日.在这30天里我可以很好地编写上述项目.
我不需要SUOTA只需要以下几点3.命令的无代码:
在+ + ADVSTOP中央,+ GAPSCAN。我只想读出读出温度、湿度、压力和电池数据的遥测信标。
请建议我做什么来减少代码大小,我可以构建项目。
先谢谢你。
嗨janosN,
谢谢你的问题。
为了减小无代码图像的大小,您可以从user_at_commands.h头文件中取消定义应用程序中不会使用的AT命令。另外,在user_modules_config.h中,您可以排除或包含您需要的配置文件。
请记住,可以使用预编译的二进制文件,可以在DA145xx_CODELESS\6.380.12.6\ binary aries路径中找到。
由于您使用的是TINY模块,Flash Programmer工具也提供了预编译的二进制文件!
谢谢,PM_Dialog
亲爱的对话框,
谢谢你的回答。
图像尺寸的缩小是可以通过禁用两个#定义行user_at_commands:(其余的定义没有显著的尺寸缩减效果)
/ / #定义USE_AT_CONPAR和/ / #定义USE_AT_BND是有效的,链接后,报告的代码大小为:27812(codeless_531_datapump)。所以,我现在可以编译项目没有额外的Keil许可证。
重建这个项目对我来说是必要的,因为原来的在+ GAPSCANCommand在扫描外围设备(比如发布遥测数据的信标)时遇到了严重的问题。最初,它只是扫描其他dialog外围设备,只列出了地址,没有广告的原始数据,所以我不得不修改功能:Void user_on_adv_report_ind(struct gapm_adv_report_ind const* param)在user_codeless.c文件。但它现在起作用了。
非常感谢您的支持。
janos -
亲爱的对话框,
谢谢你的回答。
图像尺寸的缩小是可以通过禁用两个#定义行user_at_commands:(其余的定义没有显著的尺寸缩减效果)
/ / #定义USE_AT_CONPAR和/ / #定义USE_AT_BND是有效的,链接后,报告的代码大小为:27812(codeless_531_datapump)。所以,我现在可以编译项目没有额外的Keil许可证。
重建这个项目对我来说是必要的,因为原来的在+ GAPSCANCommand在扫描外围设备(比如发布遥测数据的信标)时遇到了严重的问题。最初,它只是扫描其他dialog外围设备,只列出了地址,没有广告的原始数据,所以我不得不修改功能:Void user_on_adv_report_ind(struct gapm_adv_report_ind const* param)在user_codeless.c文件。但它现在起作用了。
非常感谢您的支持。
janos -
嗨janosM,
很高兴你减少了代码大小,感谢分享。
谢谢,PM_Dialog