自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

千月星跡

アイをも求めて彷徨っている孤独なヒーロー

  • 博客(1169)
  • 收藏
  • 关注

原创 【软考系统架构设计师】知识点必知必会系列汇总

【软考系统架构设计师】知识点必知必会系列汇总

2021-12-31 06:00:00 2628 1

原创 【软考系统架构设计师】复盘架构设计师真题知识点汇总

【软考系统架构设计师】复盘架构设计师真题知识点汇总

2021-12-30 08:30:00 910

原创 【软考系统架构设计师】章节习题汇总系列

【软考系统架构设计师】章节习题汇总系列

2021-12-30 07:00:00 3568

原创 【软考系统架构设计师】系统架构设计师历年真题题目书

【软考系统架构设计师】系统架构设计师历年真题题目书

2021-12-29 20:13:35 6213 14

原创 【系统分析师之路】系统分析师历年真题大汇总

【系统分析师之路】系统分析师历年试题大汇总

2020-12-28 13:08:53 15127 20

原创 【车载开发系列】UDS诊断当中的NRC

当服务端收到诊断请求时,如果能执行则回复肯定响应,不能执行则回复否定响应;也有不给出响应的情况,就是抑制正响应(Suppress PositiveResponseMessageIndicationBit,简写为SPRMIB),通常来说,如果这个bit被置1,则ECU不会给出正响应(positive response)。11(Service not supported)服务不支持12(Subfunction not supported)不支持子服务。

2024-04-13 16:25:41 840

原创 嵌入式C语言--GPT通用定时器

GPT根据计时模式可以分为Continuous及One-Shot模式,其中Continuous在开始计时达到设定时间后会自动开始下一轮计时,但对于One-Shot模式则需要调用API Gpt_Startimer()重新开始定时。GPT即General Purpose Timer(s) ,通用定时器模块,该模块通过使用硬件定时器通道为操作系统或其他需要定时器功能的模块提供定时功能,通常可提供从微秒级到毫秒级的定时时钟功能。4)当不需要再继续定时调用Gpt_Stoptimer(),关闭定时器,停止计时。

2024-03-31 16:20:31 1067

原创 嵌入式C语言--中断服务程序

2类中断优先级比1类低。所谓中断是指当CPU正在处理某件事情的时候,外部发生的某一事件(如一个电平的变化,一个脉冲的发生或定时器计数溢出等)请求CPU迅速去处理,于是CPU暂时中止当前的工作,转去处理所发生的事件。ISR完成后程序返回被打断处继续执行,即中断对任务管理没有影响,这里的没有影响指的是不会引起新的任务调度,比如,任务A被一类中断打断后,一类中断运行完后从任务A被打断的位置继续执行,不会去执行任务B。存放在内存中的一个数组,内容是中断服务函数的地址们(数组下标与中断优先级对应,也称中断向量)。

2024-03-16 11:36:42 884

原创 嵌入式C语言--#pragma指令

pragma用于指示编译器完成一些特定的动作#pragma所定义的很多指示字是编译器特有的(后面的参数决定)#pragma在不同的编译器间是不可移植的预处理器将忽略它不认识的#pragma指令不同编译器可能以不同的方式解释同一条 #pragma指令。

2024-01-28 17:50:50 963

原创 嵌入式C语言--pragma ghs section的运用

具体来说,VC链接器在链接的过程中,会将各编译单元中的section按照name的从小到大顺序排列,name的比较规则遵循strcmp的字符串比较逻辑。gcc/g++编译器会自动生成分区的起始和结束边界,只需要extern引入边界变量即可,具体生成的边界变量名可能因编译器版本的区别有差异,需要自行通过链接器查看确认。但是,可通过使用 #pragma ghs section,使链接器能够删除本来可能会保留的函数或变量,因为它与使用的函数或变量位于相同的节中。此编译指示指定要用于后续函数或对象的节名称。

2024-01-28 17:17:12 1105

原创 【车载开发系列】Autosar的安全访问SecurityAccess知识补充

DCM模块的每个诊断服务可以配置安全访问等级在任何状态下,只有一个安全级别处于活动(active)状态,也就是只有一个安全级别能够被激活,其他安全等级处在锁定的状态下。安全级别(security level)编号是随意的,不同级别之间不意味着有任何关系,一般Level1是最基本的安全等级,必须要存在。在默认会话(Default Session) 中不允许解锁安全等级(Security level)。要获得一些权限,客户端必须首先切换到启用SecurityAccess服务的非默认会话。

