- 博客(21)
- 资源 (2)
- 收藏
- 关注
原创 Autosar教程-Mcal教程
以我们使用的F1KM-S4(R7F7016533)来说,它的是64 bytes, page是4bytes。Data flash的擦除时间一般都比较长,F1KM-S4(R7F7016533)擦除64 bytes都需要10ms,这会给整个系统造成很大的负担。1)分配一块数倍于数据的存储区域,比如数据大小为8byte, 那系统可以配置一块8N的flash块(sector),比如8*8=64Byte。2)数据的修改先被存放在RAM里面,当需要写flash时,就把RAM的数据再定定入到sector中。
2024-03-15 15:14:57
508
原创 Autosar-诊断配置详解-2
P2StarServerMax与P2Server_max的含义类似,区别在于,P2StarServerMax这个时间参数是在ECU给出NRC 0X78之后生效的,ECU返回NRC 0X78,说明ECU当前处理能量不足,所以需要更长的反应时间,即P2StarServerMax。General的选项最主要是要配置Dcm的Mainfunction的周期,因为有些报文要及时处理,因此最好把周期设置为1ms。因为DBC文件中有Dcm的Pdu,因此工具还自动生成了Dcm模块,只是该模块是空的,需要后续进行配置。
2024-03-01 10:50:40
893
原创 Autosar-诊断配置详解-1
诊断服务处理与特定的服务请求强绑定(不同的诊断请求依赖于不同的一个或几个模块来实现)。带有诊断属性的PDU到达PduR模块后,PduR调用Dcm_StartOfReception,通知Dcm模块接收的数据大小,并提供第一帧或单帧的数据,如果数据规模溢出缓冲区大小,或者请求的服务不可用允许Dcm拒绝接收诊断数据。Dcm和Dem的交互:DEM模块提供了检索与故障内存相关的所有信息的功能,以便Dcm模块能够通过从故障内存中读取数据重新响应测试人员的请求,通俗的讲就是Dcm能够读取Dem记录的DTC信息。
2024-03-01 10:45:50
1162
原创 Autosar-NvM配置详解-1
Fee:Flash的写操作只能是整页进行写,为了给用户层面提供一个类似单字节写操作的动作,Flash通过一些机制来实现这个过程。NvM:NvM主要考虑的是数据的存储,直接与应用层进行交互。它主要针对的对象是数据,关心的是数据的可靠操作,比如使用CRC验证数据是否正确等。MemIf:MemIf是为了解耦NvM层与Fee、Ea层而存在,有了MemIf层的存在,NvM层才能保持独立性。Ea是为了隔离EEPROM驱动与MemIf,保证Memif的独立性。按以下步骤创建Sw Data Def Props:.
2024-02-27 15:21:01
886
原创 Autosar-NvM配置详解-2
定义头文件,其中NVRAM块的所有者声明了永久RAM数据块、ROM数据块(如果配置)和每个配置回调的回调函数原型。定义NVRAM块的块管理类型,有NVM_BLOCK_NATIVE, NVM_BLOCK_REDUNDENT, NVM_BLOCK_DATASHEET.一个特定于块的回调例程的入口地址,如果没有可用的ROM数据来初始化NVRAM块,该回调例程将被调用。3)2为NVRAM块配置的块管理类型NVM_BLOCK_REDUNDANT。2)1为NVRAM块配置的块管理类型NVM_BLOCK_NATIVE。
2024-02-27 15:18:07
965
原创 Autosar-WdgM配置详解-3
AliveSupervision的主要作用是统计一个被监控的函数的运行次数,是否在设定的范围内,如果不在则说明被监控的函数运行异常。在MasterSWC的RE_TestRun这个runnable里会调用两个检测点函数,我们可以在两个检测点函数之间,加入我们所需要监控的代码。WdgM提供一个Global状态的端口,于是SWC可以创建一个端口与WdgM进行连接,这样就可以获取Global的状态。一旦状态被设置为WDGM_GLOBAL_STATUS_STOPPED,则接下来的代码会执行复位操作。
2024-02-23 08:23:58
894
原创 Autosar-WdgM配置详解-2
按以下步骤创建两个RPort: RPort_StartCheckPoint, RPort_EndCheckPoint。MasterSWC的runnable需要周期运行,因此需要给它加一个TimingEvent.WdgM已经提供了deadline的port,接下来就是需要SWC使用WdgM的port。1.5.2创建MasterSWC的Internal Behavior。按下图步骤完成MasterSWC到MCU的Mapping。1.8MasterSWC到MCU的mapping。1.5.4创建Runnable。
2024-02-22 09:10:55
496
原创 Autosar-WdgM配置详解-1
然后SWC在它的runnable中会调用这两个port, 而WdgM则在它的Mainfunction中去判断这两个Port有没有在规定的时候内被调用。超时狗喂狗很简单,即采用Timeout模式计时,在Timeout时间内都可以喂狗,当检测到超过设定的Timeout时间仍未喂狗则会触发进一步安全保护措施。WdgM超时的时间偏差,这里设置为0表示不容忍有偏差,即只要超时了就执行看门狗规定的动作。按下图配置看门狗的超时时间,下图为设置看门狗2^16分频作为其超时时间。1.2创建、配置WdgIf模块。
2024-02-21 18:42:46
753
原创 Autosar-CanNm、Nm配置详解-2
当接收到NM PUD,并且PDU的整车唤醒位为1时(下图中bit4),而且CanNmCarWakeUpRxEnabled为TRUE,而且CanNmCarWakeUpFilterEnabled为FALSE,则Nm_CarWakeUpIndication被调用,然后在Nm_CarWakeUpIndication中再调用用户的CarWakeupCallout函数。CanNm中剩下的就是PDU的配置项,就是要配置TX NM PDU, RX NM PDU, 以及NM PDU中的用户数据部分。这是为特别节点设置的。
2024-02-20 09:20:59
864
原创 Autosar-CanNm、Nm配置详解-1
ComM要实现3种状态,那Can总线也要对应有3种状态:COMM_FULL_COMMUNICATION, COMM_NO_COMMUNICATION,COMM_SILENT_COMMUNICATION。一个系统中可能存在着多种NM设备,比如Can、Lin、Ethnet, ComM模块需要与这些设备进行通信,但是它不能与具体的设备通信,比如它不能直接调用CanNm的API,因为直接调用的话就与CanNm耦合在一起了。NM管理着很多的总线设备,各总线设备使能通信、禁止通信的过程中要与其他总线有个同步的过程。
2024-02-20 09:18:26
823
1
原创 Autosar-Mcal配置详解-MCU
根据手册,PLL0OUT = PLL0CLKIN * Nr / Mr * 1/6 = 80M, 根据这些信息配置PLL0.根据手册,PLL1OUT = PLL1CLKIN * Nr / Mr * 1/6 = 80M, 根据这些信息配置PLL1.TAUJ时钟 = MainOSC / 1 = 24M / 1 = 24M。ADC1时钟 = PLLCLK2 / 1 = 40M / 1 = 40M。ADC时钟 = MainOSC / 2 = 24M / 2 = 12M。CAN时钟 = PLLCLK = 80M。
2024-02-19 12:20:48
503
原创 Autosar-Mcal配置详解-Can
(1)发送节点Node_A比接收节点Node_B的时间慢了,也就是说Node_A当前位的ss段产生的时候,Node_B 当前位的ss段已经在2个Tq之前产生了;(3)这样就会导致接收节点Node_B的下一位能够提前2个Tq,从而Node_B的下一位采样点和Node_A下一位的采样点能够同步。(1)发送节点Node_A当前位的SS段诞生2Tq时长之后,接收节点Node_B的当前位才产生SS段;硬同步发生在报文的SOF位,所有接收节点调整各自当前位的同步段,使其位于发送的SOF位内;
2024-02-19 09:55:05
752
原创 Autosar-Mcal配置详解
解压后双击每个文件进行安装,因文件名太长有可能出现文件路径超过256字节的情况,建议把里面的安装文件放到磁盘的根目录,然后双击安装。外设的配置文件在这个压缩包中:《AUTOSAR_RH850_F1KM_MCAL_Ver42.08.00_SPAL_CAN_LIN_QM_MP_REE.zip》。生成的代码在Output文件夹中,里面是各个外设的子文件夹,每个文件夹又包含:src、include,分别存放了C代码的源文件和头文件。瑞萨的MCAL代码把外设的代码分成两部分,一部分是公共代码,即静态代码;
2024-02-18 14:44:46
652
原创 Autosar-BswM 配置详解
执行完后“BswM_AR_InitBlockTwo”,会切换到“BswM_AR_ReadAllComplete”这个步骤,如果条件满足的话,执行完该步骤的所有动作。2.在Mcu从running的状态切换到休眠和关机的状态时,BswM也需要执行模式的转换,并且最后切换EcuM的状态。BswM根据这个变量的状态,进入不同的状态机,执行不同的动作。上表配置内容的意思是,BswM初始化过程中会先走到“BswM_AR_InitBlockTwo”这个步骤,如果条件满足的话,会执行这个步骤所有的动作。
2024-02-18 10:54:44
830
原创 Autosar-EcuM配置详解
查看ETAS的相关资料,官方是建议在创建OS时创建一个TaskInit任务,然后配置它为自启动,这样的话EcuM_Init函数启动OS后,TaskInit任务就被自动启动了。但是ETAS工具是按Flexible来配置开关、机流程的,因此EcuM只需要在初始化的时候配置Block0和block1就可以了。接下来只能交给BswM来做了,在这里可以看出来了吧,EcuM和BswM要相互配合,MCU程序才能跑起来。以上这两部分初始化是在OS还没有启动前做的初始化动作,那还有一些OS启动后才能做的初始化还未进行。
2024-02-18 10:39:24
758
原创 Autosar-从0到1
RTE的配置赖于上面的所有步骤,因此需要在以上arxml文件导入工程,做好相应配置后,最后再去配置RTE。现在已经可以创建BSW代码了,那还需要创建RTE,OS代码,这两个又还要依赖ECUM和BSWM,因此在那之前还需要导入ECUM和BSWM.创建一个ECU Extract把以上的所有ECU的配置都抽取出来,外部供商有了ECU Extract就可以实现ECU的功能了。上两个步骤我们添加了BSWM和ECUM,因此生成BSW代码需要先把这两个模块先上,按以下步骤包含这两个模块。
2024-02-07 12:22:06
1023
原创 DIY蓝牙键盘(2) - 理解HID报文描述符
1. 前情回顾上篇主要讲了键盘报文的分类与格式,并留下了一个问题:那主机为什么知道我这些报文的格式?那肯定是主机要提前知道我们发的报文的格式,那么问题就变成了:在发送报文前我们要怎么通知主机,让它知道我们报文的格式。这篇将回答这个问题,主机如何知道键盘报文的格式。答案就是键盘将发送HID report descriptor(HID报文描述符)给主机,主机根据HID描述符就知道键盘的报文格式。2. HID 报文描述符简介我们先理解一下逻辑:(1) 键盘通过发送报文描述符给主机,告诉主机它后面发出来的
2021-10-30 16:18:50
4343
5
原创 DIY蓝牙键盘(1) - 理解 键盘报文
DIY蓝牙键盘(1) - 理解键盘报文1. 键盘报文体验一个键盘对于用户的体验是,用户按按键A他能看到字母A会在主机上显示出来。那这是如何实现的?其实很简单,只要键盘发送下面的两个报文给主机,字母A就能在主机上显示出来。(1)表1:字母A按下的报文Byte 0Byte 1Byte 2Byte 3Byte 40x000x040x000x000x00(2)表2:字母A松开的报文Byte 0Byte 1Byte 2Byte 3Byte 4
2021-09-12 15:19:08
1609
2
转载 IDEA的常见设置与优化
显示工具条(1)效果图(2)设置方法标注1:View–>Toolbar标注2:View–>Tool Buttons设置鼠标悬浮提示(1)效果图(2)设置方法File–>settings–>Editor–>General–>勾选Show quick documentation…显示方法分隔符(1)效果图(2)设置方法File–>settings–>Editor–>Appearance–>勾选忽略大小写提示(1
2020-11-30 23:18:14
209
原创 Typora使用: Markdown常用操作
如何使用Typora1. 目录1.1 一级目录使用语法:[#][空格][内容]1.2 二级目录使用语法:[##][空格][内容]1.3 三级目录使用语法:[###][空格][内容]1.3 四级目录使用语法:[####][空格][内容]2. 字体格式2.1 加粗使用语法:[**][内容][**]例如: **粗体**, 粗体2.2 斜体使用语法:[*][内容][*]例如: *斜体*,斜体2.3 下划线使用语法:[<u>][内容][<u>]例如: *
2020-11-30 21:30:42
704
ZigBee简介和学习方法
2015-07-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人