AUTOSAR入门-AS开源代码运行环境搭建
原创 thatway 那路谈OS与SoC嵌入式软件 2022-03-03 18:52
AUTOSAR入门-AS开源代码运行环境搭建
一般介绍AUTOSAR的文章都是讲概念,讲设计,感觉虚无缥缈,到头来没有一句代码,反正就是很好,很复杂。或者弄个界面软件点一点就说是在编程,我相信对真正的程序员来说都是扯淡
。
Talk is easy,show me the code
,直接上代码:https://github.com/thatway1989/as
1. AS开源代码介绍
这里首先要提到一个大神
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工具链基本都是在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 as
scons
export BOARD=x86
export RELEASE=ascore
scons
scons是编译命令,编译过程中会在realease/download下载一些开源软件参与编译,编译成功
后提示:
2.3 代码运行
编译完就可以运行qemu虚拟机加载我们编译的AUTOSAR开源软件了,执行命令:
scons run
在虚拟机里面运行,第一次运行会先下载编译虚拟机软件,耗费时间比较长。
运行起来如下图:
运行起来后可以看到代码打印的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
vim release/download/qemu/linux-user/ioctls.h
include
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界面:
这个界面不显示多余有用的信息,看log还是需要telnet连接上的界面会打印log。
我们回到telnet界面
,继续按回车可以进行命令行,可以进入shell,运行命令
使用help
命令可以看到支持那些命令:
ps
可以看进程信息
3.2 工具链之配置文件生成工具
AS平台里面有
可以运行的代码生成工具,工具会
读取arxml
文件,界面上进行
配置
后,生成
XXX_Cfg.c .h
等配置文件,执行命令:
scons studio
其他命令:
scons -c #
清编译文件
scons --menuconfig #
类似linux
内核的配置方法对代码进行配置
后记:
命令**scons studio**
可以利用arxdml代码生成c代码,com/as.infrastructure下面是ArcticCore
的源码,对比vector的工具和代码是不是像小破船一样,虽然简陋但是照样博大精深,一口吃不了胖子,先研究下小破船也可以。
Talk is cheap
,show me the code
,后续会继续更新,纯干货分析,无广告,不打赏,欢迎
转载
,欢迎
评论交流
!
往期回顾: