团队成员,您好!
我的ISR调用IPC功能。 IPC对象(IPC.obj)位于driverlib.lib中,它在.const部分包含一些数据,如IPC_instance。 这是一个问题,因为我想避免ISR的闪存访问,以便在ISR运行时擦除其他闪存扇区。
在liker命令文件中,如何重定向ipc.obj的开销部分(如果单个对象不可能,则重定向整个库的开销部分)以驻留在RAM中?
是否有其他方法可以解决此问题?
提前感谢您的参与,
Inno.(注:)
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.
团队成员,您好!
我的ISR调用IPC功能。 IPC对象(IPC.obj)位于driverlib.lib中,它在.const部分包含一些数据,如IPC_instance。 这是一个问题,因为我想避免ISR的闪存访问,以便在ISR运行时擦除其他闪存扇区。
在liker命令文件中,如何重定向ipc.obj的开销部分(如果单个对象不可能,则重定向整个库的开销部分)以驻留在RAM中?
是否有其他方法可以解决此问题?
提前感谢您的参与,
Inno.(注:)
您好,
您可以 使用负载/运行 功能为const部分配置不同的运行地址。
例如:
.const : load = FLASH5, run = RAMLS0,
load_start (constLoadStart),
load_size (constLoadSize),
run_start (constRunStart),align (8)
在主-
memcpy (&constRunStart,&constLoadStart,(size_t)&constLoadSize);
确保先完成memcpy,然后再访问常量。
详情请浏览 https://software-dl.ti.com/ccs/esd/documents/sdto_cgt_Linker-Command-File-Primer.html
此致,
Veena
如果您不想对整个.const节执行此操作,并且只需要对IPC.obj中的.const执行此操作,则可以执行以下操作:
ipcConst
{
driverlib.lib<IPC.obj>(.const)(驱动程序lib.lib<IPC.obj>(.const))
} LOAD = FLASH5,RUN = RAMLS0,
load_start (constLoadStart),
load_size (constLoadSize),
run_start (constRunStart),align (8)
这将创建一个名为 ipcConstt的新输出部分,并按指定的方式进行分配。 有关输出部分的详细信息,请参阅上述文档
此致,
Veena
您好Inno,
您可以参考设备TRM和以下材料:
https://training.ti.com/embedded-real-time-analysis-diagnostics-erad-c2000-mcus
https://www.ti.com/lit/an/spracm7/spracm7.pdf
您可以配置总线比较器以检测对指定区域的访问。 您可以将其配置为生成断点或中断。
此致,
Veena