- 博客(104)
- 收藏
- 关注
原创 MCU-芯片时钟与总线和定时器关系,举例QSPI
时钟源:时钟源为系统时钟提供原始频率信号,系统时钟则通过(分频、倍频、选择器)成为整个芯片的“主时钟”,驱动 CPU 内核、总线(AHB、APB)及外设的运行。HSI(高速内部时钟):64 MHz,配合PLL1用于系统时钟。HSI48(高速内部时钟):48 MHz,HSI48 是内部高精度时钟源,频率为 48Mhz,配合 CRS 可以直接作为 USB的时钟源使用。HSE(高速外部时钟):4-48 MHz(通常使用25 MHz的外部晶振PLL配置: 通过PLL1可以将时钟频率提升到最高。
2025-03-20 21:02:07
763
原创 AUTOSAR-NvM调用Fee向flash的物理地址写数据的链路逻辑
32 位的虚拟地址【16 位用于块号(Block Number)(标识逻辑块,最多允许 65536 个逻辑块,获取物理基地址)】 + 【16 位用于块地址偏移量(Block Address Offset)(用标识逻辑块内的具体位置,每个逻辑块最大 64KB,基地址 + 偏移量)】其 Virtual Page 的结构包含 Page Header(用于存储页面的元数据,如页面状态和标识)+ Data Area(实际存储数据的区域)Fee的blocknumber是608,size是22byte,
2025-03-10 20:05:04
83
原创 ARM架构-SRAM的深度理解
(如 AXI SRAM),若外设 DMA 直接操作 D1 SRAM,会导致总线带宽被抢占,影响实时任务。D1 Domain:高性能域,直接连接 Cortex-M7 内核,包含 AXI 总线、Flash 和部分 SRAM(ITCM、DTCM、AXI)。D3 Domain:低功耗域,用于低功耗模式下的数据保持,包含 SRAM4 和 Backup SRAM。D2 Domain:外设域,连接大部分外设和 DMA,包含 SRAM1~SRAM3。传感器通过 SPI 的 DMA1 将数据存入 SRAM1(D2 域)。
2025-03-07 13:23:31
447
原创 MCU-缓存Cache与CPU中的主存SRAM
(如 MPU 设置)决定。普通 SRAM(如 AXI SRAM、SRAM1/SRAM2)可能被 D-Cache 缓存,具体取决于 MPU(内存保护单元)的配置。TCM 是紧耦合内存,直接挂载到 CPU 总线,不经过 Cache,访问。Flash、SRAM 或外部存储器 读取的数据。Cache 的缓存范围是全局的,可以覆盖所有可缓存的地址空间(包括内部 SRAM)。是否需要缓存某个内存区域,由内存属性配置。数据缓存(D-Cache)指令缓存(I-Cache):缓存从。Cortex-A7(含MMU)
2025-03-06 17:25:43
367
原创 MCU-SDRAM-W9825G6KH的存储单元
在Cortex-M7中,存储器一共有4GB的地址空间,4GB的地址空间又被划分为8个区域块,每个块有512M的内存。Note:4GB的地址空间为 0x0000 0000 - 0xFFFF FFFF,可寻址的512M的地址空间为 0x0000 0000 - 0x1FFF FFFF,可寻址的地址是指处理器可以直接访问和寻址的存储区域,如flash,SRAM,寄存器。外部External RAM 通常映射到0x6000_0000到0x9FFF_FFFF的外部存储区域。
2025-03-06 12:59:43
572
原创 电脑和树莓派在插入网线的情况下,如何保持wifi上网
Win10设置优先使用无线网络的方法,只需修改网络接口活跃点,WiFi活跃度大于以太网卡活跃度即可。
2025-02-05 15:28:58
211
原创 Ubuntu22.04安装docker desktop遇到的bug
1. 确认已启用KVM虚拟化1. 确认已启用KVM虚拟化如果加载了模块,输出应该如下图。说明 Intel CPU 的 KVM 模块已开启。
2024-12-12 16:13:42
712
原创 TriCore架构-TC397将code从原来在P-Cache地址移到PSPR的地址,CPU的负载率为什么没影响
但是实际情况下,这个是CPU通过LPB (local pflash bank) 直接访问PFlash的性能,PFI 有prefetch buffer,可以预取指,并不是通过Cache访问的。而从下图可以看出来,CPU从PCache & PSPR & DSPR & Dcache取指(instruction fetch),性能是一样的,CPU距离存储空间的距离也是差不多的。私有的:PSPR,DSPR,P-Cache,D-Cache,PF(X),LMU,DLMU,LPB。之间频繁切换,可能会引入额外的延迟。
2024-12-08 10:56:18
585
1
原创 ARM架构-Cache的底层原理
写通法的另一个变种就是写回法,是指处理器在执行写操作时,被写的数据只写入 Cache,不写入主存,仅当需要替换时,才把已经修改的 Cache 块写入主存RAM。嵌入式ARM内核一般采用的都是哈佛结构,哈佛结构中Cache设计采用了指令 Cache(简称 I-Cache)和数据Cache(简称 D-Cache)分开的方式,也就是说运行的时候程序Code存储在flash中,数据Data存储在RAM中,也就是说CPU从flash中取Code指令,之后在到RAM中取数据。
2024-12-06 20:07:10
488
原创 MCU-USB转UART的底层逻辑
当单片机不集成直接 USB 或 OTG 接口时,USB/UART 桥接器是必不可少的工具。它促进了 PC 和单片机之间的通信,尤其是在原生 USB 仍然不是很常见的嵌入式系统中。监视和控制嵌入式外围设备,从而促进嵌入式系统的开发和维护。可以轻松调试单片机,使用终端显示日志和错误消息。编程器或闪存单片机,无需本机 USB 接口。USB/UART 桥接器的好处。
2024-12-04 13:58:14
456
原创 ISO26262-(Timing Monitoring)在多核MCU的TPU上功能安全ASILB与ASILD有什么区别
在多核微控制器(MCU)的时间保护方面,针对功能安全ASIL B与ASILD等级的设计和实施存在显著差异,这些差异主要体现在系统对时间关键性操作的保障程度、故障检测能力、以及系统响应的严格性上。时间关键性:在ASIL B等级,系统设计注重于识别并处理大部分可能影响安全的时间相关故障,但允许在某些情况下未被覆盖的故障存在。一旦检测到时间保护失败,系统将采取极端措施,如立即触发安全动作、系统复位或切换到预先定义的安全状态,以避免任何潜在的不安全状态。全面故障检测:要求近乎完美的故障检测能力,
2024-12-03 15:25:57
389
原创 ISO26262-(Timing Monitoring)基于AUTOSAR OS与TC397实现TPU时间保护
Deadline Supervision:提供监督软件在两个状态之间的转换时间,通过在代码中设置检查点,WdgM定期检查这些点是否被按时到达,防止任务进入无限循环或完全停止执行。规定任务或第二类中断(Cat2 Interrupts)两次激活之间的最小时间间隔,确保任务执行的周期性和间隔的稳定性,防止任务执行过于频繁或不规律。监控任务或中断在获取资源、锁或中断挂起上的时间,确保这些操作不会超出预定的限制。时间保护和监控和以下属性有关:监控任务在特定时间调度,不超过预期执行时间,不独占OS资源。
2024-12-03 14:23:32
94
原创 ISO26262-(Memory Partitioning)在多核MCU的MPU上功能安全ASILB与ASILD有什么区别
在ISO26262中基于AUTOSAR创建每个TASK的时候根据任务的危害分析和风险评估确定对应的ASIL等级,在开发的时候并对ASIL进行适度分解,之后在软件开发中对每个TASK施行不同的软件策略,比如内存分区的复杂度,诊断和错误处理,冗余与容错等软件机制,最终实现各个ASIL Level。ASIL D级别的系统在动态内存分配上可能需要更严格的控制,以避免运行时的内存错误,这可能影响MMU的配置策略,要求实时监控和保护堆和栈的完整性。ASIL B系统在这一点上可能允许更多依赖于软件层面的管理。
2024-11-30 12:06:31
199
原创 ISO26262-(Memory Partitioning)基于TC397的MPU实现内存分区
TC397芯片有5个Core,每个核有18个Data Memory Protection Ranges,10个Code Protection Ranges。
2024-11-29 19:44:56
391
原创 ISO26262-(Memory Partitioning)针对不同SWC和Interface实现功能安全内存分区
内存方面的 FFI - 保护 ASIL-B(较高 ASIL-X)分区的数据免受 QM(较低 ASIL)分区代码执行的影响。时间方面的 FFI - 保护 ASIL-B(较高 ASIL-X)分区执行免受 QM(较低 ASIL)分区执行的影响,(能够检测 ASIL-B 任务的 CP 到期情况,将 ASILB 任务作为高优先级)这应完全从软件架构层面完成。Goal:满足混合 ASIL-B 产品在内存和执行方面的 FFI(Freedom From Interference)
2024-11-28 20:16:19
146
原创 MCU-基于STM32H7XX的Bootloader启动与更新固件逻辑
基于一种安全升级的方式,将两个BANK分别都用于存储APP程序,一个是A面,一个是B面,之后在升级的过程中,可以确保如果升级失败,可以回滚到上一个有效版本,以及升级过程中可以实现网络安全的机制。
2024-11-07 21:05:52
220
原创 ISO26262-E-GAS功能安全软件架构与AURIX TC397 SafeTpack
主要功能是监控系统的运行状态,以确保系统在预定的功能范围内正常工作。TLF35584能够以预定的周期进行喂狗,就是正常状态,否则执行停止喂狗,报告异常。Level2 是功能监控层,用于监控 Level1 功能的运行是否正常。当任意一个核运行异常,比如在执行某个函数的时候发生野指针,State Combiner 的状态为 NOT OK,硬件狗就会复位 MCU。Level1 是功能实现层,完成具体的功能实现,比如对于电机控制器来说,这一层实现了将请求的扭矩转换为电机的扭矩输出。
2024-10-29 16:00:14
1397
原创 ISO26262-通信故障与故障检测和反应在功能安全中的应用
在实施带有紧急运行安全机制的故障处理中,整个流程分成故障检测(Fault detection),故障处理(Fault reaction),措施实施(Emergency operation),进入安全状态(Safe State)4个阶段,故障检测(Fault detection)这部分就是诊断功能。首先这个的message报文周期是20ms或200ms(报文没有问题的时候是周期20ms,当信号有问题,报文要进入fault的周期发送,会变成周期200ms),举例:一般是通信报文传输的问题。
2024-10-28 14:35:24
806
原创 MCU-内部flash模拟成EepRom(重新梳理)
通过fee写数据Data的过程中,数据会mapping一个虚拟地址,这个虚拟地址就是你的身份,在向flash写数据的过程中会写入很多相同虚拟地址的不同数据,在读取或切页的过程中,遍历数据只会认为最下面第一个的虚拟地址所持有的数据是有效数据,其他的都是老数据,可以丢弃。模拟成eeprom的两个eep_page写数据逻辑就是,先在eep_page0写数据,eep_page0写满后,将eep_page0的有效数据copy到eep_page1,之后擦eep_page0;
2024-09-13 14:35:01
325
1
原创 MCU-QSPI读写外部Flash(W25Q256JV)
每到一个新的扇区,就要判断这个扇区里面是否是干净的,不干净就要先去擦Sector,将数据全部擦成 0XFFFFFFFF,之后才可以一个page一个page写数据。需要注意的是,写完的数据就不能更改,如果更改数据,我们需要将所在扇区的存储内容全部读出,然后擦除该扇区,再按照新数据对该扇区进行编程。向flash写数据,是以page为单位写的(不可以随意的写字节),通过QSPI将写的数据写到flash的buffer里,写完后,如果不够一个page, flash会自动填充满一个page,之后写到Sector中。
2024-09-12 18:27:09
379
原创 AUTOSAR-CAN通信的Com层触发I-PDU的逻辑
对于传输模式的选择,可以根据Message定义的周期等待Com_MainFunction发送,也可以是只有数据变更时,等到一个Com_MainFunction就向外发送,数据无变化,不需要向外发送。当I-PDU被填充完整后,判断I-PDU的传输模式,等待Com_MainFunction将I-PDU根据传输方式向底层传输。因为是向外发送,所以Can_MainFunction_Write会读Can驱动寄存器,确认传输是否完成,也就会返回Com_TxConfirmation,可以配置是否需要触发Callout。
2024-08-14 16:14:30
189
原创 ARM架构-MPU对于OS下任务和内存的保护
其实这三种方式没有MPU也可以实现, 只不过归不用MPU的操作归属于 CPU 架构层面,而MPU属于内存层面的控制,进一步对region划分了区域,哪些可以Cache,哪些可以Share,只不过这种操作是基于内存的操作,。更细化权限控制,MSP和PSP 指针是 CPU 架构层面的特权级划分,MPU 机制是基于内存区域的访问控制。内核直接访问芯片内存,如上图,去掉Cache走总线AXI或AHB的链路。如果开启共享(Shareability),等同于关闭Cache。Cortex-A7(含MMU)
2024-07-25 14:17:42
1042
原创 ARM架构-内存与指针和堆栈的关系
栈顶指的是当前栈指针(Stack Pointer, SP)所指向的内存地址。栈底指的是栈的起始地址,也就是栈区域在内存中的最低地址。在一个空栈中,栈顶是没有元素的,通常被定义为 -1 或 NULL。
2024-07-19 16:32:25
809
原创 ARM架构-FreeRTOS中内存地址与flash,SRAM,堆栈关系
在Cortex-M7中,存储器一共有4GB的地址空间,4GB的地址空间又被划分为8个区域块,每个块有512M的内存。Note:4GB的地址空间为 0x0000 0000 - 0xFFFF FFFF,可寻址的512M的地址空间为 0x0000 0000 - 0x1FFF FFFF,可寻址的地址是指处理器可以直接访问和寻址的存储区域,如flash,SRAM,寄存器。
2024-07-16 19:59:39
1281
原创 ARM架构-Cortex M7的存储结构(flash与SRAM)
中断向量表放置在flash的起始地址,privileged functions 特权模式下执行的指令.isr_vector section的目的是把中断向量表放在 0x08000000 这个特定的内存位置,确保中断向量表占用的内存空间大小是 0x298 字节,将所有包含中断向量表的目标文件(*(.isr_vector))链接到这个 section。 *(.text section*)中定义的是中断服务的应用代码FreeRTOS系统调用被放置在起始地址0x08008000的flash地址,也就接着特权指令后的
2024-07-04 19:43:13
1157
原创 AUTOSAR-CAN周期报文仅发出一帧的错误
如果仅仅调用了IrqCan_Init进行了中断初始化,只是代表挂载了中断,中断标志位能够在SRC相关寄存器置位,如果对应中断的SRE没有使能,也不会将中断传递至对应中断服务者,即CPU0,这点特别注意,许多情况下中断没有产生基本上就是这个最为简单的问题。如果出现发送不成功,首先检查CAN驱动接口的返回值是否检查,然后按图索骥便可以找到问题所在,要不怕调试,调试多了自然经验就上去了,下次就无需调试也就知道问题最有可能出在那里了。至此中断函数入口使能完毕,除此之外并没有真正意义上使能了CAN中断,此时。
2024-06-26 13:24:33
313
原创 AUTOSAR-CAN(标准)与J1939报文的区别
PDU格式一共有两种:PDU1和PDU2,当PF的值在0~239(0x00-0xEF),则表明为PDU1格式,若PF的值在240~255(0XF0-0xFF)之间,则标明为PDU2格式;在J1939中, 我们根据PGN来区分不同的报文,J1939-21/73中对不同的PGN做了一系列详细的规定,不同的PGN来表示不同的数据或者功能。J1939报文:J1939是在CAN2.0B(扩展CAN)的基础上,对仲裁场部分的29位ID的重新解释,其它部分完全一样。29位ID分为:3位的优先级、
2024-06-26 10:48:39
962
原创 AUTOSAR-CAN报文的发送类型-OnChange、OnWrite、IfActive、Repetition
CAN报文的发送类型分为基本发送类型和混合发送类型两大类。
2024-06-25 20:40:13
2200
原创 FreeRTOS-中断的嵌套和竞争
在STM32F4 中 NVIC_PRIORITYGROUP_4:优先级分组为 4,意味着抢占优先级和子优先级各占 4 位,即都具有 16 个取值(0 到 15)。这种方式下,可以实现最大的优先级颗粒度划分。抢占优先级(Preemption Priority)就是同一组中断之间的优先级关系,子优先级(Subpriority)也就是在同一抢占优先级组内进一步划分优先级。函数来设置中断的 IRQn 中断号,PreemptPriority 抢占优先级,SubPriority 子优先级,数值越低表示优先级越高。
2024-06-25 18:31:25
205
汽车电子OSEK VDX时间触发操作系统(OSEKtime)规格介绍及实现方法
2025-03-11
OSEK/VDX标准:实时接口语言规范(ORTI)促进车载分布式控制系统开发与调试
2025-03-11
OSEK/VDX 标准中容错通信协议(FTCom)的功能与架构
2025-03-11
汽车电子OSEK/VDX规范绑定配置详解及应用
2025-03-11
汽车电子控制系统OSEK/VDX标准解析及其应用案例
2025-03-11
嵌入式实时操作系统OSEK-VDX OS的架构及任务管理机制解析
2025-03-11
符合OSEK标准的嵌入式操作系统微内核设计:任务调度与上下文切换优化
2025-03-11
汽车安全评估中的电子油门控制系统研究及应用(汽油车)
2025-03-11
汽车发动机管理系统的标准化E-Gas监控概念及其关键技术解析与应用
2025-03-11
汽车诊断与编程中的Bootloader过程详解及应用场景
2025-03-11
汽车电子嵌入式系统中AUTOSAR OS调度表显式同步优化算法及其应用
2025-03-11
AUTOSAR多核操作系统监控与优化:同济大学与维克多汽车技术联合研究成果
2025-03-11
智能网联汽车环境感知系统预期功能安全的乘用车测试与评价方法标准编制说明
2024-12-03
智能网联汽车环境感知系统预期功能安全第1部分:触发条件分析与描述方法
2024-12-03
智能网联汽车高速与城市快速路自动驾驶标准编制说明
2024-12-03
智能网联汽车车载时间敏感网络(TSN)中间件标准编制与应用解析
2024-12-02
车载时间敏感网络中间件技术规范解析
2024-12-02
车载时间敏感网络通讯交换芯片标准编制及产业应用
2024-12-02
车路协同智能路侧决策系统标准及应用编制详解
2024-12-02
车路协同智能路侧决策系统的架构、应用及协同决策机制解析
2024-12-02
车路协同路侧基础设施信息安全通用技术要求编制进展与验证
2024-12-02
车路协同路侧基础设施信息安全通用技术要求
2024-12-02
车路协同系统路侧基础设施总体技术要求编制说明
2024-12-02
车路协同路侧基础设施第1部分:总体技术要求
2024-12-02
汽车智能化发展中基于AI的开放式软件架构研究
2024-10-21
中国汽车基础软件发展现状及关键技术研究报告
2024-10-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人