2024-01-27 18:01:02 944

原创 【车载开发系列】再看AutoSar中的DCM诊断管理模块

DCM模块主要用来处理外部测试人员或机载测试系统的诊断请求并将诊断状态信息传输回到诊断工具,如通过读DID获取车辆相关信息,通过读取故障码DTC辅助维修人员进行故障定位等。DCM实现了OSI七层模型的应用层(还有会话层),其在Autosar架构中位于BSW,通过PduR一组通用的接口进行传输,但并不感知底层网络具体的实现类型。也就是对底层通讯协议没有要求,可以是CAN、Lin或以太网(DoIP)等。

2024-01-27 16:55:42 1035

原创 【车载开发系列】AutoSar当中的诊断会话控制

DiagnosticSessionControl,SID是0X10,主要功能是控制服务端的会话模式切换。一般默认上电后是在默认会话模式下,当某一个服务端正在运行时,只会出现一个会话模式,不会同时存在两个会话模式。

2024-01-22 22:45:54 1000

原创 【车载开发系列】Autosar中的DSL模块(Vector Configurator Pro实现)

DcmDslProtocol是协议配置容器,它是DSL子模块当中的一个配置容器。它由一个或多个DcmDslProtocolRow所组成。DcmDslProtocolRow也是一个容器,可以用来配置支持的协议层。它是在DCM中DSL模块当中的一个子模块。这个容器包含一个特定协议的通信通道配置。注意,它允许与多个Tester通信,因此可以为一个协议配置多个连接,可以有物理寻址也可以有功能寻址。Dcm与PDU进行连接的时候,会使用以下的配置项。这个容器包含诊断连接中接收通道的配置参数。

2024-01-21 17:51:33 930

原创 嵌入式C语言--LD文件的概念

LD组合了许多对象文件和归档文件,重新定位它们的数据并绑定符号引用。通常编译程序的最后一步是运行LD。LD(Linker)文件是一个负责将目标文件和库文件链接成可执行文件或共享库的程序。每个可加载或可分配的输出section都有两个地址。第一个是VMA,即虚拟内存地址。这是运行输出文件时该节所拥有的地址。第二个是LMA,即加载内存地址。在大多数情况下,这两个地址将是相同的。

2024-01-20 16:30:12 745

原创 【车载开发系列】Autosar DCM诊断管理模块

诊断通信管理(DCM)主要包括三个子模块:诊断服务层(Diagnostic Service Layer,DSL)、诊断服务调度(Diagnostic Service Dispatcher, DSD)、诊断服务处理(Diagnostic Service Processing, DSP)。DCM模块相关的标准主要包括三部分:ISO 14229(UDS,DCM遵循的主要标准)、ISO 15031(ISO 15031 (1-7))及SAEJ1939(OBD,与OBD相关的$01 -$0A服务)。

2024-01-19 22:27:16 702

原创 【车载开发系列】AutoSar当中的DcmDspSecurity容器

DLS子模块应该保存当前激活的安全等级状态。DLS模块提供两个接口用来设置和获取当前安全等级:获取当前激活的安全等级:Dcm_GetSecurityLevel()设置新的安全等级:DslInternal_SetSecurityLevel()SecurityLevel安全级别定义一般可以有以下这四种。

2024-01-14 16:54:24 933

原创 嵌入式C语言--ROMRAM相关概念(RO-data、RW-data、ZI-data的解释)

一个程序包含三个部分,RO段,RW段和ZI段。RO是程序中的指令和常量RW是程序中的已初始化变量ZI是程序中的未初始化的变量映像文件包含了RO和RW数据,但不包含ZI数据。是因为ZI数据都是0,没必要包含,只要程序运行之前将ZI数据所在的区域一律清零即可。包含进去反而浪费存储空间。只有单片机的实际Flash容量大于等于程序编译后的Total ROM Size值,且单片机的实际RAM容量大于等于编译后的Total RW Size值,程序才能在单片机中正常运行。

2024-01-06 23:04:25 1207

原创 嵌入式C语言--WatchDog最全概念

