- 博客(117)
- 收藏
- 关注
原创 二十二、RJ45黄绿指示灯闪烁的“底层逻辑”
摘要: RJ45指示灯(黄/绿灯)的闪烁规则无统一标准,但行业普遍默认绿灯常亮表示连接(Link),黄灯闪烁表示数据通信(Activity)。具体实现依赖PHY芯片的硬件设计及软件配置: PHY芯片配置:通过寄存器(如LEDMODE)可定义LED引脚功能(Link/Activity/Speed),部分芯片复用LED引脚选择PHY地址。 协议差异:LWIP等协议可通过MDIO获取Link状态,而EtherCAT等需依赖PHYLink引脚,需硬件设计支持。 设计原则:优先将Link状态接RJ45绿灯,并考虑PH
2025-09-28 22:51:58
1075
原创 嵌入式科普(41)通过对比深刻理解CAN总线协议特性
本文对比分析了嵌入式通信协议的特性,重点解读CAN总线的优势。通过横向对比抗干扰、自动重发、故障隔离等核心机制,指出CAN在可靠性方面全面领先,特别适合汽车和工业控制场景。详细解析了CAN的回环模式、接收滤波器等特征,并介绍了CANFD的兼容性升级。结论强调CAN凭借硬件级错误检测、高实时性等优势在关键领域具有不可替代性,同时展望了工业以太网作为未来发展方向。全文通过结构化对比,帮助读者快速掌握协议选型要点。
2025-09-28 22:50:30
895
原创 嵌入式科普(40)浅谈“功能安全“概念,深悟“功能安全“本质
文章摘要: 功能安全通过规范开发流程与工具,确保产品全生命周期达到安全标准。从日常案例(如连锁面馆的透明厨房、博士后评价体系)可见,简单事务需公开透明,专业领域则依赖权威认证。汽车安全需品牌背书、专业认证(如ISO 26262)而非表面宣传。功能安全本质是建立信任,涉及编译器、芯片等嵌入式技术,军事/航天领域同样适用。权威机构(如TÜV、IAR)的认证是关键保障。 (149字)
2025-09-18 22:58:53
944
原创 二十一、Profidrive非周期数据X-Macros代码分析
本文分析了瑞萨RZ/T2N2 PROFINET SDK中X-Macros技术的应用。通过PROFIdrive非周期数据代码示例,展示了X-Macros的四个核心特征:集中式数据表(.inc文件)、可重定义的宏函数、多次展开机制和关联结构生成。该技术实现了参数定义与操作接口的分离,开发者只需维护参数表并编写回调函数,无需关注底层实现。使用gcc -E预编译可直观查看宏展开效果,验证了X-Macros在简化复杂系统开发中的优势。这种实现方式比经典示例更具工程价值,为嵌入式系统参数管理提供了高效解决方案。
2025-09-18 22:57:42
940
原创 嵌入式科普(39)如何写出没有bug的C代码---MISRA C 175条规则锁死漏洞
本文探讨了MISRA-C标准在保障代码质量和系统安全性的重要性。MISRA-C是一套针对嵌入式系统C语言开发的严格编码规范,旨在提升代码可靠性、可读性、可移植性和安全性。文章以2009年丰田"幽灵刹车"事件为例,说明不规范代码可能导致严重后果,并指出仅靠MISRA-C标准不足以保证系统安全,需要结合功能安全的体系化方法。最后强调,编码规范和安全标准背后都蕴含着生命安全的考量,开发者应从中吸取经验,形成良好的编码习惯。
2025-09-17 21:17:27
1052
原创 嵌入式科普(38)C语言预编译X-Macros深度分析和实际项目代码分享
本文介绍了C语言中的X-Macros技术,这是一种编译时代码生成技巧。主要内容包括:1) X-Macros的基本概念,通过中央数据表自动生成关联代码结构;2) 经典示例解析,展示如何用X-Macros同步生成枚举、字符串表和函数表;3) 技术优势如零同步成本、安全边界检查等;4) IDE支持限制的原因及解决方案;5) 西门子Profidrive实际应用案例。X-Macros适用于中小型项目,在工业自动化领域广泛应用,推荐使用gcc -E命令查看宏展开结果。
2025-09-17 21:16:05
1222
原创 二十、瑞萨RZT2N2 PROFINET SDK正式发布
瑞萨电子正式发布RZ/T2N2 PROFINET SDK v1.10,支持PROFINET-IRT、PROFIdrive和PROFISAFE等多种应用。该SDK适用于RZ/N2L和RZ/T2M芯片,包含PLC项目、GSDML文档和源码等完整开发资源,已通过PI一致性测试。测试日志显示开发板初始化正常,可与博图软件成功连接。该SDK支持单核/双核架构及SDRAM,同时兼容EtherCAT、EIP、Modbus等多种工业协议。
2025-09-15 22:35:51
347
原创 十九、瑞萨RZN2L适配YT8522H/YT8512H
本文介绍了RZN2L适配YT8522H/YT8512H以太网PHY芯片的关键要点。主要内容包括:1.适配步骤和示例代码,通过自定义初始化函数实现PHY寄存器配置;2.PHY适配的三个核心要素:地址设置、PHYLink状态判断和寄存器初始化;3.YT8522H与其他PHY芯片的对比分析,指出其特有的LED引脚配置方式。文章总结了瑞萨FSP框架下PHY适配的通用方法,并特别强调了对扩展寄存器的处理注意事项。通过具体案例展示了从硬件配置到软件驱动的完整适配流程。
2025-09-15 22:34:00
1356
原创 九、瑞萨发布RZT/N认证的PROFINET-IRT和PROFIdrive软件协议栈
瑞萨电子于2025年3月推出经认证的PROFINET IRT和PROFIdrive软件协议栈,支持RZ/T和RZ/N系列工业MPU。该方案提供完整的PROFINET功能,包括循环数据交换、诊断报警、冗余支持等,适用于高精度工业控制。相比RT-Thread P-NET、西门子ERTECH200P-3等其他方案,瑞萨的集成方案在开放性、性价比和性能方面更具优势。随着工业以太网占比达71%(PROFINET占23%),高集成度、开源化的单芯片方案正成为主流趋势。
2025-09-10 20:08:40
1269
原创 十八、从0开始卷出一个新项目之瑞萨RZN2L使用ADC+DMA接收数据流
本文对比分析了STM32的ADC+DMA双缓冲模式与瑞萨RZN2L DMA双配置模式在实现数据流传输上的差异。文章指出RZN2L没有传统双缓冲模式,而是通过独特的"双配置模式"实现连续ADC数据接收,其核心在于DMA的重配置机制。通过例程源码展示了RZN2L如何利用寄存器配置和回调函数实现双缓冲区切换,并强调深入理解DMA本质对于复杂功能实现的重要性。两种方案各有特点,RZN2L的方案提供了另一种高效无损接收ADC数据流的实现思路。
2025-09-10 19:49:26
562
原创 嵌入式科普(36)【程序员必看】GCC编译优化:你的代码为何“神秘消失”?
GCC优化会加速代码运行效率GCC最新版本对代码的规范化更严格合理的设置优化等级、单独优化、防止优化等功能分享你遇到的非期望优化例子。
2025-03-06 20:44:22
722
原创 十七、从0开始卷出一个新项目之瑞萨RZN2L定时器(GPT)+DMA生成PWM的运动控制
rzn2l具备实现运动控制的重要资源,可实现1Mhz的效果例程仅提供GPT+DMA的使用。
2025-03-06 20:43:31
673
原创 嵌入式科普(35)当AI遇上Markdown:一场“全民工程师”的排版革命
Markdown的普及,正是技术民主化的又一缩影。就像新能源汽车的OTA(远程升级)功能核心设计理念是:“专注内容,而非格式”AI时代,更是一场“全民工程师”的时代,让我们先来学好Markdown。
2025-03-04 19:30:57
1500
原创 嵌入式科普(34)通过对比看透DMA的本质
DMA的本质是硬件级并行化,释放CPU、减少中断,数据批处理。理解DMA的本质便于理解/学习更复杂的DMA功能。后续会有通过DMA输出PWM、DMA连续传输ADC等例子分享。
2025-03-04 19:29:20
509
原创 嵌入式科普(33)深度解析C语言中的const和volatile关键字
定义"只读变量",被修饰的变量不可被程序修改:提醒编译器该变量可能被意外修改,禁止编译器优化注意强制类型转换嵌入式科普(32)指向寄存器的指针变量2---可变指针 volatile int* volatile p;货真价实。
2025-02-24 22:10:49
709
原创 嵌入式科普(32)指向寄存器的指针变量2---可变指针
首先volatile修饰是为了告诉编译器访问寄存器指针需注意易变属性通过offset方式访问寄存器更要注意易变属性p指向的数据是易变的变量p是易变的都是易变的编译器版本优化有差异货真价实下一节总结volatile和const。
2025-02-24 22:09:46
353
原创 十六、从0开始卷出一个新项目之瑞萨RZN2L再谈固件升级
回头再看芯片启动过程、升级固件引导过程还是细节很多,未理解本质一定会碰到问题loader+app属于熟知的“IAP升级”有灵活性;UART/USB启动、EtherCAT FOE只需要很少的研发投入固件加密的思考。
2025-02-22 13:18:17
974
原创 嵌入式科普(31)一文了解嵌入式涉及的各类型编码
还有Wi-Fi、Zigbee、BLE(蓝牙低功耗)、433/315MHz、4G 和 5G 等无线通信的编码方式和调制方式在半导体或编程世界中只有0和1,0代表关/低,1代表开/高。但各类型编码复杂的很。
2025-02-22 13:16:26
921
原创 嵌入式AI(3)清华大学DeepSeek 02:DeepSeek如何赋能职场应用
https://mp.weixin.qq.com/s/Sq7MR6dk1e3sYBBicVn46Q
2025-02-18 19:12:11
172
原创 嵌入式AI(4)清华大学DeepSeek 03:普通人如何抓住DeepSeek红利
嵌入式AI(4)清华大学DeepSeek 03:普通人如何抓住DeepSeek红利
2025-02-18 19:11:15
514
原创 嵌入式AI(1)如何获取清华大学DeepSeek系列pdf资料
免费分享清华大学DeepSeek系列pdf,在线、下载可以询问deepseek如何获取清华大学DeepSeek系列通过Markdown图片批量导入的例子,可发现AI的高效率。
2025-02-17 21:20:13
361
原创 二、从0开始卷出一个新项目之瑞萨RZT2M双核架构通信和工程构建
RZT2M同构双核,分主副core两个工程关联在一起(fsp2.2.0)先启动cpu0,后启动cpu1(fsp2.2.0)
2025-02-17 21:18:44
721
原创 嵌入式科普(30)一文看懂嵌入式MCU/MPU多核架构与通信
同构Cortex-A多核由Linux负责内核通信,IPC进程通信,高性能同构Cortex-M/R多核有多种通信机制,如FreeRTOS SMP、MU、IPC、信号量、Mailbox、共享内存、CPU中断等异构多核通常用AMP等机制。
2025-01-16 22:44:48
2050
原创 一、从0开始卷出一个新项目之瑞萨RZT2M对比介绍
核心:CR52双核800MhzRZT2M、RZN2L 225引脚pin2pin应用:3 端口的千兆以太网交换机,可为 TSN 标准及 EtherCAT、PROFINET RT/IRT 和 EtherNet/IP 等工业以太网协议 的 高性能伺服电机。
2025-01-16 22:43:17
732
原创 嵌入式科普(29)c代码究竟是如何一步步运行的之C语言运行的本质
C语言运行的本质是栈式函数调用和编译型语言C函数调用栈的分析是重要技能理解C语言的编译链接原理。
2025-01-15 20:42:22
1041
原创 嵌入式科普(24)一张图真正看懂USB通信协议
USB(Universal Serial Bus)“通用”到日常生活,又复杂到工程师也不一定说的清楚本文以科普的角度,用一张图并且带一定深度的把USB通信协议说尽。从宏观上或者逻辑上能理解USB理解USB相关概念USB 规范:定义了 USB 技术的标准。USB 接口:设备与主机通信的逻辑通道。USB 端点:设备上的数据缓冲区。USB 管道:主机和设备之间的逻辑通道。USB 数据传输类型:控制传输、中断传输、批量传输、同步传输。USB 设备类:定义了设备的功能和通信协议。
2025-01-14 21:20:55
3837
原创 十六、e2studio VS STM32CubeIDE之“静态栈“分析窗口
在十二、e2studio VS STM32CubeIDE之栈回溯cmbacktrace分享过“动态栈”分析本文分享现代IDE的“静态栈”分析窗口功能backtrace属于“动态栈”分析;现代IDE自带来“动态栈”分析“动态栈”分析来源.elf文件;-fstack-usage开启其他的C/C++ 静态分析工具描述:Clang 编译器自带的静态分析工具,能够检测内存泄漏、空指针解引用等问题。使用方式:可以通过命令行或集成到 IDE 中使用。
2025-01-14 21:19:19
1168
原创 十五、e2studio VS STM32CubeIDE之hardfault分析窗口
之前分享来十二、e2studio VS STM32CubeIDE之栈回溯cmbacktrace可以离线追溯hardfault函数调用栈现代IDE(e2studio、STM32CubeIDE)也提供了hardfault分析窗口功能在线调试情况下,现代IDE的hardfault分析窗口可以非常便捷的分析定位。
2025-01-06 20:30:59
433
原创 嵌入式科普(26)为什么heap通常8字节对齐
结论:在嵌入式c语言中,heap通常8字节对齐本文主要分析这个问题的分析过程不论是在STM32的32位微控制器上还是在64位的Ubuntu系统中,heap 8字节对齐都因其带来的性能优化、硬件兼容性和代码可移植性而成为一种广泛接受的标准。这种做法帮助开发者构建既高效又可靠的应用程序,符合现代计算环境的需求。
2025-01-06 20:29:41
645
原创 十四、e2studio VS STM32CubeIDE之一张表看懂FreeRTOS三种调度
stm32cubeide默认使用时间片,e2studio默认不使用时间片。用一张表看懂FreeRTOS三种调度请回忆一下,什么样的例程才能展示任务调度的区别呢?任务内需要执行时间较长,阻塞时间极端。也就是cpu高负载用例程代码测试对比验证效果FreeRTOS时间片调度更常用,但对开发者要求稍高nucleo_u575工程似乎有bug,失能时间片宏无效,只能用时间片调度。
2024-12-28 11:46:41
596
原创 嵌入式科普(25)Home Assistant米家集成意味着IOT的核心是智能设备
小米Home Assistant 米家集成开源一周star近15k,迭代4个版本,12个贡献者本文科普一下Home Assistant(简称HA)、米家集成,以及带来的好处米家集成云端控制全球支持本地化控制的小米中枢网关(含内置中枢网关)的固件尚未发布保管好自己 Home Assistant 配置文件,小米用户信息泄露风险许可证是小米协议原来米家设备接入HA是极客行为,但有数量、类型、延迟等各种限制现在米家集成是小米开发接口,提供了无限的可能性,最典型的就是支持HA的设备都可以用小爱来控制。
2024-12-26 23:43:18
1637
原创 十三、e2studio VS STM32CubeIDE之“单独下载“程序
开发中需要频繁的下载程序,"在线调试"比"单独下载"时间长很多,单独下载可以提高工作效率keil、iar、stm32cubeide、rt-thread studio都自带"在线调试"和"单独下载"两个按钮如何让e2studio增加单独下载按钮--->外部工具调用jlink通过e2studio(eclipse)外部工具调用jlink.exe,通过jlink指令下载e2studio默认未显示相关工具,需显示工具栏和设置快捷键。
2024-12-26 23:41:13
709
原创 十二、e2studio VS STM32CubeIDE之栈回溯cmbacktrace
我们分享过十四、从0开始卷出一个新项目之瑞萨RZN2L之栈回溯我们继续分享通用mcu cm33内核stm32u575和瑞萨ra6m4的栈回溯cmbacktrace的例程源码为了快速定位hardfault,进一步介绍栈回溯的知识cmbacktrace移植比较简单,主要修改stack、text地址栈回溯是有一些限制的栈回溯功能加入到产品中也是非常有意义的栈回溯其实就是入栈的反向,了解栈回溯可以深入了解到c代码是如何运行的。
2024-12-25 20:02:30
833
原创 嵌入式科普(24)从SPI和CAN通信重新理解“全双工”
前段时间因为没有真正理解“全双工”的概念,导致spi的驱动写了好几天大家知道spi是全双工;can是全双工/半双工争议非常多究竟什么是“全双工/半双工”?有没有标准?真正理解这个概念的好处:正确的编写驱动函数;深刻理解才能思路清晰全双工指物理介质能够在没有干扰的情况下支持同步传输和接收。CAN的本质是半双工,因为差分信号只能单向通信;所谓CAN在协议层是全双工,实际是FIFO、仲裁机制等实现SPI有收发两根。
2024-12-24 21:30:42
1180
原创 十四、从0开始卷出一个新项目之瑞萨RZN2L之栈回溯(Default_Handler/hartfault)
软件开发中常见的比较棘手的问题就是hartfault/Default_Handler/dump,俗称跑飞了。参考cmbacktrace,在瑞萨RZN2L/T2M实现栈回溯,串口打印栈回溯信息。使用add2line或Python打印发生错误函数位置。循环打印栈回溯信息和编译日期,便于追溯bug。
2024-12-24 21:29:20
1003
2
原创 嵌入式科普(23)指向寄存器的指针变量
定义指向寄存器的指针变量要额外注意编译器警告类型不匹配的不能简单忽略强制类型转换不能随意用位掩码,如 (*reg & (1
2024-12-23 19:06:27
343
原创 十三、从0开始卷出一个新项目之瑞萨RZN2L串口DMA接收不定长
关键原理:串口空闲中断,stm32利用空闲中断来处理串口dma接收不定长度,可用hal库api瑞萨RA使用gpt定时器和elc来硬件检测串口空闲。但是:1、fsp没有sci+dma的api,需要自己封装;2:dma接收不定长的实现瑞萨RZN2l可以按照RA的思路来实现,但是rzn2l的elc源不支持串口接收满,如何实现?
2024-12-23 19:02:52
1371
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