我正在尝试在我的定制 RM48板上运行 FreeRTOS、并已按照 TI 推荐的说明执行此操作。 但是、在创建操作系统任务时、我收到预取中止错误。 具体而言、我在执行下面突出显示的此行后立即获取预取中止。
;恢复第一个任务的上下文。
公共 vPortStartFirstTask
vPortStartFirstTask
CPS #0x13
portRESTORE_CONTEXT
当我进入这个宏时、它看起来会正常操作寄存器、直到在某个时候、我的寄存器看起来是这样的:
当我退出 portRESTORE_CONTEXT 宏时 、我的寄存器如下所示:
从这里开始下一条指令是预取中止。 如何找出导致中止的原因?
我的链接文件如下所示:
/*------------------ *
定义大小为4G 的存储器内存内存;
define region vectors = mem:[来自0x00000000大小0x00000020];
定义区域内核=内存:[0x00000020大小0x00008000];
定义区闪存=内存:[来自0x00008020大小0x00177FE0]
| mem:[来自0x00180000大小0x00180000];
define region stack = mem:[来自0x08000000大小0x00002500];
定义区域 Kram = mem:[来自0x08002500大小0x00000800];
定义区域 RAM =内存:[从(0x08002500+0x00000800)大小(0x0003F800 - 0x00000800)];
定义块堆、大小= 0x800、对齐= 8{};
通过副本{readwrite}进行初始化;
不初始化{section.noinit};
放入向量{readonly section .intvecs};
放入内核{readonly section .kernelTEXT};
置于闪存{readonly}中;
放入 RAM{readwrite section .kernelHEAP};
放入 Kram{readwrite section .kernelBSS};
放入 RAM{readwrite};
放入 RAM{block heap};
/*------------------ *