主题中讨论的其他器件: SysConfig、 UNIFLASH
工具与软件:
大家好、团队成员:
在 MSPM0L1106中、它具有64KB 闪存。 固件代码大小已经超过40KB。
是否可以保留1KB 闪存(0x7C00至0x7FFF)用于数据存储器、并且此区域中不会生成程序代码?
谢谢。
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.
工具与软件:
大家好、团队成员:
在 MSPM0L1106中、它具有64KB 闪存。 固件代码大小已经超过40KB。
是否可以保留1KB 闪存(0x7C00至0x7FFF)用于数据存储器、并且此区域中不会生成程序代码?
谢谢。
尊敬的 Yuhao:
此外、我提议的修改如下。 这会导致闪存出现任何重叠错误吗?
小程序
{
Flash (RX):origin = 0x00000000、length = 0x0000FFF8
Sram (rwx): origin = 0x20000000, length = 0x00001000
BCR_CONFIG (R):origin = 0x41C00000、length = 0x00000080
BSL_CONFIG (R):origin = 0x41C00100、length = 0x00000080
FLASH_DATA (R):origin = 0x00007C00、length = 0x00000400 <<- added
}
(备注:.cmd 文件在编译后恢复为原始格式。)
AlanC。
尊敬的 Yuhao:
我按照您的建议修改了 cmd 文件、如下所示、但编译仍然存在错误。

e2e.ti.com/.../ErrorOutput.txt
我还将所有标记为"flash"的位置修改为"flash | FLASH2"、错误仍然存在。 是否需要进行任何其他修改?

AlanC。
根据 10.5.5. SECTIONS 指令—TI Arm Clang 编译器工具用户指南、您需要使用>>而不是>。 请删除 palign (8)。 我想您只能修改.text、并将其他人保留为默认值。 下面是我的测试、我为仅使用的.text 创建了 FLASH1和 FLASH2。


下面是另一种不同的方法。
尊敬的 Yuhao:
感谢您的支持。 我按如下方式修改了.cmd 文件、但产生了相同的错误。

我还尝试了您提供的项目 Attritube_memoryAllocation_c. 但是、无法在编译工程时附加错误。
e2e.ti.com/.../Attritube_5F00_memoryAllocation_5F00_C_5F00_Err.txt
AlanC。
不需要在 cmd 文件的各个部分中使用>>而不是>。
这里是我的测试代码作为参考。 我把.text 部分放在 FLASH1 | FLASH2的'.text :{}>> FLASH1 | FLASH2'
e2e.ti.com/.../issue_5F00_cmd_5F00_file_5F00_modification.zip

尊敬的赵宇浩:
感谢您的支持。 最终、我可以编译我的代码。 但我仍然对它有疑问。 我制作了2个版本如下。

左侧是使用代码进行编译的调试示例。 但是、它现在会在"flash"部分中留下一些未使用的空间。 后来、当代码量增加时、可能会导致编译错误。 我试着将闪存和 FLASH1组合在一起、创建了右侧图。 选择正确的版本后、会出现如下所示的编译错误。
是否可以将闪存和 FLASH1组合在一起?如何组合?
e2e.ti.com/.../CombinedErr.txt
AlanC。
尊敬的赵宇浩:
很抱歉地告诉您、UniFlash 在通过 BSL 下载固件期间报告了错误、如下所示。

在我修改 cmd 文件后,通过添加 palign (8)到行".text : palign (8){}>> FLASH1 | FLASH2",这将导致编译错误。 它是否能够克服这个问题?
e2e.ti.com/.../palign_5F00_err.txt
AlanC。