1.为什么要做这样一个专栏?
2018年毕业后参加工作到现在差不多6年多时间一直从事汽车电子ECU的软件开发,做了很多项目也遇到和解决了很多的问题,但是直到现在还是发现很多的东西都是模糊不清的,或者很多知识点因为没有实际做过,就算看过相关的介绍,心里总还是虚的,比如你能回答以下的问题吗:
1.硬件设计的时候会找软件工程师一起Review相关的硬件设计,软件工程师需要关注哪些内容了?
2.如何实现一个工程级别的编译工程?直接使用Makefile还是CMake还是Scons?
3.连接器脚本是从0到1手写的吗?如何设计一个工程级别的连接器脚本?
4.从ECU上电到Main函数运行之间的启动代码到底做了些什么内容,这些内容需要我们在日常开发工作中去修改吗?
5.多核到底是怎么启动的?AUTOSAR OS如何完成多核启动的同步?
6.如何初始化AUTOSAR OS的中断向量表和异常向量表?
7.Main函数启动到Start_OS之间EcuM可以完成哪些初始化,他们的顺序有什么要求?
8.OS是如何启动第一个Task的?
9.OS是如何进行Task切换的?
10.如何设计Task的优先级和抢占属性?
11.带SBC的断电系统的ECU和无SBC的深度休眠的ECU在硬件设计上应该注意什么?
12.带SBC的断电系统的ECU和无SBC的深度休眠的ECU在MCAL的MCU模块配置有何一同,如何配置?
13.如何在MCU模块配置工程所需的时钟频率?
14.MCAL Port模块输入PIN脚的上拉/下拉/无上下拉属性如何选着?
15.MCAL Port模块输出PIN脚的开漏Open drain/推挽Push pull属性如何选着?
16.MCAL Adc信号采集波动过大是哪里的问题?
17.MCAL Fee模块的垃圾回收机制的具体算法是怎样的?
18.MCAL Fls模块是怎么读写Flash的?
19.MCAL ICU模块的ICU_MODE_SIGNAL_EDGE_DETECT, ICU_MODE_EDGE_COUNTER,ICU_MODE_SIGNAL_MESUREMENT, ICU_MODE_TIMESTAMP, ICU_MODE_INCREMENTAL_INTERFACE集中模式的应用场景是什么?
20.MCAL PWM设置占空比偶发失败可能是什么原因?
21.如何理解设计SPI Channel, Job, Sequence?
22.BswM是如何结合EcuM模块实现ECU的休眠唤醒逻辑的?
23.CAN模块的HardwareObject和具体芯片的Message RAM, Rx Buffer, Rx FIFO, Tx Buffer, Tx FIFO,Tx Queue对应起来的?
24.AUTOSAR网络管理如何影响ECU的休眠唤醒?
25.CanSM中Bus Off时间配置都是正确的,为何测试工程师说Bus Off时间不符合要求了?
26.如何利用CanTP通道实现一个大数据传输模块?
27.利用CanTrcv实现ECU的唤醒功能的软硬件如何设计?
28.Com模块中的周期报文如何通过配置发送?
29.ComM, EcuM,BswM, CanNm, CanSM如何共同实现CAN网络的休眠唤醒?
30.DCM的11 02复位请求的具体实现过程,和EcuM和BswM如何交互?
31.NvM读写Block失败后如何定位具体的失败原因?
32.中间删除或者插入一个NvM Block会影响其他的NvM Block的功能吗?
33.如何设计一个通用的功能安全软件框架?
34.如何存储安全机制起效后的现场信息?
35.安全机制起效后执行什么动作?
36.如何测试功能安全机制?
......
以上仅仅列出部分疑惑和问题,这些内容如果不是从0到1做一个项目,可能都不需要你去考虑或者需要你去修改,但是,如果我们想走的更远,就需要我们有从0到1的能力,那么上述介绍的内容及更多的细致内容都需要我们去考虑。
所以,本着打破砂锅问到底的态度、终身学习的态度、想在这条路上走的更远的态度,决定一个人从0到1做一个AUTOSAR项目,把自己学习过的内容、想学的内容、没做过的内容都实践一遍,看能不能达到融会贯通的境界。
打工仔害怕的35岁危机,并不是你到了35岁后企业老板就不要你了,而是35岁时没有匹配的上35岁能力后没人要你了(有点PUA的感觉,但,事实就是如此...)。
基于以上种种原因,汽车电子嵌入式开始更新全新的AUTOSAR项目实战专栏内容,从0到1搭建一个AUTOSAR工程,内容会覆盖AUTOSAR通信协议栈、存储协议栈、诊断协议栈、MCAL、系统服务、标定、Bootloader、复杂驱动、功能安全等所有常见功能和模块,全网同步更新开发设计文档(后期也会更新视频内容)。作者也需要吃饭,本专栏为付费内容,不喜勿喷!
2.这个专栏有什么主要内容?
如下图所示,为本专栏将要介绍的主要内容,细节内容或者问题都来源于作者在工作中的经验总结,或是一些想要学习却一直没有机会实践的内容。
3.为什么要学习这个专栏?
个人觉得有以下原因:
1. 汽车电子AUTOSAR还算一个相对高薪的方向。
2. 英飞凌TC3xx及搭配的Davinci, EB, Tasking工具依然是主流的汽车电子软硬件方案。
3. 实战内容都来自于实际工程项目经验。
4. 从0到1的过程能解决你学习中的很多困惑。
5. 各种问题分析及经验总结能让你少走网路。
4.该怎么学习这个专栏?
实践是检验真理的唯一标准,光说不做假把式,学习这个专栏当然是有硬件调试环境加软件配置工具实操是最好的学习办法。至于如何能弄到这些环境和工具,就需要各显神通了,私信作者可以给出一些个人学习使用的建议。
5.谁可以学习这个专栏?
刚进入到汽车电子AUTOSAR软件开发的年轻工程师是最适合学习本专栏的,能解决你们大部分的疑惑,避免重复跳入前人的坑中。
自学或者在校的学生,如果想从事汽车电子嵌入式开发,那么本专栏也很适合你们,提前了解实际工作中具体的工作内容,比同届人赢在起跑线上。
资深的工程师或者老板们,也可以参考本专栏,也许里面提到的一些注意事项或者解决方案能给你们带来帮助。