- 博客(36)
- 资源 (12)
- 收藏
- 关注
原创 【Autosar 存储栈Memery Stack 4.Tc397的Flash编程】
前面讲了EEPROM和FLASH最大的不同就是EEPROM可以操作的最小单位是字节,也就是可以直接擦除编程一个字节。FLASH的最小擦除单元是扇区,最小编程单元是page页,TC397芯片的DFLASH的逻辑扇区就有4K大小,page页大小是8字节。当前我们AUTOSAR项目用到的主要是英飞凌TC397芯片,所以接下来我们介绍下Tc397的硬件Flash相关知识。...
2022-08-06 13:43:57
3380
1
原创 【Autosar 存储栈Memery Stack 3.存储读写流程的要求与时序】
NvM在使用的时候需要BSW的NvM进行配置,对数据的操作中在APP可以使用两种类型的模式,可以定义一个应用层的Nv Component和内置的NvData Inteface实现,在Nv Component中会自动关联到底层的NvM中定义的Block,在APP也可以采用CS接口直接调用NvM的服务接口。对于数据的操作分为周期写、下电写、立刻写三种。1.周期写一般很少使用该功能,无论是EEPROM还是内部的Dflash都有一定的刷写次数的限制。在Nv Component中需要配置对应的周期触发函数;...
2022-08-06 12:21:05
1388
原创 【AUTOSAR CanDrive 1.学习CanDrive的功能和结构】
我们知道CanDrive是通信协议栈中的最底层,之前的文章已经讲了在autosar架构中的Com服务层系列文章 Com通信系列介绍我们废话不多说,直接进入今天的主题为了与文档描述保持一致,下文将使用CAN模块来表示CAN Driver。简单地说,CAN模块属于一部分的最底层内容,其作用是执行硬件访问和为上层提供独立的硬件接口(这里能访问CAN模块的上层只有Can Interface模块)。说到访问硬件,先了解几个概念,如下图所示:对图内容的解释如下:首先我们说一下Can Drive驱动状态机CAN模块驱
2022-06-02 14:27:37
2987
3
原创 【操作系统 2.了解进程的运行机制】
前文提到过,操作系统通过虚拟化CPU技术,提供了多个CPU的假象。要实现CPU的虚拟化,操作系统就需要一些低级**【机制】和高级【策略】**。本文主要谈谈,进程运行的一些机制。虚拟化为了虚拟化CPU,操作系统需要以某种方式让许多任务共享物理CPU,让他们看起来是同时运行。基本思想:运行一个进程一段时间,然后运行另外一个进程一段时间,如此轮换。通过这种时分共享CPU,就实现了虚拟化。如图是一个最简单的时分共享示意图,不考虑调度策略。进程A、B、C在一个时间段内各自运行一小段时间。理想和丰满,现实很
2022-05-12 17:28:07
442
原创 【操作系统 1.了解OS的虚拟化与进程】
这里写目录标题1.什么是虚拟化2.操作系统抽象:进程2.1 进程抽象2.2 进程机器状态2.3 进程 API2.4 进程创建的细节2.5 进程状态3. 总结1.什么是虚拟化关于虚拟化,我们引用《操作系统导论》中的一段对话:学生:尊敬的教授,什么是虚拟化?教授:想象我们有一个桃子。学生:桃子?(不可思议)教授:是的,一个桃子,我们称之为【物理】(physical)桃子。但是有很多想吃这个桃子的人,我们希望向每个想吃的人提供一个属于他的桃子,这样才能皆大欢喜。我们把给每个人的桃子称为【虚拟】(v.
2022-05-12 11:23:33
574
原创 【AUTOSAR COM 4.Com服务层模块的介绍】
Com服务层的配置Com概念与定义Signal的介绍三种信号值信号属性(Transfor property)信号的初始化与对齐方式(大小端)信号的收发sendreceive信号的字节转换与符号扩展信号的过滤机制I-PDU的属性介绍(transmission mode)四种传输模式TMC静态配置(True False)Com网关功能AUTOSAR COM模块的接收交互模型AUTOSAR COM模块的发送交互模型缩略词:有关Com通信协议栈的介绍到本篇就介绍完了,其实这块内容牵扯的知识是很多很多的 ,我这里
2022-04-17 17:39:52
931
原创 【AUTOSAR CanDrive 2.了解通信Hoh、CanId与PduID的Mapping关系】
CAN接口模块设计的初衷就是不能直接访问硬件,与硬件保持独立,这也就意味着CAN接口层只能通过CAN模块的接口去获取硬件有关的内容,主要使用的CAN模块接口有Hth和Hrh。关于Hth和Hrh,首先涉及一个软件过滤选择问题,即当Hth和Hrh配置成BasicCAN,则需要在CanIf模块执行软件过滤;当Hrh和Hth配置成FullCAN,则不需要在在CanIf模块执行软件过滤,而是在硬件过滤。然后进入上述提到的CanId映射方式,即不同CanId如何映射到Hrh和Hth,以及Hrh和Hth又如何映射到更上层
2022-04-17 15:34:24
4981
5
原创 【AUTOSAR COM 3.信号的收发流程TX/RX】
本系列文章的主题是CAN通讯,即属于通讯功能,对该功能再按模块细分,如下图3所示。其中CAN通讯的核心模块有4个:COM模块,PDU Router模块, CAN Interface模块和CAN Driver模块1.Can的接收回顾之前文章 menghuyouyou:根据ISO 11898-1标准可知, CAN接收功能需要使用通知(Indication)服务,那么怎么基于AUTOSAR架构实现呢?总的来说,AUTOSAR架构的CAN接收的软件实现流程图如下图4所示:BSW调度器周期性调用CAN Dr.
2022-04-15 16:27:53
3707
1
原创 【AUTOSAR COM 1.通信协议栈介绍】
CP AUTOSAR文档的下载链接1、首先我们看COM stack架构图1 CAN通信协议栈概念AUTOSAR通信栈位于运行时环境(RTE)与微控制器抽象层(MCAL)之间,其可以简化ECU间的通信服务,实现不同类型或速率总线间的数据交互。在AUTOSAR通信栈中,位于服务层的有通信模块(Communication,Com),诊断通信管理模块(Diagnositic Communication Manager,Dem)、协议数据单元路由模块(Protocol Data Unit Router,PduR
2022-04-10 17:31:26
7534
4
原创 【基于UDS服务的BootLoader架构和刷写流程】
基于UDS的BootLoader下载,可以支持ECU生命周期的无限次刷写,通过CAN网络进行无需拆壳和DEBUG口的应用程序刷写,本文介绍了刷写服务和是三个阶段的刷写流程。也可通过无线模块实现空中升级,即OTA技术。通过下面两张图了解一下bootloader的软件堆栈架构及刷写的流程。疑问点Q:图中的烧写顺序是34-36-34-36-34-36-37,但另一些材料中的顺序是34-36-36-36-37。A:这个问题这样理解,34-36-36-36-37的前提是你要下载的数据是连续的数据,每个36
2022-03-25 16:57:27
8439
5
原创 【Autosar DEM 四.Event Memory】
--------这一章是DEM的最后一章,小编在这里介绍的是DTC发生时,是怎么存储在非易失存储器中的。废话不多,让我们继续学习。Event Memoryevent memory是DEM的精髓所在。event memory是用于存储故障的EventID、扩展数据、故障状态、冻结帧等故障相关的数据的存储块,这个存储块应当被写入非易失性存储空间。如果存在一个完整的上下电过程,可以在NvM_ReadAll的时候把数据读取到存储在RAM中的变量,当下电时,NvM_WriteAll写入NvM。Event mem
2022-03-19 23:44:45
1785
原创 【Autosar DEM 三. Operation Cycle和Aging Dtc老化的DTC】
DEM Operation cycle操作循环
2022-03-19 23:07:17
8519
2
原创 【Autosar DEM 二.debounce事件确认和对应的状态位变化】
report也就是SWC或者BSW给DEM报诊断事件的状态。它由两个部分组成,一个是诊断事件(diagnostic event),一个是滤波(debounce)。可以把应用层或者BSW监控(monitor)某个组件component叫做一个诊断事件(diagnostic event),DEM会给每个诊断事件分配一个独一无二的识别码(EventId),来区分不同的事件。如应用层周期监控(monitor)KL30电电压(component)是否过压叫做一个诊断事件。在这个诊断事件中检测电压是否超过正常值的上限.
2022-03-18 17:23:50
2699
2
原创 【Autosar DEM 一 .初次了解 】
DEM全称diagnostic event manager,主要是用于处理诊断事件(如检测12伏电压是否异常)和存储相关数据(如扩展数据、冻结帧等)。同时也给其他模块通过标准接口提供信息,如DCM可以通过Dem_ReturnGetStatusOfDTCType Dem_DcmGetStatusOfDTC(uint32 DTC,Dem_DTCOriginType DTCOrigin,uint8* DTCStatus)这个标准接口同步或异步的读取到指定的DTC的故障状态。下面将从以下几个方面,感性.
2022-03-18 15:09:56
4984
4
原创 嵌入式程序运行过程了解
reference https://www.cnblogs.com/leon1124/p/14039646.html上电之后(Boot-Load阶段)该做什么1、第一行程序拿到空PCB板之后,硬件工程师首先会测试各主要线路是否通连,各焊点是否有空焊、断接或短路的情况,然后逐个模块焊接上去。之后需要验证系统上电之后,CPU与各组件的供电电压是否正常,供给CPU的震荡电路能否能够正常起振,外部存储器能否正常读写。当把我们的程序用JTAG工具下载到板子上后,在真正调试系统前需要做好以下检查:利用调试工具,
2021-11-05 08:36:37
802
原创 操作系统为什么可以管理所有的应用程序
``操作系统为什么可以管理所有应用程序运行从你开机的那一刻起,你的硬件资源就开始运转了,那么这些资源归谁来管呢?决定的方法其实简单粗暴:哪个程序最先运行就归谁管。就比如一块空白的油田,谁先开发就归谁管。那么哪个程序是第一个运行的呢?BIOS中的固件程序。BIOS中集成了硬件厂商预先刷入的一段小代码,机器开机一启动,这段代码就被立刻执行(这是由硬件控制的),因此在这个阶段,计算机资源被BIOS霸占。然而,BIOS中的程序对于掌管计算机资源并没有太大的兴趣(其实是BIOS存储的程序太小,无力掌管),所以BIO
2021-10-08 20:36:39
739
原创 Java实现动态规划经典例题:求数字最大子序列
算法题动态规划法求数组最大子序列问题描述:给定一个整数序列,a0, a1, a2, …… , an(项可以为负数),求其中最大的子序列和。如果所有整数都是负数,那么最大子序列和为0;例如:{-1、-2、1、6、4、1、-10、100} 其最大子序列和为:102 分别是1、6、4、1、-10、100,也就是上面数组从下标2~下标7int[] nums = {-1,-2,1,6,4,1,-10,100}; int max = nums[0]; int[]
2020-10-13 23:29:43
551
原创 算法题(常用字符串设计的算法)
算法题(常用字符串设计的算法)一.字符串的处理1、统计字符串中出现最多的字符思路一思路二双层循环,标记第一层字符在第二层循环中出现的次数(这个也是最先想到的)用Map集合,首先将字符串拆分为字符数组,然后转存到HashMap集合中,该集合的key为字符串中出现的字符,value对应该字符出现的次数。最后只需要在HashMap集合中找到Value值最大的key即可思路一:解法String a ="bancasddadadddeesf"; char res =
2020-10-13 22:22:36
197
原创 Spring整合Mybatis以及Spring底层的详细讲解(Ioc工程模式,Aop代理模式)
spring框架常用依赖 <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency>
2020-08-14 10:12:42
183
原创 丝滑从原生 java web过度到 spring mvc(日常笔记)
Spring MVCSpring MVC 是目前主流的实现 MVC 设计模式的企业级开发框架,Spring 框架的一个子模块,无需整合,开发起来更加便捷。什么是 MVC 设计模式?将应用程序分为 Controller、Model、View 三层,Controller 接收客户端请求,调用 Model 生成业务数据,传递给 View。Spring MVC 就是对这套流程的封装,屏蔽了很多底层代码,开放出接口,让开发者可以更加轻松、便捷地完成基于 MVC 模式的 Web 开发。Spring MVC 的
2020-08-14 10:08:33
249
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人