TI论坛
直播中

步雅芸

7年用户 200经验值
私信 关注
[问答]

HAL code generator 生成的sys_startup.c中的for(;;)

想问下用HAL Code Generator生成的代码直接加载到CCS5.3中程序的sys_startup.c中会不会有很多 for(;;)呢?写好程序好全速调试的时候没有反应,单步调试时发现是在startup.c中的for(;;)等待,看了一下程序中的for(;;)还挺多的,注释掉后可以正常运行,这个是因为HAL 工具没有设置对吗?

回帖(1)

李麒铭

2018-8-8 07:27:29
Hi Yong,
    HALCoGen目前的版本会在Startup.c中加入很多功能安全性的初始化工作。
    而这些代码主要是给用户作为参考用的。
    大部分功能安全性功能不支持调试模式,所以当你在调试环境下打开这些功能时会发生不可预见的错误。
    现象就是时而能跑,时而进入for(;;)死循环(其实就是芯片认为功能发生错误而进入了错误处理,这里的错误处理就是死循环)。

    推荐办法是:
    1. HALCoGen配置页面中尽可能关闭安全性相关的内容,如在[SAFEINIT]选项卡中的内容。
    2. 生成代码后,在startup.c的_c_int00中,把安全性相关的内容注释掉或用#if 0预编译指令关闭。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分