This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] RTOS/CC2630:链接器错误[Lp011]:部分放置失败,无法为估计最小大小为0xcc5f字节的部分/块分配空间

Guru**** 2539500 points
Other Parts Discussed in Thread: CC2630

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/575970/rtos-cc2630-linker-error-lp011-section-placement-failed-unable-to-allocate-space-for-sections-blocks-with-a-total-estimated-minimum-size-of-0xcc5f-bytes

部件号:CC2630

工具/软件:TI-RTOS

您好,

我尝试在cc2630中使用UART记录信息,因为我在 wiki.ti.com中关注此文档

我正在使用示例交换机应用程序,但使用  下面的配置编辑上述文档中的TI-RTOS配置文件

//告诉Idle模块将flush()函数添加到Idle循环(在电源之前)
var Idle = xdc.useModule('ti.sysbios.knl.Idle');//如果Idle尚未导入则添加。
idle.addFunc('&uartLog_flush'); 

它抛出以下链接器错误:

IAR ELF连接器7.80 ,ARM.ARM/W32,用于4.1.2462万
版权所有2007-2017 IAR2017 IAR Systems AB。
错误[Lp011]:分区放置失败
无法为<[0x0万-0x0000cfff]>中0000中估计最小总大小为0xcc5f字节(最大对齐0x4)的部分/块分配空间(未提交的总空间0xcad8)。
未提交:
[0x0万-0x000000ff]:0万:0xc4.
[0x0.051万-0x00000513]:0.0513万:0x3
[0x0.0058万c-0x0000058f]:0.0058万:0x3
[0x0.0005万e8-0x0000cfff]:0000:0xca14

4.4822万字节只读代码存储器
9132字节只读数据存储器
1.3984万字节读写数据存储器

错误:1.
警告:无

链接时间:0.30 (CPU) 0.23 (已用)
运行链接器时出错

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尝试使用 dev.ti.com/.../上的UART回显示例
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    此示例使用的是tirtos v2_21_00_06,但示例交换机应用程序使用的是tirtos simplelink v2_11_01_09。

    如何使UART日志记录与样例交换机使用的tirtos一起工作?
    或者如何将示例交换机应用程序迁移到最新的tirtos版本。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,

    我认为您的应用程序映像超出了默认允许的最大大小(4.4822万 + 9132字节>5.3247万字节)。 您是否对样本开关进行了任何其他修改? 开箱即用示例应用程序仅为~3.75万字节。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的,这是因为我的应用程序图像  超出了默认允许的最大大小。

    您是否对样本开关进行了任何其他修改?  

    是的,我正在将I2C驱动器,磁传感器驱动器,SenorTag库添加 到Sample Switch  

    通过在编译选项中禁用"TI_DRIVERS_I2C_included",我能够获得一些空间,从而成功构建应用程序。

    我遵循此 线程 ,以帮助我了解有关此问题的更多信息。

    现在是否有一种安全的方法,我可以在其中为应用程序分配更多空间?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    遗憾的是,由于此设备上的闪存大小有限,因此没有“安全”的方法为应用程序分配更多空间。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    对TI边界工具有什么想法?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这是闪存大小不足,我认为边界工具没有帮助。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    “这是闪存大小的短”是指? 不理解
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这意味着闪存大小不够。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我的理解是否正确

    错误[Lp011]:分区放置失败

    无法为估计的最小总大小为0xcc5f字节的部分/块分配空间

    这不是因为无法在RAM中分配堆栈空间而导致的错误。如  Michel所述的e2e线程中所示

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    错误出现在内存地址<0x0万-0x0000cfff>中0000中,即闪存。 RAM开始于0x2000万。