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.
您好!
我们正在尝试将 Halcogen TMS570LS0714PGE_FreeRTOS 移植到 TMS570LS0914PZ。 我们将分步执行 spna237、但如果我们启动两个以上的任务、则会生成数据中止(可能是由堆栈溢出生成)、它会在函数 portSAVE_context 中发生:
R0损坏、其值为0x20202020。 如果我们启用 FreeRTOS 的 StackOverflow 挂钩、它也会被锁存。
根据 DS、该微控制器具有1024 KB 的闪存和128KB 的 RAM、因此我们认为 Sys_link.cmd 应该是以下内容:
此外、所有代码都在另一个板(使用另一个 PN)中正常运行。
请您能给我们一个问题吗?
Ty。
艾兹基贝尔
尊敬的 Aizkibel:
我认为链接器 cmd 文件没问题。
但您对 LS0914使用不同的封装(PZ)。 PZ 的 CPU 速度为100MHz、PGE 封装的 CPU 速度为160MHz。 您是否更改了 PLL 配置?
QJ 您好、感谢您的提示、但我认为它配置得很好:
Halcogen LS0914:
Halcogen FreeRTOS LS0714 PGE:
在 FreeRTOS 配置中、我已将 TI1CLK 更改为100M。
艾兹基贝尔
最后、我解决了以下问题:
我按照堆栈溢出一直到根、以下函数:
在"taskSelectHIGET_priority_task()"被执行之前、pxCurrentTCBConst 是正常的、并且在返回后被损坏
在 FreeRTOS 论坛中查找此函数我了解到、如果任务没有使用足够的堆栈空间创建、则可能会生成故障... 现在我已经复制了两个任务的内存(从 configMINIMAL_STACK_SIZE 到 configMINIMAL_STACK_SIZE * 2)、并且它正在工作。 但是,我无法理解为什么相同的代码适用于 TMS570LS1224....
一如既往、感谢 QJ 的支持。
艾兹基贝尔