【AUTOSAR】AUTOSAR开发工具链(二)----TASKING库的封装

1、集成工程

  1. 步骤:
    1. 拷贝模块代码:

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

源工程(左)VS库工程(中)VS 释放工程(右)

【AUTOSAR】AUTOSAR开发工具链(二)----TASKING库的封装_第1张图片

 【AUTOSAR】AUTOSAR开发工具链(二)----TASKING库的封装_第2张图片

 【AUTOSAR】AUTOSAR开发工具链(二)----TASKING库的封装_第3张图片

 

    1. 比较源工程和库工程的设置:

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

【AUTOSAR】AUTOSAR开发工具链(二)----TASKING库的封装_第4张图片

 

    1. 编译生成库文件(.a)

生成的库文件位于debug目录下。

    1. 集成库文件到释放工程

将库文件拷贝到释放工程,编译,即可生成可执行文件(elf、hex)

  1. 可能遇到的问题:
    1. 程序无法正常运行(跑飞):

图片左半边是完成封装编译后的软件运行轨迹(程序跑飞了,死在了Os_const_tasks0),右半边是源工程正常运行的轨迹。

【AUTOSAR】AUTOSAR开发工具链(二)----TASKING库的封装_第5张图片

 【AUTOSAR】AUTOSAR开发工具链(二)----TASKING库的封装_第6张图片

 

 

问题原因: 库各个模块的*_Irq.c里面的函数,无法被release工程链接,导致中断处理函数为空。

解决方法:在各个*_Irq.c文件,增加一个函数,并在运行中调度。

【AUTOSAR】AUTOSAR开发工具链(二)----TASKING库的封装_第7张图片

 【AUTOSAR】AUTOSAR开发工具链(二)----TASKING库的封装_第8张图片

【AUTOSAR】AUTOSAR开发工具链(二)----TASKING库的封装_第9张图片 

 

    1. Tasking工程设置问题导致报错_TASKING_C_TRICORE_。

关键词:_TASKING_C_TRICORE_  #error "No compiler defined!";ctc E201

问提描述:AV012封库的时候,报了如图错误,原因是缺少某些宏定义。再原来的工程里面检索这些宏定义,也是没有找到,但是原工程是可以编译通过的。

解决思路:

可以定位是工程设置的问题了。

【AUTOSAR】AUTOSAR开发工具链(二)----TASKING库的封装_第10张图片

 【AUTOSAR】AUTOSAR开发工具链(二)----TASKING库的封装_第11张图片

 【AUTOSAR】AUTOSAR开发工具链(二)----TASKING库的封装_第12张图片

 

你可能感兴趣的:(开发语言,AUTOSAR,嵌入式硬件,linux,汽车)