主题中讨论的其他器件:TMDX570LC43HDK、 HALCOGEN
您好!
我们是 TI 微控制器和工具的新手、我们会尝试使用 HALCOGEN 和 IAR 工作平台让您的 TMDX570LC43HDK 评估板启动并运行。
我们使用 TI-HALCoGEN (v 04.07.01)来设置 TI-Hercules TMS570 MCU 评估板(TMS570CL4357)代码以使用 FreeRTOS 运行、并设置 Het1 à 引脚0-7 à 位0:方向为输出 、无需 PSL 检查。
但是、一旦为 IAR 环境生成代码、我们就无法使代码运行。
单步执行代码、我们在 SWI_Handler 处发现代码中断。 尝试使该代码正常工作时、我们已确定该代码正在使用 IAR 处理程序、将忽略 TI 的处理程序声明。 还会忽略 TI 生成的堆栈指针值。 IAR 启动未正确链接/调用 TI HALCoGen 启动代码:(请参阅 hl_sys_startup.c + hl_sys_intvecs.asm hl_sys_core.asm)。
我们将这个问题发送给了 IAR、因为似乎有代码在混乱。 但是、他们返回并指出"TI 生成的代码应生成一个只能与嵌入式工作平台配合使用的工作区和项目。 由于没有发生这种情况、因此他们生成的代码和/或项目文件中存在错误。"
我们还尝试在没有 FreeRTOS 的情况下创建代码、同样也出现了同样的问题。
在尝试通过 IAR Workbench 使电路板正常工作时需要帮助。
以下是 HALCoGEN 生成的 HL_SYS_main.c 中修改后的代码段。
#include "hL_sys_common.h" #include "freertos.h" #include "os_task.h" #include "os_timer.h" #include "hL_het.h" #include "HL_Gio.h" #include "HL_ESM.h"
xTaskHandle xTask1Handle;
void vTaskHET (void *pvParameters) { for (;;) { vTaskDelay (100); } }
int main (空) { /*用户代码开始(3)*/ gioInit(); hetInit(); if (xTaskCreate (vTaskHET、(const signed char *)"TaskHET"、configMINIMAL_STACK_SIZE、NULL、tskIDLE_PRIORITY、&xTask1Handle)!= pdTRUE) { /*无法创建任务*/ while (1); } /*用户代码结束*/
返回0; } |
我们确实使该代码在 TI C Composer 中使用了用于 TI Composer 的 HALCoGEN。
谢谢、
Trish