Watchdog,又称watchdog timer,它是计算机可靠性(dependability)领域中一个极为简单同时非常有效的检测(detection)工具。WatchDog硬件的逻辑就是,其硬件上有个记录超时功能,然后要求用户需要每隔一段时间(此时间可以根据自己需求而配置)去对其进行一定操作,比如往里面写一些固定的值,俗称“喂狗”,发现超时了,即过了这么长时间还不给狗喂食,那么偶就认为你系统是死机了,出问题了,狗狗就帮你重启系统。

2024-01-04 19:00:07 517

原创 Big-endian与Little-endian详尽说明

字节序,也就是字节的顺序,指的是多字节的数据在内存中的存放顺序。在几乎所有的机器上,多字节对象都被存储为连续的字节序列。不同的CPU有不同的字节序类型,最常见的有两种:Little-Endian:将低序字节存储在起始地址(低位编址),也就是小端存储模式。Big-Endian:将高序字节存储在起始地址(高位编址),也就是下面说的大端存储模式。数据的低位保存在内存中的高地址中,数据的高位保存在内存中的低地址中;

2023-12-29 08:02:59 1097

原创 C语言中的#pragma预处理指令

pragma用于指示编译器完成一些特定的动作#pragma所定义的很多指示字是编译器特有的(后面的参数决定)#pragma在不同的编译器间是不可移植的预处理器将忽略它不认识的#pragma指令不同编译器可能以不同的方式解释同一条 #pragma指令。

2023-12-20 08:29:14 1039

原创 【车载开发系列】DRBFM模型介绍

FMEA与DRBFM最大的不同在于DRBFM是早期的对设计的评估,找出设计没有能够充分领悟到的问题;而FMEA分析侧重的不光是对设计的评估,还有生产制造阶段,同时目的也是充分挖掘出问题点。DRBFM是一种将失效模式及影响分析(FMEA)与设计评审相结合的方法,是由日本九州大学吉村达彦先生提出的丰田问题预防哲学理念的一部分。DRBFM是用于发现问题萌芽并进行纠正预防的设计评审方法。

2023-12-11 08:27:35 2007

原创 嵌入式C语言的固定地址操作

