你好!
我正在努力将 FreeRTOS 内核移植到 TM4C1294ncpdt 定制板上。 我使用的是 FreeRTOS 10.2.1和 CCS 9.1。
我已经创建了一个项目、为堆分配了51200 (50k)个字节。 堆栈的32768 (32k)字节、我认为我有要匹配的链接器文件。 我使用了一些旧示例以及 FreeRTOS 下载示例进行比较。
在未创建任何任务的情况下、调度程序会按预期启动并命中 SysTick ISR。
我遇到的问题是创建任务。 作为任务创建的一部分、tasks.c 文件中有一个 memset 函数、用于"使用已知值填充栈以帮助调试"。 该 memset 将我的微控制器放入故障 ISR。 内存浏览器显示为指示没有单次迭代成功。
我被骗了。 memset 中的什么会导致我的处理器遇到硬故障处理程序? 代码似乎在以逻辑 SRAM 位置和大小传递。 我还需要启用其他功能来支持 memset 吗? 如果有任何见解,将不胜感激。
谢谢!