上层精灵的赞美诗 2025-01-02 23:18 采纳率: 50%
浏览 123
已结题

ADS移植到tasking编译错误,如何解决?

最近入门TC275,在将ADS工程移植到tasking时,根据官网论坛上的方法操作,在编译时出现了如下错误:
ltc E106: unresolved external: _main - (IfxCpu_CStart0.o)
ltc F019: unrecoverable error: fatal link error
amk E452: ["makefile" 107/0] target 'TC275_iLLD.elf' returned exit code 1
amk E451: make stopped

请问有哪位兄台指点一下,问题出现在哪里了?
具体如下图:

img

  • 写回答

2条回答 默认 最新

  • 上层精灵的赞美诗 2025-01-03 00:20
    关注

    经过排查,发现问题出现在启动代码IfxCpu_Cstart0.c中的CPP初始化函数:

    static void Ifx_Cpp_Init(void)
    {
        Ifx_C_Init();           /*Initialization of C runtime variables */
    #if defined (__TASKING__)
    extern void _main(void); /* cpp initialization */
        _main();
    #elif defined (__HIGHTEC__)
    extern void _init(void); /* cpp initialization */
        _init();
    #elif defined (__GNUC__) && !defined(__HIGHTEC__)
        extern void _init(void); /* cpp initialization */
        _init();
    #endif
    }
    
    

    在tasking编译器中会警告_main()的调用,但是在ADS中却不会,经过实验发现如果注释掉_main();编译通过,ADS中也是使用了tasking编译器,相同的编译器在iLLD库的便以上表现不同,到底是什么原因?

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月26日
  • 已采纳回答 3月18日
  • 创建了问题 1月2日