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.

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

Other Parts Discussed in Thread: HALCOGEN

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

  • Hi Yong,

        HALCoGen目前的版本会在Startup.c中加入很多功能安全性的初始化工作。

        而这些代码主要是给用户作为参考用的。

        大部分功能安全性功能不支持调试模式,所以当你在调试环境下打开这些功能时会发生不可预见的错误。

        现象就是时而能跑,时而进入for(;;)死循环(其实就是芯片认为功能发生错误而进入了错误处理,这里的错误处理就是死循环)。

        推荐办法是:

        1. HALCoGen配置页面中尽可能关闭安全性相关的内容,如在[SAFEINIT]选项卡中的内容。

        2. 生成代码后,在startup.c的_c_int00中,把安全性相关的内容注释掉或用#if 0预编译指令关闭。