1、集成工程
将源工程的所有模块代码拷贝到库工程,将源工程拷贝一份,并删除不必要的文件作为释放工程,完成结果如下图:
源工程(左)VS库工程(中)VS 释放工程(右)



因为源工程可能在设置里面配置了一些和当前软件匹配的预编译信息以及其它选项,故有必要使用beyond compare比较两个工程的差异点,之后编译出错时,可以回头检查一些设置的差异。比如下图:

生成的库文件位于debug目录下。
将库文件拷贝到释放工程,编译,即可生成可执行文件(elf、hex)
图片左半边是完成封装编译后的软件运行轨迹(程序跑飞了,死在了Os_const_tasks0),右半边是源工程正常运行的轨迹。


问题原因: 库各个模块的*_Irq.c里面的函数,无法被release工程链接,导致中断处理函数为空。
解决方法:在各个*_Irq.c文件,增加一个函数,并在运行中调度。


关键词:_TASKING_C_TRICORE_; #error "No compiler defined!";ctc E201
问提描述:AV012封库的时候,报了如图错误,原因是缺少某些宏定义。再原来的工程里面检索这些宏定义,也是没有找到,但是原工程是可以编译通过的。
解决思路:
可以定位是工程设置的问题了。



文章详细描述了集成工程的步骤,包括源代码的拷贝、工程设置的比较、库文件的生成和集成。在集成过程中遇到的程序跑飞问题,是由于中断处理函数未被正确链接,解决方案是在每个_Irq.c文件中添加调度函数。此外,还提到一个与(Tasking_C_TriCore_)相关的编译错误,该问题源于工程设置,可能缺少特定宏定义,需要检查和修复工程配置。
865

被折叠的 条评论
为什么被折叠?



