您好!
我的应用程序代码大小很小(约6K)。 我想将大部分代码放置在闪存的较低部分、但是希望将几个 ISR 和一个 BSL 程序驻留在较高的存储器位置、例如从 0xA000开始? 是否有一种简单的方法可以做到这一点、或许可以使用链接器指令?
谢谢
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.
您好!
我的应用程序代码大小很小(约6K)。 我想将大部分代码放置在闪存的较低部分、但是希望将几个 ISR 和一个 BSL 程序驻留在较高的存储器位置、例如从 0xA000开始? 是否有一种简单的方法可以做到这一点、或许可以使用链接器指令?
谢谢
您好、Jerry。
是的、您可以创建特定段来帮助将存储器分区到指定的位置。 您需要查看《 MSP430优化 C/C++编译器用户指南》、该指南有助于提供有关链接器和编译器的一些详细信息。
具体而言、我会介绍如何创建和使用数据段和/或代码段(请参阅第4.3.8和5.11.30节)。 您可以编辑链接器文件(.cmd 文件)来帮助执行此操作。
此致、
Luke
感谢 Luke 和 David。
我尝试了#pragma 指令、它完全符合我的要求。 我正在做的是编写一个始终驻留在上部存储器中的定制 BSL (用于现场升级)、只使用函数从 PC (通过连接到 UART 的 USB 桥接 IC)读取 TI.txt 文件并将其存储在上部未使用的存储器中。 然后,如果它被正确下载(校验和匹配),然后我可以擦除较低的内存应用程序,并移动文件数据替换它. 我知道你有具体的例子,在定制 BSL ,然而,它是为不同版本的微控制器和花了很多小时尝试和配置它4616 失败, 我发现它更容易写我自己。
我将检查并确认未在必须执行的例程中的较低内存中使用任何代码。
再次感谢!