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.

[参考译文] 编译器/LAUNCHXL-CC2650:编辑 FLASH_LAST_PAGE 大小后、程序不能正常工作。[程序不能装入可用内存]

Guru**** 2589280 points
Other Parts Discussed in Thread: CC2650

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/604226/compiler-launchxl-cc2650-program-doesn-t-work-after-editing-flash_last_page-size-program-will-not-fit-into-available-memory

器件型号:LAUNCHXL-CC2650
Thread 中讨论的其他器件:CC2650

工具/软件:TI C/C++编译器

前提:

我正在尝试将 SparkFun 的 LCD 5110库移植 到 CC2650 Launchpad。

我完成了所有必要的移植(将 ardio SPI 函数移植到 ti-RTOS SPI 函数)。 问题是库有 很多 常量、因此链接失败、出现错误"program will not fit into available memory (程序将无法放入可用内存)"。 ".const"大小为0x1e5e"段的定位失败。

  

因此、我使用此 线程 作为参考、并尝试按如下方式更改链接器命令脚本 cc26xx_app.cmd:  

--------------------------------------------------

.const 大小为0x1e5e 或7774字节

可用的闪存大小(未使用的闪存大小)为0xef5或3829字节

这两个字节(0x1e5e - 0xef5)之间的差异为0xF69或3945字节。

在链接的 cmd 文件中、 我看到了.const 行      : >> FLASH | FLASH_LAST_PAGE
这意味着.const 在某种程度上与 FLASH_LAST_PAGE 相关联

然后、我在文件中查找了首次出现 FLASH_LAST_PAGE 的情况:
// CCFG 页面、包含.ccfg 代码段和一些应用代码。
FLASH_LAST_PAGE (RX): origin = FLASH_LAST_PAGE_START,length = FLASH_PAGE_LEN

观察到 FLASH_LAST_PAGE 的长度 FLASH_PAGE_LEN 定义

已查找首次出现的 FLASH_PAGE_LEN
#define FLASH_PAGE_LEN      0x1000  

将长度增加到所需的长度。 即0x1000 + 0xF69 = 0x1F69

将行修改为:
#define FLASH_PAGE_LEN      0x1F69

--------------------------------------------------

已成功构建项目。 当我在进入 BIOS_start()后尝试调试时,设备末尾没有发生任何事情 在这个问题之后,我尝试构建 Project_Zero 示例并进行调试,但即使是 Project_Zero 也无法正常工作(在进入 BIOS_start()之后 ,没有发生任何事情)。 然后、我必须编译 project_zero_stack 并将其刷写到器件中、以使 Project_Zero 正常工作。

--------------------------------------------------

编辑  FLASH_PAGE_LEN 是否会使器件中的堆栈混乱? 如果是、该问题的可能解决方案是什么。 我甚至尝试 在预处理器指令中添加 OSAL_SNV=0、但注意到发生了这种情况。  

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

    将 FLASH_PAGE_LEN 更改为某个任意值会使事情变得混乱。 除非您真的知道自己在做什么、否则不应更改链接器文件。

    如果您的闪存不足、我建议您使用 CC2640R2 LaunchPad。

    谢谢、
    Fredrik
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    除了购买新 LaunchPad 之外还有其他优化建议吗? 您会建议使用任何应用手册来优化空间?