(void))0x8000的意思是把0x8000转成函数指针,那么程序可以调准到0x8000。3) p指向a,对p赋值就是对a里面的值赋值,也就是对a里面的指针形式的0xf0100000赋值,也就是对0xf0100000地址出赋值。在进行嵌入式开发的时候,由于需要和底层的存储设备比如DDR,flash,sd卡等打交道,所以会经常遇到需要读写特定内存地址的问题。如果要让程序跳转到指定绝对地址去执行,可以通过将绝对地址强转为函数指针的方法。)(void)是函数指针,((void (

2023-12-11 08:11:10 500

原创 【车载开发系列】Visio工具使用小技巧

word文档中的visio对象,右键菜单里面有个”visio对象”的选项,然后子菜单里面有个”打开”的选项,就可以在visio中打开编辑了,word中自带的也有visio编辑器,但是是个mini版,太小了,而且很多功能不具备,如果对所嵌入的visio对象进行大改的话,还是直接打开visio编辑器进行修改比较合适。

2023-12-09 20:05:47 435

原创 嵌入式C语言中的关键字volatile

由于内存访问速度远不及CPU处理速度,为提高机器整体性能,在硬件上引入硬件高速缓存Cache,加速对内存的访问。另外在现代CPU中指令的执行并不一定严格按照顺序执行,没有相关性的指令可以乱序执行,以充分利用CPU的指令流水线,提高执行速度。以上是硬件级别的优化。再看软件一级的优化:一种是在编写代码时由程序员优化,另一种是由编译器进行优化。编译器优化常用的方法有:将内存变量缓存到寄存器;调整指令顺序充分利用CPU指令流水线,常见的是重新排序读写指令。

2023-12-06 08:09:22 1111

原创 【车载开发系列】Flash支持的安全功能

FLASH存储器的英文名称是Flash Memory,一般简称为Flash,它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还不会断电丢失数据同时可以快速读取数据(NVRAM 的优势)在写入OPBT之前,可以先读取下硬件目前的OPBT,如果新写入的有问题,还可以重新写入原来的,在将程序写入闪存之前,一定要设置与下面列出的可选函数相对应的选项字节区域。在编程一个新的引导程序而保留现有的引导程序之后,更改重置向量是一种安全的方法,可以将其更改到包含新的引导程序的区域。

2023-12-03 15:50:47 1385

原创 【车载开发系列】FlashMemory基本概念

闪速存储器还兼有ROM和RAM两者的性能及高密度,因而是目前为数不多的既具备大容量、高速度,又具有非易失性、可在线擦写特性的存储器,闪速存储器市场发展十分迅速,其规模接近DRAM市场的1/4,与DRAM和SRAM一起成为存储器市场的三大产品。另外一种是NAND闪存,这种闪存也称为固态硬盘,它内部数据以块为单位进行存储,地址线和数据线共用,使用控制信号选择。对Code Flash进行读写操作时候,特别要注意写的地址,因为如果写的不对,会覆盖到代码区,造成运行错误,同时对于擦除,是一块的数据都会直接擦除掉。

2023-12-03 15:29:01 967

原创 【车载开发系列】AutoSar中的CANTP

CANTP是CAN Transport Layer的简称。是基础软件通讯模块中最重要的模块之一。CanTp是AUTOSAR通信栈中负责网络解析的模块,主要负责接收CanIf层传输的N-PDU数据解析成I-PDU数据,并发送给PDUR模块。AUTOSAR CAN传输层规范是基于汽车领域最常用的国际标准ISO15765。ISO15765描述了两个适用的CAN传输层规范:OEM增强型诊断:采用ISO 15765-2;OBD诊断:采用ISO15765-4。1)分割发送方向上的数据。

2023-11-12 14:45:13 368

原创 【车载开发系列】 ECU的在线刷写流程

OTA是“over-the-air”的缩写,是一种无线技术,用于在不需要接触设备的情况下向移动设备或物联网设备提供更新、补丁或新版本的软件。OTA更新通常通过无线网络(如Wi-Fi或移动数据)进行,这使得设备可以在不需要任何物理连接的情况下获得更新。这种技术在智能手机、智能家居设备和车载系统等设备中得到广泛应用。总结起来就是OTA让BootLoader完成:接收新APP—擦除旧APP—写入新APP—跳转到新APP执行 的这么一系列的过程。

2023-11-11 08:44:21 741

原创 【车载开发系列】IEEE 802.3协议

IEEE中有很多委员会,其中IEEE 802又称为LMSC(LAN/MAN Standards Committee,局域网/城域网标准委员会),它致力于研究局域网和城域网的物理层和MAC层中定义的服务和协议,对应OSI网络参考模型的最低两层(即物理层和数据链路层)。其中,S表示网络的跨距(最长传输距离),0.7C为0.7倍光速(信号传播速率),tphy是发送站物理层时延(由于往返需通过站点两次,所以取其时延的两倍值)。IEEE802.3它是以太网标准,指的就是LAN有线局域网的标准。

2023-11-06 06:26:02 299

原创 【车载开发系列】CRC循环冗余校验码原理

总结起来,CRC就是一个数值,该数值用于检验数据的正确性,CRC校验的原理就是将需要做校验的数据与一个数据模2相除,得到的余数即为校验值。接收数据时,将再次生成校验和,并将其与发送的校验和进行比较。如果两者相等,则没有数据损坏。发送方用发送数据的二进制多项式 t(x) 除以 g(x) ,得到余数 y(x) 作为 CRC 校验码。校验时,以计算的校正结果是否为 0 为据,判断数据帧是否出错。

2023-11-05 12:44:47 207

原创 【车载开发系列】HexView文件合并

如果应用程序和Bootloader分别存储在不同的文件中,那么在刷写/升级过程中就需要分别下载这两个文件,并且还需要确保这两个文件的版本是兼容的,否则可能会导致设备无法正常工作。在刷写/升级过程中,我们只需要下载一个文件,就可以完成整个软件/固件的刷写/升级。另外,在合并的过程中,我们可以使用一些特殊的技术,比如加密、校验和等,来保证软件/固件的安全性。正确的确定Bootloader和应用程序的地址范围是软件/固件设计中非常重要的一部分,它不仅关系到固件的安全性和可靠性,还关系到固件的性能和扩展性。

2023-10-28 13:48:37 668

原创 【系统分析师之路】2023上综合知识历年真题

IMAP 的一个与POP3的区别是: IMAP 它只下载邮件的主题,并不是把所有的邮件内容都下载下来,而是你邮箱当中还保留着邮件的副本,没有把你原邮箱中的邮件删除,你用邮件客户软件阅读邮件时才下载邮件的内容。04.业务流程重组强调以业务流程为改进对象、以(4)为目标、对现有的业务流程进行再造,利用先进的制造技术、信息技术以及现代的管理手段、最大限度地实现技术上的功能集成和管理上的职能重建,以打破传统的职能型组织结构,建立全新的过程型组织结构,从而实现企业经营在成本、质量、服务和速度等方面的突破性的改善。

2023-10-22 12:09:52 800

原创 【车载开发系列】嵌入式开发之中断向量表

如果指令不能识别的话就会产生此中断。

2023-10-11 20:59:10 292

原创 【车载开发系列】S19/HEX/BIN文件解析

Motorola S-record是由Motorola创建的一种文件格式,它以 ASCII十六进制文本形式传送二进制信息。这种文件格式也可以称为SRECORD、SREC、S19、S28、S37。它通常用于对微控制器、EPROM和其他类型的可编程逻辑设备进行编程。S-record格式是在1970年代中期为 Motorola 6800处理器创建的。该处理器和其他嵌入式处理器的软件开发工具将生成S-record格式的可执行代码和数据。

2023-10-05 16:26:34 881

原创 【车载开发系列】Autosar框架中的WatchDog

Watchdog,又称watchdog timer,是计算机可靠性(dependability)领域中一个极为简单同时非常有效的检测(detection)工具。其基本思想是针对被监视的目标设置一个计数器和一个阈值,watchdog会自己增加计数值,并等待被监视的目标周期性地重置计数值。一旦目标发生错误,没来得及重置计数值,watchdog会检测到计数值溢出,并采取恢复措施(通常情况下是重启)。总结一下就是计数——溢出——触发。

2023-09-24 13:18:55 522

原创 【车载开发系列】ECU Application Software程序刷新步骤

一般Flash Driver不会放在ECU内部,担心程序异常跑到Flash Driver位置,将有效的Application擦除,所以,Flash Driver只有在Application程序升级时下载到ECU的RAM区。就好比每个人只有自家的钥匙,自家的钥匙只能打开自家的门,而不能打开别人家的门一样,也就是Key的唯一性。控制车载电子控制单元的测试、检查、监控或诊断等功能的系统,可以专用于特定类型的操作员(例如,专用于车库机械的非车载扫描工具、专用于装配厂的非车载测试工具或车载测试仪)。

2023-09-24 10:34:22 491

原创 【车载开发系列】UDS中Bootloader实现原理

因为因为方法1相对于软件复位,其跳转至应用程序复位启动函数时MCU的硬件环境与直接运行应用程序可能存在差异,而方法2的看门狗复位则属于硬件复位,其会将绝大部分外设(模拟、时钟和外设)电路复位,更接近直接运行应用程序的情况。不同的MCU软件开发IDE编译链接生成的编程文件格式可能不同,但S19、HEX和BIN文件之间是可以相互转化的,所以只需要在bootloader中开一种编程文件的解析程序就可以了,其他的可以使用相应的转换工具(convert tool)在上位机上进行转换。是因为有以下几种情况的发生。

2023-09-24 10:14:51 697

原创 【车载开发系列】AutoSar软件组件接口

Interface在配置工具的语境下包含了输入输出Port,以及两个Port之间的连接关系的一个集合。Ports是SWC和SWC做接口(Interface)通信使用的端口,SWC通过RTE和BSW做接口(Interface)通信使用。当我们定义了Port,并使用Port将两个SWC之间连接起来之后,剩下的工作就是工具将通过RTE层内部实现两个SWC之间的连接。每个PortInterfaceMapping描述了恰好两个PortInterface的PortInterface元素的映射。

2023-09-21 18:33:34 533

原创 【车载开发系列】BootLoader相关概念

ECU经常会用在汽车零部件中,零部件密封性等要求都比较苛刻,并且装车,如果想取下零部件可能需要将车拆解才可以做到,这种行为是不被允许的,成本极高,操作复杂,因此大多主机厂商要求ECU具有升级功能,并且通过多年的积淀制定了行业标准UDS。整车作为一个产品最终到消费者手里,如果客户要更新软件,不可能拆卸硬件去升级,一般去到售后或4s店,利用OBD接口或者OTA云升级APP,而这两种方式均依赖于Bootloader程序,如果Bootloader程序不可用,就会导致ECU不可用。它是用来更新刷写工具的。

2023-09-21 18:16:53 862

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除