1.SOA
????????面向服务的架构(Service-Oriented Architecture,SOA)还没有一个公认的定义。许多组织从不同的角度和不同的侧面对 SOA 进行了描述,较为典型的有以下三个:
? ? (1)W3C 的定义:SOA 是一种应用程序架构,在这种架构中,所有功能都定义为独立的服务,这些服务带有定义明确的可调用接口,能够以定义好的顺序调用这些服务来形成业务流程。
? ? (2)Service-architecture.com 的定义:服务是精确定义、封装完善、独立于其他服务所处环境和状态的函数。SOA 本质上是服务的集合,服务之间彼此通信,这种通信可能是简单的数据传送,也可能是两个或更多的服务协调进行某些活动。服务之间需要某些方法进行连接。
? ? (3)Gartner 的定义:SOA 是一种 C/S 架构的软件设计方法,应用由服务和服务使用者组成,SOA 与大多数通用的 C/S 架构模型不同之处,在于它着重强调构件的松散耦合,并使用独立的标准接口。
2.基于POSIX的ECU中的车载以太网
????????为了满足汽车行业的需求,许多基于以太网和TCP/IP的特定协议被定义供车载应用使用。这些协议包括可扩展的面向服务的IP中间件(SOME/IP),用于车辆诊断的IP诊断通信(DoIP),基于UDP协议的网络管理(UDPNM),测量和标定协议( XCP),以及IEEE 802.1AS中规定的时间同步协议。
????????一文了解什么是DoIP协议(超详细)-CSDN博客
车载以太网DoIP协议,详细入门讲解,由浅入深_doip网关-CSDN博客
一文了解什么是SOME/IP协议(超详细)_someip协议-CSDN博客
3.CPU、MCU、FPGA、SoC……这些芯片究竟是啥?
微处理器系统的基本操作过程是中央处理器(Central Processing Unit, CPU)不断地从存储器取指并执行,实现对系统的全面管理。
经过大改观的微处理器系统,其所有部分都集成在了一块芯片上,称为微控制器或单片机(Micro Controller Unit, MCU
微处理器单元(Micro Processor Unit, MPU),就是把很多CPU集成在一起并行处理数据的芯片。通俗来说,MCU集成了RAM,ROM等设备;MPU则不集成这些设备,是高度集成的通用结构的中央处理器矩阵,也可以认为是去除了集成外设的MCU。
CPLD/FPGA经常和实际的CPU搭配使用,在CPLD/FPGA上编写一些较复杂算法的运算电路,当CPU处理到这些复杂任务时,就交由CPLD/FPGA进行处理,处理结束以后再将结果返回给CPU,提高控制系统的整体性能。
数字信号处理器(Digital Signal Processor, DSP)是用来高速处理数字信号的专用芯片。
SoC已然是功能最为丰富的硬件,其上集成了CPU、GPU、RAM、ADC/DAC、Modem、高速DSP等各种芯片,有的SoC上还必须集成电源管理模块,各种外部设备的控制模块
4.BMS(电池管理系统)
BMS主要任务:
电池状态监测
电池状态分析
电池安全保护
能量控制管理
电池信息管理
5.项目
6.代码优化
8.秋招
小米,兆易创新,全志科技,浙江大华,海格通信,京信通信,景嘉微电子,广州朗国电子,北京华大电子,中国长城科技集团
?Linux驱动:Arm架构的深入了解,操作系统和计算机组成原理的基本知识。
杜春雷老师写的《ARM体系结构与编程》,这本书其实就是ARMV7开发手册的中文版,很多内容都是手册里面的。书的话不一定都要看,学习过程中,哪里不了解再去查书,效果可能会更好。
【leetcode】高频题目整理_所有题目汇总篇
(https://blog.csdn.net/qq_16933601/article/details/108913658)
??面试leetcode题型总结
(https://zhuanlan.zhihu.com/p/158977583?utm_source=qq&utm_medium=social&utm_oi=805166261268004864)
OJ在线编程常见输入输出练习场
(https://ac.nowcoder.com/acm/contest/5650)
C语言这部分的话,可以上网搜索一些面试中经常问到的内容。这里也推荐一本书,何昊老师写的《程序员面试笔试宝典第三版》(不要找错了)。这本书是针对C/C++程序员的,主要介绍了面试过程中经常问到的问题,整体的内容偏向底层,问题解释的也比较清楚。但是有些地方有错误,看的时候要注意。
链接如下Offer,三方,两方,毁约 这些你需要知道的事
(https://www.nowcoder.com/discuss/144015)
我们可以使用宏定义来封装一个宏打印函数,这个宏打印函数可以显示打印信息所在的文件、行数、函数名等信息。其中,__FILE__
、__LINE__
、__FUNCTION__
这三个宏是编译器内置宏定义,分别代表调试信息所在文件、行号、函数。除此之外,常用的宏还有:__DATE__
、__TIME__
,分别代表当前的编译日期与时间。
#define DBG_PRINTF(fmt, args...) \
{\
printf("<<File:%s Line:%d Function:%s>> ", __FILE__, __LINE__, __FUNCTION__);\
printf(fmt, ##args);\
}