安卓车机系统培训文档Author: 雪年敏Date: 2016/10/25
一:车机系统框架
MCU功能
✧电源控制
✧Radio控制(RDS)
✧按键检测(Panel/Remote/SW)
✧常见信号检查(倒车/大灯/刹车)
✧CAN模块通讯
✧ARM-MCU通讯
✧进出碟控制
✧翻转马达系统
✧屏驱(此种情况倒车一般用mcu控制)
AMR功能
✧wifi 、BT、gps、3/4G
✧显示、触摸
✧多媒体播放(SD卡、U盘)
✧倒车显示
✧语音
✧AUX
✧胎压、DVR、CMMB
✧CVBS输出(后排输出)
二安卓启动流程
✧第一阶段:Android设备上电后,首先会从处理器片上ROM的启动引导代码开始执行,片上ROM会寻Bootloader
代码,并加载到内存。(这一步由“芯片厂商”负责设计和实现)
✧第二阶段:Bootloader开始执行,首先负责完成硬件的初始化,然后到Linux内核代码,并加载到内存。(这一
步由“设备厂商”负责设计和实现)
✧第三阶段:Linux内核开始启动,初始化各种软硬件环境,加载驱动程序,挂载根文件系统,并执行init程序,
由此开启Android的世界。(这一步则是Android内核开发过程中需要涉及的地方)
init程序最核心的工作主要有3点:
(1)创建和挂载一些系统目录/设备节点,设置权限,如:/dev, /proc, and /sys
(2)解析 和init.<hardware>.rc,并启动属性服务,以及一系列的服务和进程。
(3)显示boot logo,默认是“Android”字样
✧第四阶段:Zygote进程、SystemServer进程创建Zygote进程由init进程创建,SystemServer进程由Zygote创建
✧第五阶段:HCNservice启动:包括以下服务(HCN添加的所有关键服务)
CBMService;
CanbusService;
McuService;
RadioService;
安卓系统软件开发培训SettingService;
McuCBMService;
HCNPandoraService;
SWCService;
✧第六阶段:启动完成阶段。当所有的服务都启动完毕后,SystemServer会打印出“Making services ready”,然后
通过ActivityManager启动Home界面,并发送“ACTION_BOOT_COMPLETED”广播消息(到此真正看到了主界面)
三代码结构
核心服务路径:\autochips\frameworks\base\services\java\com\auto
APP路径:\autochips\packages
四编译说明(8217)
全编译
1 . mbldenv.sh 导出编译需要的编译工具相关环境变量
2 . selfenv 拷贝autochips到相关目录主要拷贝以下目录:
3 . selfbuild
实际上selfbuild仅是autochips\build\build.all脚本的符号链接。在没有参数的情况下,selfbuild会依次执行v,build.uboot,build.kernel,build.driver,build.arm2,build.android,apackage,build.makeimage这7个sh脚本。
相当分步执行以下:(当要单独编译部分时可以单独以下某句命令方法)
1.$source ./v 设置编译环境
2.$./selfbuild uboot 编译uboot
3.$./selfbuild driver 编译ATC的driver
4.$./selfbuild kernel 编译linux kernel
5.$./selfbuild arm2 编译arm2
6.$./selfbuild android 编译android
7.$./selfbuild makeimage 生成最后需要烧写到板子上的Image(把多余的apk删除同时打包镜像)
模块编译
1 : 用mm 或mmm编译相应模块
2: . selfbuild makeimage 生产镜像
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论