• 282查看
  • 0回复

[Autosar] AUTOSAR入门-AS开源代码运行环境搭建

[复制链接]


该用户从未签到

发表于 3-3-2024 09:36:13 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师


AUTOSAR入门-AS开源代码运行环境搭建

AUTOSAR入门-AS开源代码运行环境搭建w1.jpg

一般介绍AUTOSAR的文章都是讲概念,讲设计,感觉虚无缥缈,到头来没有一句代码,反正就是很好,很复杂。或者弄个界面软件点一点就说是在编程,我相信对真正的程序员来说都是扯淡。Talk is easy,show me the code,直接上代码:https://github.com/thatway1989/as

1. AS开源代码介绍

AUTOSAR入门-AS开源代码运行环境搭建w2.jpg

这里首先要提到一个大神parai.wang,感谢他的奉献,我们有了开源的代码:https://github.com/autoas/as

更多大神parai.wang的介绍,见下面博客:https://autoas.github.io/as/index.html

https://github.com/thatway1989/as是我fork parai.wang的,然后修改了一些编译问题,给qemu新加了网卡可以DoIP发包做诊断业务。

这个AS代码包含了AUTOSAR的工具链、qemu环境、仪表模拟,发包工具、ArcticCore源码,各种RTOS等,很强大,是一个整合型的开源汽车软件开发平台。更厉害的是不需要硬件电路板也能用qemu模拟硬件运行起来,降低学习成本,方便调试。

由于介绍这份代码的资料比较少,另外AUTOSAR开源的代码的确是比较少,ArcticCore开源代码 2014年也被Vector收购不开源免费了。目前有的开源代码也比较老,可能是利益太大,研究这个开源代码还是需要花一些功夫的,这里把我经验分享给大家,虽然这个代码对比商业的产品像小木船对比航空母舰,但是这也是个船,麻雀虽小,五脏俱全,适合学习,还可以基于此二次开发。

  代码下载下来可以看到com/as.infrastructure目录下面是ArcticCore的源码,但是ArcticCore的代码比较老,想参考最新ArcticCore源码有:https://github.com/openAUTOSAR/classic-platform

2. AS开源代码下载编译运行


AUTOSAR入门-AS开源代码运行环境搭建w3.jpg

目前市面上的AUTOSAR工具链基本都是在Windows下使用的,因为傻瓜化,门槛低。但是从开源开发角度来说还是Linux下,免费的工具更多一些,这个AS代码是也可以在Winodws下运行,但是我建议在linux的Ubuntu系统下运行,下面的操作过程都是在Ubuntu下操作的,可以自己安装一个VituralBox+Ubuntu,自行百度安装。

2.1 代码下载

在ubuntu下安装git后,执行命令下载代码:
git clone https://github.com/thatway1989/as

2.2  代码编译

编译工具安装:
sudo apt install curl scons autoconf libtool-binpython2 python3-sip python3-sip-dev sip-dev python3-pip flex bison gperflibncurses-dev nasm gnome-terminal gcc-arm-none-eabi libreadline-dev python3-pyqt5 libcurl4-openssl-dev libgtk-3-dev pkg-config libglib2.0-dev
编译命令:
cd assconsexport BOARD=x86export RELEASE=ascorescons
scons是编译命令,编译过程中会在realease/download下载一些开源软件参与编译,编译成功后提示:

AUTOSAR入门-AS开源代码运行环境搭建w4.jpg

2.3 代码运行

编译完就可以运行qemu虚拟机加载我们编译的AUTOSAR开源软件了,执行命令:
scons run
在虚拟机里面运行,第一次运行会先下载编译虚拟机软件,耗费时间比较长。

运行起来如下图:

AUTOSAR入门-AS开源代码运行环境搭建w5.jpg

    运行起来后可以看到代码打印的log,EcuM_Init  StartOS  LWIP等是不是很熟悉,可以看到开源AUTOSAR代码在qemu上运行起来了。

编译和运行过程中如果会遇到一些错误,下面总结了一些,可以在文章下面留言,讨论。

1)as/release/download/qemu/linux-user/syscall.c:259:16: error: staticdeclaration of ‘gettid’ follows non-static declaration

  259 | _syscall0(int, gettid)

解决方法:

vim release/download/qemu/linux-user/syscall.c

#include <sys/syscall.h>

vim release/download/qemu/linux-user/ioctls.h

#include <bits/socket.h>

2)编译qemu的时候报错

/usr/include/c++/10/type_traits:56:3: error:template with C linkage怎么解决

vim glib-2.0/glib/gversionmacros.h

define GLIB_VERSION_MIN_REQUIRED (GLIB_VERSION_2_26)

3. 其他

3.1 telnet连接shell

scons run命令后会执行 build/posix/x86/ascore/qemu.sh脚本,会出来qemu界面:

AUTOSAR入门-AS开源代码运行环境搭建w6.jpg

这个界面不显示多余有用的信息,看log还是需要telnet连接上的界面会打印log。

我们回到telnet界面,继续按回车可以进行命令行,可以进入shell,运行命令

AUTOSAR入门-AS开源代码运行环境搭建w7.jpg

使用help命令可以看到支持那些命令:

AUTOSAR入门-AS开源代码运行环境搭建w8.jpg

ps可以看进程信息

AUTOSAR入门-AS开源代码运行环境搭建w9.jpg

3.2 工具链之配置文件生成工具

      AS平台里面有可以运行的代码生成工具,工具会读取arxml文件,界面上进行配置后,生成XXX_Cfg.c .h等配置文件,执行命令:
scons studio
AUTOSAR入门-AS开源代码运行环境搭建w10.jpg

其他命令:

scons -c  #清编译文件

scons --menuconfig #类似linux内核的配置方法对代码进行配置

后记:

      命令scons studio可以利用arxdml代码生成c代码,com/as.infrastructure下面是ArcticCore的源码,对比vector的工具和代码是不是像小破船一样,虽然简陋但是照样博大精深,一口吃不了胖子,先研究下小破船也可以。

Talk is cheap,show me the code,后续会继续更新,纯干货分析,无广告,不打赏,欢迎转载,欢迎评论交流!

往期回顾:

AUTOSAR入门-江湖

快速发帖

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

GMT+8, 1-2-2025 10:42 , Processed in 0.259369 second(s), 31 queries .

Powered by Discuz! X3.5

© 2001-2013 Comsenz Inc.