- 博客(58)
- 收藏
- 关注
原创 Cortex-R52与TriCore详细对比
Cortex-R52 与 TriCore 1.6.2 代表两种车规实时内核的差异化路径:前者依托 Arm 虚拟化实现混合关键性软件隔离,适用于域控制器与安全岛;后者以 RISC/DSP/实时控制融合为核心,凭借原生 DSP 能力与硬件级中断响应,在动力总成和底盘控制中展现极致确定性。两者均支持 ASIL-D,但安全实现方式不同——R52 强调可配置虚拟化与最小认证范围,TriCore 则依赖芯片级深度集成与量产验证。在性能上,虽主频与 DMIPS 相近,但算法效率差异显著:TriCore 在控制算法中更优,
2026-10-30 18:30:00
337
转载 “bus error at address ... ” 快速定位指南
当TRACE32执行内存访问时,若CPU无法处理该访问,则产生Bus Error,由CPU内部上报而非调试器生成。常见原因包括无效地址、访问权限受限、模式错误或地址未对齐。Bus Error可能以“????????”形式显示,不一定会弹出提示。为定位问题,可使用SYStem.LOG功能:先复现错误状态,再开启日志记录,执行操作后通过SYStem.LOG.List窗口查看具体导致错误的访问信息,从而精准排查。
2026-09-28 22:34:20
15
原创 UART详解:异步串行通信的基石
接收UART 读取数据帧后,将统计数值为 1 的位,检查总数是偶数还是奇数。但是,如果奇偶校验位为0 ,而总和为奇数,或者奇偶校验位为 1 ,而总和为偶数,则UART 认为数据帧中的位已改变。如果需要可靠传输,通常要在 UART 之上加协议,比如添加帧头、长度、CRC、应答和重传。:检测起始位下降沿后,在起始位中点确认,然后在每个数据位的中点采样。当接收 UART 检测到高到低电压跃迁时,便开始以波特率对应的频率读取数据帧中的位。意思是:波特率 115200,8 位数据,无校验,1 位停止位。
2026-09-25 20:30:00
356
原创 SENT协议解析:低成本高精度传感器通信新标准
SENT(Single Edge Nibble Transmission)是一种低成本、单向、点对点的传感器数据传输协议,遵循SAE J2716标准。其采用单线传输,仅需3根线,支持30kb/s高速率,适用于压力、节气门等高频信号传输。数据以半字节为单位分帧发送,包含校准脉冲、状态位、数据位及4位校验和,支持快速与慢速通道。通过短/增强串行报文格式可实现诊断信息传输,但校验能力有限,适用于容忍低概率故障的系统。
2026-09-20 18:59:35
158
原创 I2C通信协议详解
I2C总线是一种由飞利浦开发的双向串行通信协议,仅需SDA和SCL两根信号线,支持多主多从架构,具有硬件简单、成本低、可扩展性强等优点。其传输速率从标准模式的100 kbit/s到高速模式的3.4 Mbit/s不等,采用“线与”连接实现时钟同步与仲裁,确保多控制器环境下数据传输的可靠性。数据传输以起始条件开始,停止或重复起始条件结束,每个字节后需应答(ACK),且数据在SCL高电平时保持稳定。通过时钟拉伸机制,目标器件可暂停传输以处理内部任务。该协议广泛应用于嵌入式系统中,实现微控制器与外围设备间的高效通信
2026-09-09 21:17:52
351
原创 SPI通信协议最全解析
SPI是Motorola推出的高速全双工同步串行接口,采用主从方式,通过SCLK、CS、MOSI、MISO四线通信。其工作模式由CPOL(时钟极性)和CPHA(时钟相位)组合成四种,常见模式0和3。SPI速率取决于器件支持,时序简单,读写同时完成,应用广泛。
2026-09-03 19:00:00
434
原创 结构体对齐机制
查看GCC默认对齐值# 输出:#define __BIGGEST_ALIGNMENT__ 16结构体对齐的三大原则是内存高效访问的基础首成员零偏移:第一个成员始终从偏移量0开始成员按对齐要求排列:每个成员的起始地址必须是min(自身大小, 编译器默认对齐值)的整数倍整体大小对齐:结构体总大小必须是其内部最大成员对齐要求的整数倍。
2026-08-26 18:00:00
317
原创 Cortex-R52学习:存储系统
摘要: Cortex-R52存储系统面向汽车/工业实时场景,采用多层次架构: 内核私有资源:可选I/D Cache(4-32KB,写直达D-Cache)与TCM(8KB-1MB,确定性访问),支持ECC容错; 总线接口:128bit AXIM(主存)、32bit LLPP(外设)、128bit Flash(只读)及16MB AXIS(跨核TCM访问),分时复用仲裁; 关键机制:MPU权限控制、本地独占监视器(LDREX/STREX)、总线超时检测(AXIM/LLPP/Flash独立配置)、多级ECC防护(自
2026-07-03 18:00:00
349
原创 Lauterbach调试Cortex-R52架构多核芯片问题
摘要:本文描述了使用Lauterbach调试器对一款未获官方支持的Cortex-R52四核芯片进行多核调试时遇到的问题及解决方案。初始脚本直接分配所有内核导致调试端口初始化失败,错误提示从核无法初始化。通过分阶段调试方法:首先仅连接主核进行初始化操作,断开后重新分配所有内核建立SMP连接,最终成功实现多核调试。文章详细解释了分阶段初始化的必要性、具体操作步骤及各指令作用,为调试类似未支持的多核SoC提供了实用方法。
2026-06-24 19:00:00
235
原创 单元测试:局部静态变量处理
本文讨论了在单元测试中如何处理函数内部静态变量的问题。以C语言函数time_cnt为例,其静态变量cnt难以直接初始化测试。提出了两种解决方案:1) 将静态变量改为引用外部全局变量global_cnt,便于测试时赋值;2) 在测试前多次调用函数以改变静态变量状态。两种方法都能有效解决静态变量在单元测试中的初始化难题,但第一种更直接可控,第二种则无需修改原代码。这为测试包含静态变量的函数提供了实用思路。
2026-06-23 07:00:00
274
原创 Cortex-R52学习:通用中断控制器
本文介绍了Cortex-R52处理器的通用中断控制器(GIC)架构与功能。GIC由分配器(Distributor)和CPU接口组成,支持私有外设中断(PPIs)、共享外设中断(SPIs)和软件生成中断(SGIs)。分配器通过优先级仲裁确定最高优先级挂起中断(HPPI),并将其路由至内核或可选导出接口。中断分为0组(FIQ触发)和1组(IRQ触发),支持虚拟化功能。文中还详细说明了GIC内存映射布局、中断源分类(包括PPI/SPI/SGI的配置特性)以及导出接口的扩展应用。关键点包括中断优先级处理规则(相同优
2026-06-08 18:00:00
373
原创 Cortex-R52学习:通用定时器
本文介绍了Cortex-R52处理器的通用定时器功能。主要包括:1)三种定时器类型(EL1物理定时器、EL2物理定时器和虚拟定时器);2)通过系统计数器提供的64位总线CNTVALUEB[63:0]获取计数值,配合CNTCLKEN时钟使能信号实现同步;3)定时器通过PPI中断向核心提供信号;4)详细列出了AArch32架构下的15个通用定时器寄存器,包括计数器频率寄存器(CNTFRQ)、物理计数寄存器(CNTPCT)等,并说明了各寄存器的位宽、复位值等关键信息。这些定时器功能为系统调度和中断处理提供了硬件支
2026-06-05 18:00:00
232
原创 Cortex-R52学习:MPU内存保护机制
本文介绍了Cortex®-R52处理器的内存保护单元(MPU)架构。MPU通过划分内存区域实现访问控制,每个区域可定义基地址、边界地址、访问权限和内存属性。处理器配备两个MPU,分别由EL1和EL2控制,支持虚拟化功能。文章详细说明了区域配置机制、对齐要求、最小区域尺寸以及内存属性设置方法,包括访问权限、可共享性和执行控制位。同时阐述了背景区域的作用场景和不同地址范围的访问规则,包括普通内存和设备内存的处理方式。最后解释了Arm架构中设备内存属性标识nGnRnE的具体含义,为理解MPU的工作原理提供了全面指
2026-06-02 17:30:00
358
原创 Cortex-R52学习:PMSAv8-32内存保护机制详解
Arm的PMSAv8-32是基于内存保护单元(MPU)的受保护内存系统架构,采用虚拟地址与物理地址的平面映射。它仅支持统一内存保护方案,不兼容早期PMSA版本。PMSAv8-32通过保护区域(最小64字节,最大4GB)实现内存保护,每个区域由基址和边界地址寄存器定义,具有独立属性和权限。 PMSAv8-32包含两类MPU:EL1 MPU(管理EL1/EL0访问)和EL2 MPU(管理EL2访问,并可在虚拟化场景下覆盖EL1 MPU设置)。地址转换机制分为单阶段(EL2)和两阶段(EL1&0),后者支持虚拟机
2026-05-31 04:30:00
365
原创 Cortex-R52学习:初始化全攻略
本文介绍了Cortex-R52处理器的初始化配置要点:1)寄存器初始化机制,强调多数架构寄存器复位值为未知,需手动初始化;2)关键功能单元(MPU、FPU、缓存)的启用方法;3)TCM存储器的预加载技术,包括ECC处理注意事项;4)从EL2异常等级切换到EL1的详细步骤。文章提供了处理器启动时的完整配置流程,涵盖寄存器设置、功能单元启用、存储器初始化和异常等级切换等关键操作指南。
2026-05-29 01:00:00
426
原创 Cortex-R52学习:电源管理全解析
摘要 本文详细介绍了Arm Cortex-R52处理器的电源管理机制,主要包括时钟门控和电源门控两大技术。在时钟门控方面,处理器支持本地/区域时钟门控自动关闭空闲逻辑的时钟,并通过WFI/WFE指令实现架构级时钟门控,使核心进入低功耗待机状态。电源门控则允许对单个核心独立下电,通过低功耗接口(LPI)与电源控制器协同工作,提供核心状态提示和下电/上电流程控制。文中还具体说明了WFI/WFE状态的进入条件、唤醒机制,以及完整的核心下电和上电操作序列,这些特性共同实现了处理器动态和静态功耗的有效降低。
2026-05-26 07:00:00
417
原创 Cortex-R52学习:时钟和复位
摘要:Cortex-R52处理器采用单一时钟驱动所有核心和逻辑单元,支持分频运行。系统提供多种复位信号,包括冷复位、热复位、调试复位等,需在核心静默状态下操作。复位信号解除时需同步处理,并遵循特定序列。处理器退出复位时会自动初始化缓存和ECC校验值。此外,每个核心可输出复位请求信号,用于触发热复位或调试复位。关键信号包括时钟使能、复位输入及复位相关控制信号,确保系统稳定运行和故障恢复能力。
2026-05-21 18:01:01
395
原创 Cortex-R52学习:处理器概览
Cortex-R52 处理器是一种中性能、顺序执行、超标量处理器,主要应用于汽车和工业领域,也适用于通信和存储等多个嵌入式领域。Cortex-R52 处理器有 1-4 个核,每个核均实现一个符合 Armv8-R AArch32 标准的处理单元(PE:Processing Element)。在 Cortex-R52 的语境下,PE 和核是同等的概念。通过虚拟化技术,多个受保护内存系统架构(PMSA)上下文可在同一核心上执行。
2026-05-18 18:04:22
516
原创 Arm架构解析:Cortex-R系列架构概览
本文介绍了Armv8-R AArch32架构的特性与应用。该架构支持32位处理,具有虚拟化功能,采用A32/T32指令集,配备一级和二级MPU内存保护机制。文章对比了A、R、M三大系列处理器的特点,详细阐述了R系列的编程模型、虚拟化技术实现方式以及MPU工作原理。重点分析了Cortex-R52处理器的技术特性,包括8级流水线、多核配置、双核锁步、缓存/TCM设计、中断控制等。最后总结了Armv8架构在指令集、微架构、安全机制等方面的核心特征,展示了其在实时嵌入式系统中的技术优势。
2026-05-13 18:25:07
458
原创 Markdown数学公式语法速查手册
本文系统整理了LaTeX数学公式的语法规则,包含公式类型、上下标、汉字字体、方程式、占位符、定界符、四则运算和高级运算等8大类。详细列出了各类公式的语法符号、示例及显示效果,如上标用^、下标用_、分式用\frac、求和用\sum等,并展示了不同括号、空格和组合符号的使用方法。该指南为数学公式排版提供了全面的语法参考,适合需要精确表达数学内容的文档编写。
2026-05-09 18:20:50
444
原创 VSCode设置显示空白字符
VSCode显示空白字符简明指南:通过"设置"搜索"render whitespace",可选"boundary"(推荐)或"all"模式查看空格(圆点)和制表符(箭头)。也可在settings.json中添加"editor.renderWhitespace":"boundary"配置。该功能便于检查代码格式问题,区分真实空格与缩进。
2026-05-04 08:15:00
250
原创 CAN通信位时序:同步传输的核心机制
本文深入解析CAN通信中的位时序机制,详细介绍了其四个组成部分(同步段、传播段、相位缓冲段1/2)的作用及配置原则。重点阐述了波特率、采样点、同步跳转宽度等关键参数的计算方法,以及硬件同步和再同步机制的工作原理。通过实例说明如何配置位时序参数以适应不同应用场景(如汽车电子、工业控制),并强调了合理时序设计对通信可靠性和抗干扰能力的重要性。文章为CAN总线在分布式系统中的精确同步提供了理论指导和实践参考。
2026-04-20 01:00:00
840
原创 VS Code一站式Markdown写作全指南:从高效创作、版本管理到多格式导出
本文介绍了如何在VS Code中搭建Markdown写作全流程工作环境,涵盖核心插件配置、Git版本管理和多格式文档转换。主要内容包括:1)安装VS Code、Git和Pandoc的基础环境;2)配置Markdown All in One、Paste Image和VS Code Pandoc三大核心插件提升写作效率;3)使用Git进行文档版本控制,包括仓库初始化、日常提交和远程备份;4)通过Pandoc实现Markdown到Word/PDF等格式的一键转换。这套方案可帮助用户实现从写作、版本管理到格式输出的
2026-03-25 09:00:00
704
原创 VSCode乱码解决方案
VSCode乱码问题解决方案:1)统一文件编码,通过"Reopen with Encoding"或修改settings.json设置UTF-8;2)修复终端乱码,执行chcp 65001或配置终端参数;3)设置环境变量和字体;4)调整系统区域设置。建议从终端编码调整开始尝试,逐步排查。注意Code Runner插件和老旧GBK项目的特殊配置需求。
2026-03-16 23:48:18
711
原创 Git使用:常用操作对应指令
本文总结了Git常用操作命令,包括远程仓库管理(新建/删除/查看URL)、分支操作(本地/远程分支的创建/删除/切换/重命名/关联)、以及撤回暂存区commit等。涵盖git remote、git branch、git checkout等核心命令的多种用法,提供标准命令和简写形式,是Git日常使用的实用参考指南。
2026-02-24 08:36:21
155
原创 Git使用:Git使用问题及解决方法总结
本文总结了Git使用中的常见问题及解决方案:1)git clone后本地无代码,需手动创建分支;2)合并冲突时可通过git reset放弃修改或git stash暂存更改;3)git pull报错需建立分支跟踪关系;4)Windows中文乱码可通过配置编码解决。文中提供了详细命令及注意事项,帮助开发者快速解决Git操作中的典型问题。
2026-02-16 00:30:00
725
原创 VSCode中查找代码中使用的中文字符
代码中文注释乱码问题分析与解决方案 摘要:开发项目中常出现SVN/git获取的代码中文注释乱码问题,主要源于编码格式不统一和缺乏代码规范。本文提出使用VSCode正则表达式快速定位中文字符的解决方案,包括:1)使用[\u4e00-\u9fa5]等正则表达式匹配中文;2)通过全局搜索(Ctrl+Shift+F)或当前文件搜索(Ctrl+F)实现快速定位;3)提供文件类型过滤、高级替换等实用技巧。同时建议从根本上规范开发流程,统一使用UTF-8编码并推荐采用英文注释,避免编码问题。文中还包含处理乱码显示的终端配
2026-01-30 18:15:05
911
原创 队列原理与实现全解析
队列是一种遵循先进先出(FIFO)原则的线性数据结构,主要操作包括入队(Enqueue)和出队(Dequeue)。队列的实现方式分为顺序存储(数组)和链式存储(链表),其中顺序队列存在"假溢出"问题,可通过循环队列优化。循环队列通过三种方式区分空满状态:1)增加计数器;2)牺牲一个存储单元(常用);3)设置状态标志。文章详细介绍了循环队列的基本操作实现,包括初始化、判空、判满、入队、出队等核心功能,并提供了相应的C语言代码示例。这种数据结构广泛应用于任务调度、缓冲处理等场景。
2026-01-22 19:24:30
1009
原创 Git使用:rebase用法
Git Rebase(变基)是一种重写提交历史的命令,可将当前分支的提交移动到目标分支的最新提交后,形成线性历史。与Merge不同,Rebase会创建新提交而非合并提交,适合整理本地提交历史。主要用法包括基础变基、交互式变基(可编辑/合并提交)和冲突处理。使用时需注意:仅对未推送的本地分支变基,避免重写公共分支历史,团队协作需达成共识。最佳实践是个人分支使用Rebase保持整洁,主分支使用Merge保留完整历史。Rebase虽能简化历史,但需谨慎操作以防协作问题。
2026-01-12 18:20:59
1310
原创 TLE9180短路自检全解析:自检流程、关键参数与误区
本文总结了门驱动IC短路检测功能的关键要点: 术语翻译:规范了三种短路检测模式的官方译名 检测流程:详细解析了高边/低边自检及Normal模式的检测流程图 关键参数:重点说明了死区时间、消隐时间和滤波时间对检测的影响 易错点: ENA复位仅清除故障寄存器,需配合SPI读取操作 自检期间监控功能失效,必须严格遵循模式切换流程 复位方式:对比了ENA复位与INH_N复位的区别 文中通过时序图分析了永久性短路故障的处理过程,并强调参数配置需满足tdead > tblank + tfilter的条件。这些要点
2025-12-31 17:32:02
1118
转载 汽车功能安全ASIL等级
摘要:ASIL(汽车安全完整性等级)并非代表系统安全性,而是评估汽车系统潜在风险等级。通过严重度(S)、暴露度(E)和可控性(C)三个维度进行评分,分为A-D四个等级,D级风险最高。ASIL等级越高,表明需要更多安全措施来降低风险,而非系统更安全。以自动紧急制动系统为例,非预期制动危害被评定为ASILB,对应需实现"避免非预期制动"的安全目标。正确理解ASIL有助于合理分配安全资源,将重点放在高风险系统上,实现更有效的安全保障。
2025-12-31 16:20:15
279
原创 Pandoc转换Word文档:使用Lua过滤器统一调整Pandoc文档中的图片和表格格式
本文介绍了如何使用Pandoc的Lua过滤器统一调整Markdown转Word文档中的图片和表格样式。通过操作Pandoc的AST抽象语法树,可以精确控制元素格式:图片可设置宽度、居中对齐和边框样式;表格可定义边框、宽度、表头背景色和交替行颜色。文章提供了基础到高级的代码示例,并说明如何通过命令行应用这些过滤器,实现自动化格式调整。这种方法比手动修改更高效,特别适合批量处理文档转换任务。
2025-12-24 18:31:13
1191
原创 Lauterbach使用(二):使用BMC测量运行时间及模块负载率
本文介绍了Lauterbach Trace32中BMC(BenchMark Counter)模块的核心功能与应用。BMC通过硬件计数器实现高精度、低干扰的性能测量,特别适用于嵌入式系统调试。重点讲解了如何利用Alpha/Beta断点机制精准测量程序运行时间,详细展示了图形化和指令操作两种实现方式。同时阐述了模块负载率的测量原理与计算公式,为性能优化提供关键数据支撑。文章还对比了BMC断点与普通断点的区别,强调其不暂停CPU运行、低干扰的特性优势。通过具体示例和配置步骤,帮助开发者快速掌握这一实用工具的基本应
2025-12-12 18:35:45
1502
原创 WPS宏使用:一键批量调整图片与表格格式
摘要:本文介绍利用WPS宏功能批量调整Markdown转换文档中的表格和图片格式。宏通过VBA代码实现自动化操作,可统一设置图片尺寸(含嵌入式与浮动式)、表格样式(字体、边框、对齐等),显著提升效率并保证格式一致性。文章详细提供了图片调整、表格格式化的具体宏代码,并说明宏的创建运行方法及安全注意事项,建议先备份测试再正式使用。该方法可避免手动调整的低效问题,适合标准化文档制作需求。
2025-12-04 19:00:00
1853
原创 Git使用:gitignore用法详解
摘要: .gitignore文件是Git版本控制中用于排除特定文件或目录的配置文件,通过定义匹配规则,避免将无关文件(如IDE配置、编译输出等)纳入版本管理。其语法支持通配符、目录递归匹配和例外规则,可通过本地或全局配置实现。最佳实践包括使用GitHub提供的模板库、处理已跟踪文件(需git rm --cached),并通过git check-ignore验证规则有效性。合理配置.gitignore能提升仓库整洁度,减少冲突,提高协作效率。
2025-11-26 00:15:07
858
原创 Mermaid流程图高效转换为图片方案
本文探讨了在不同环境下将Mermaid流程图转换为图片格式的解决方案。针对三种不同环境:正常联网环境可直接调用API转换;隔离环境可使用mermaid-cli工具批量处理;严格受限的企业环境则通过修改脚本配合VSCode的Mermaid Preview插件实现转换。重点介绍了企业环境下的操作步骤:1)调用本地大模型API生成流程图;2)修改脚本单独保存每个函数的Mermaid文件;3)使用VSCode插件预览并导出图片。这套方案有效解决了严格限制环境下的流程图转换问题,保持了自动化生成流程图的实用价值。(1
2025-11-13 19:28:53
9574
原创 使用Python和DeepSeek API一键快速生成代码Mermaid流程图
本文介绍了一种自动化生成代码流程图的解决方案,通过Python+DeepSeek API+Mermaid的技术组合实现。方案核心包括:使用Python调用DeepSeek API分析代码函数,生成Mermaid格式的流程图文本,最终转换为可视化流程图。文章详细说明了环境搭建步骤、DeepSeek API申请方法、核心函数设计以及提示词优化要点。该方案将原本需要人工操作的多步流程自动化,提高了软件开发文档的生成效率。完整实现代码已打包提供下载链接。
2025-10-31 18:41:53
1306
原创 C盘深度清理指南
本文介绍了Windows系统C盘清理的通用方法和程序员专用技巧。通用方法包括使用磁盘清理工具、存储感知功能和手动删除临时文件。针对程序员,详细讲解了VS Code相关缓存清理:workspaceStorage、Cache/CachedData文件夹的作用与安全清理方式,以及C/C++扩展的ipch缓存管理方案。还提供了禁用系统休眠功能释放空间的完整步骤,包括命令操作、影响分析和适用场景建议。通过选择性清理缓存和合理配置路径,可在不影响使用体验的前提下有效释放C盘空间。
2025-10-15 18:58:47
1594
原创 Markdown转换为Word:Pandoc模板使用指南
本文深入讲解如何通过Pandoc工具将Markdown文档转换为格式规范的Word文档。文章首先介绍了三种基本转换命令:默认转换、模板导出和自定义模板转换。随后详细解析了标题、正文、列表、表格、图片、公式和代码块等核心语法的正确写法与常见错误,特别强调空行分隔、缩进规则和路径正确性等关键细节。最后提供了避免格式错误的实用技巧,包括合理使用空行、转义特殊字符和谨慎使用HTML标签等建议,帮助用户获得符合预期的Word文档输出。
2025-09-30 17:15:18
2597
原创 一文丝滑使用Markdown:从写作、绘图到转换为Word与PPT
默认模板可能不符合你公司的规范,这时可以自定义参考文档(导出默认模板修改模板用 Microsoft Word 打开。进入“设计”->“样式”面板。修改样式为期望的样式,如“标题 1”“标题 2”“正文”等。你可以设置中文字体、西文字体、大小、间距等。修改完成后,直接保存并关闭文件。使用自定义模板生成 Word此时生成的将完全遵循你在中定义的样式规范,专业又美观。也可以使用bat脚本,一键转换。以下脚本存为bat文件后,可以将当前文件夹中的markdown文档一键转换为docx。
2025-08-26 15:16:47
2955
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