- 博客(23)
- 资源 (1)
- 收藏
- 关注
原创 汽车电子学习笔记 --- EcuM
EcuM作用: 初始化和反初始化操作系统,SchM和BswM以及一些基本的软件驱动模块 根据需求,配置ECU为SLEEP或者SHUTDOWN模式 管理ECU上的所有唤醒事件 提供了唤醒验证协议,验证确定唤醒事件是否是真的唤醒事件 提供模式请求用户CallOut回调函数用作睡眠唤醒过程中的具体操作 EcuM阶段 整体过程图 startup阶段: 最...
2022-04-13 23:07:55
4893
原创 汽车电子学习笔记 --- IAR
官网 IAR Systems 命令行编译 \common\bin路径添加到系统环境变量path中 IarBuild xxx.ewp Debug ---- xxx.ewp为IAR工程名称,Debug为xxx.ewp文件中configuration的name 编译输出所有的编译信息:IarBuild XXX.ewp -build Debug -log all,编译信息生成到log文件:IarBuild XXX.ewp - b...
2022-03-06 22:11:26
1567
原创 汽车电子学习笔记---基于UDS的Bootloader
汽车电子学习笔记—基于UDS的BootloaderBootloader 又称引导加载程序,是系统上电之后运行的第一段代码,其主要用于软件更新。在每次上电/复位后,ECU首先执行Bootloader代码,Bootloader会执行一些基本的初始化,然后再检查刷新请求标志位是否为有效,如果刷新请求标志位有效,则停留在bootloader模式中进行软件升级操作。如果当前没有刷新请求,即刷新请求标志位为无效,则检查应用软件的状态。如果应用软件是有效的,则执行APP应用程序代码,如果应用软件无效,则继续执行Boot
2021-12-01 21:10:59
6895
1
原创 汽车电子学习笔记---UDS
汽车电子学习笔记—UDS一、概述UDS(Unified Diagnostic Services),统一的诊断服务。协议的应用层定义是ISO 14229-1,目前大部分汽车厂商均采用UDS on CAN的诊断协议。UDS本质上是一种定向的通信,是一种交互协议(Request/Response),可以理解为C/S模式,Tester为client端,ECU为Server端,即诊断方(Tester)给ECU发送指定的请求数据(Request),ECU服务端回复肯定或否定响应。1、SID:Service Id
2021-11-19 00:25:07
14122
原创 汽车电子学习笔记---RZ、NRZ、NRZ1、曼彻斯特编码
汽车电子学习笔记—RZ、NRZ、NRZ1、曼彻斯特编码1、RZ(Return Zero Code)编码也称为归零码,特性就是在一个周期内,用二进制传输数据位,在数据位脉冲结束后,需要维持一段时间的低电平。RZ编码又分为两种:单极性归零码低电平表示0,正电平表示1,如下图:红色的线表示数据,只占据一部分的周期,剩下周期部分为归零段双极性归零码高电平表示1,负电平表示0RZ编码特点:能够同时传递时钟信号和数据信号,但由于归零,需要占用一部分的带宽2、NRZ(Non Return Ze
2020-07-04 21:46:45
4760
1
原创 汽车电子学习笔记---CAN网络(二)
汽车电子学习笔记—CAN(二)1、CAN标准CAN标准分为底层标准(物理层和数据链路层)和上层标准(应用层)两大类。底层标准:CAN底层标准都相同,涵盖OSI模型中的物理层和数据链路层,与ISO/OSI模型的对应关系如下图所示:ISO 11898-1:数据链路层协议,描述CAN总线的基本架构,定义不同CAN总线设备在数据链路层通信方式ISO 11898-2:高速CAN总线物理层协议,最高数据传输速率 1Mbps,应用为两线平衡式信号(CAN_H, CAN_L)ISO 11898-3:
2020-07-03 23:52:27
3488
原创 汽车电子学习笔记---AutoSAR之RTE
汽车电子学习笔记—AutoSAR之RTE- 1、概念1)RTE是AUTOSAR虚拟功能总线(Virtual Function Bus,VFB)的接口的实现,它为应用程序软件组件之间的通信提供了基本的服务,同时也便于访问包含OS的基本软件组件2)提供基础的通信服务,支持AUTOSAR的软件组件间、基础软件间、软件组件与基础软件之间的通信3)从逻辑上RTE可以分为两部分: - 软件组件间的通信- 软件组件的调度- 2、具体实现1)RTE 事件触发RunnableAUTOSAR SWC不能
2020-06-23 00:29:14
11571
原创 汽车电子学习笔记---AutoSAR之BSW---NVRAM Manager(二)
汽车电子学习笔记—AutoSAR之BSW—NVRAM Manager(二)- 1、RAM Block dataRAM 状态转换图RAM状态转换说明1)上电最初状态:UNINITIALIZED2)初始化后(NvM_Init):INVALID / UNCHANGED3)NvM_ReadAll后更新:VALID/UNCHANGED,在这种状态下,WriteAll是不允许的4)调用NvM_SetRamBlockStatus()可以设置RAM状态:参数为true, VALID / CHANG
2020-05-12 23:37:25
4874
原创 汽车电子学习笔记---AutoSAR之BSW---NVRAM Manager(一)
汽车电子学习笔记—AutoSAR之BSW—NVRAM Manager(一)- 1、概述NVRAM Manager(NvM)是应用app层访问非易失性数据的唯一接口,提供非易失数据的管理服务。NvM上层是RTE,下层是对接Flash Driver或者EEPROM Driver的接口。位于基础软件的服务层,并为为所有NV data的(初始化、读、写、控制)维护以及管理作提供了各种同步/异步服务。无论是EEPROM还是Flash模拟的eeprom,都在这层被抽象为同一类型,直到MemIf层才会
2020-05-12 00:44:01
7345
4
原创 汽车电子学习笔记—AutoSAR之基础软件层(BSW)
汽车电子学习笔记—AutoSAR之基础软件层(BSW)- 1、概述如之前autosar概述笔记中说明,BSW按照层级结构可以分为服务层、ECU抽象层、硬件抽象层(MCAL)和复杂驱动层(CDD)。- 硬件抽象层(MCAL)主要包含了相关的Driver,通过该层次可以访问MCU的资源,比如访问整个芯片的CAN,LIN等控制器,配置MCU的Port脚,配置MCU的时钟等。主要包含下面的内容:...
2020-05-01 23:32:14
22535
3
原创 汽车电子学习笔记---AutoSAR概述
汽车电子学习笔记—AutoSAR概述1、概述Automotive Open System ARchitecture,汽车开放系统架构2、架构1)架构图2)详细描述应用软件层(AppL)由一个个SWC组成的,如车窗,锁,车灯等,每个SWC咱们可以理解为一个.c文件实时运行环境(RTE)1)可以理解成一个中间层,负责各模块中转调用和管理,将BSW和SWC做隔绝,使...
2020-04-27 23:21:26
5560
2
转载 CANoe的使用--CANoe常用操作(CANoe系列其一)(转载)
摘要1、CANoe工程的新建2、通过Trace工具查看交互的报文内容3、通过Logging保存日志文件4、创建IG发送报文5、通过Graphics界面抓取信号波形6、加载cdd文件7、过滤报文ID的接收8、其他
2020-04-26 22:07:28
34675
2
原创 汽车电子学习笔记---LIN
汽车电子学习笔记—LIN1、简介1)LIN(Local Interconnect Network)总线是基于UART/SCI(通用异步收发器/串行接口)的低成本串行通讯协议。主要用于网络宽带、性能没有过高要求的汽车功能模块:如车窗,天窗等模块。2) LIN网络在汽车中一般不独立存在,通常会与上层CAN网络相连,形成CAN-LIN网关节点。3)LIN总线采用的是单线传输形式,应用了单主...
2020-04-16 21:10:05
2441
原创 C语言性能优化
C语言性能优化- 1、数据类型1)如果确定整数非负,应直接使用unsigned int,处理器处理无符号unsigned 整形数的效率远远高于有符号signed整形数2)float可以用int替代,如果需要结果精确到小数点后n位,可以将其乘以n*10,结果尽可能晚的把它转换为浮点型数字3)局部变量尽可能的不使用char和short类型。对于char和short类型,编译器需要在每次赋值的时...
2020-04-09 22:46:11
1393
原创 汽车电子学习笔记---CAN
汽车电子学习笔记—CAN1、CAN(Controller Area Network)控制器局域网络是 ISO 国际标准化的串行通信协议。通俗来讲,CAN总线就是一种传输数据的线,用于在不同的ECU之间传输数据。CAN两个ISO国际标准:1)ISO11898 :定义了通信速率为 125 kbps~1 Mbps 的高速 CAN 通信标准,属于闭环总线,传输速率可达1Mbps,总线长度 ≤ ...
2020-04-07 22:44:29
2356
原创 c 语言---部分标准库函数及源码
部分标准库函数及源码- 数据和宏定义#define NULL ((void *)0)#define TOLOWER(c) ((((c) > 'A') && ((c) < 'Z')) ? ((c) - 'A' + 'a') : (c))typedef unsigned int size_t;1、memcpy:从存储区 src 复制 n 个字符到存储区 ...
2020-03-26 21:53:16
1487
原创 c语言接口(三)--- 队列接口
QUEUE接口数据结构定义typedef void* PLIST_QUEUE;typedef struct __queueNode{ struct __queueNode *pNext; int data;}ST_QUEUE_NODE;typedef struct __listQueue{ ST_QUEUE_NODE header; ST_QUEU...
2020-03-23 20:54:45
278
原创 c语言接口(二)--- 栈接口
Stack接口栈结构类型定义#define STACK_MAX_SIZE (1024)typedef struct __stack{ void *pData[STACK_MAX_SIZE]; int size;}ST_STACK;typedef void* PST_STACK;方式一创建和初始化栈PST_STACK init_stack(v...
2020-03-19 22:24:31
328
原创 汽车专用名词
汽车专用名词1、ECU电子控制单元,从用途上讲则是汽车专用微机控制器,汽车的大脑。由微处理器(CPU)、存储器(ROM、RAM)、输入/输出接口(I/O)、模数转换器(A/D)以及整形、驱动等大规模集成电路组成2、ECM1)汽车发动机控制模块,是发动机控制的核心部件,根据各传感器的输入信息,控制发动机的燃油喷射和点火时刻,并为其他输出装置提供最佳的控制指令2)ECM的核心部件是微...
2020-03-16 21:50:30
2388
原创 c语言接口(一)---链表
链表接口链表节点定义typedef struct LinkNode{ int data; struct LinkNode *next;}LINKNODE;1、创建链表并初始化/*init list*/LINKNODE *init_linklist(int data_array[], int length){ LINKNODE *pListHeader ...
2020-03-16 21:09:05
295
原创 C语言查漏补缺(二)
一、基本知识点 8、malloc/calloc/realloc区别 1)malloc:void * malloc(int n); n:申请空间大小(单个类型大小*总个数)
2020-03-10 23:04:01
193
原创 C语言查漏补缺
C语言查漏补缺一、基本知识点1、sizeof 1)sizeof()返回长度,以字节为单位 2)sizeof(n) 判断表达式的长度并不需要对表达式进行求值,所以sizeof(a=b+1)并没有向a赋任何值.int b = 3;int a = 0;printf("sizeof a: %d \n", sizeof(a=b+3)); /*sizeof 并不会计算*/pri...
2020-03-09 21:26:53
515
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人