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、但注意到发生了这种情况。

