- 博客(9)
- 收藏
- 关注
原创 IIC驱动框架
针对每款 CPU 来说,IIC 控制器可能不止一个,所以 i2c_adapter 也可能不止一个,他们都需要在系统上电的时候,进行初始化,所以,这些 i2c_adapter 结构,是通过 platform 总线连接,并在上电的时候通过定义多个 platform device 设备和 platform_driver,靠 platform_bus 连接起来,并进行多次的 probe 调用,进行初始化的!数据传输,主要就是指定设备地址,数据长度,以及数据 buffer,flags 标记了传输的一些属性。
2026-01-07 17:15:36
675
原创 platform设备驱动框架
driver 可能会匹配 多个 platform_device,而probe 必须知道:我现在服务的是哪一个设备,驱动在这里完成针对该设备的资源获取和初始化。(匹配动作不是驱动主动做的,是 platform bus 在 driver/device 注册时自动完成的)device dev) 里的 dev,就是“与当前驱动成功匹配的那个具体 platform 设备实例,因为一个 platform。1.在驱动函数入口中向内核注册 platform 总线驱动。6.注册字符设备(如果是字符设备驱动)
2025-12-18 18:02:11
284
原创 通过NFS挂载根文件系统问题记录
NFS 是一种网络文件共享协议,允许客户端(如IMX6ULL 开发板)通过网络访问服务器(如 Ubuntu 虚拟机)上的文件系统,而NFSv3是。在IMX6ULL开发板中使用NFS挂载跟文件系统时出现Kernel panic问题,核心原因是无法正确挂载跟文件系统。将bootargs配置改为(在之前内核默认会优先尝试 NFSv4 协议,在rootfs和ip字符串之间加上一个v3。
2025-11-20 22:07:25
187
原创 EtherCAT通信技术
主站会在本地内存中开辟一块连续的缓冲区(称为 “域”),其大小等于所有从站需交互的RxPDO和TxPDO数据的总长度(主站需要通过读取从站的ESI文件获取初始的PDO信息并在随后通过SDO配置PDO映射的时候确定大小),主站应用程序可以直接读写这块内存。主站通过 SDO 给每个 PDO 分配在“过程数据域”中的全局地址偏移和长度,来确定多个从站PDO在过程数据域中的排列顺序,这些偏移也会被从站的FMMU用于硬件级的地址映射。主站通过 SDO 读取从站对象字典的基础索引,通过厂商ID、设备类型等确定从站;
2025-11-18 20:45:21
972
原创 Qt中的隐式共享
其核心思想是:多个对象可以共享同一份数据,直到某个对象需要修改数据时,才会真正进行数据的复制。这样做的好处是,在不需要修改数据的情况下,复制操作(如赋值、传参)的代价非常小,只是增加一个引用计数,而不需要复制大量数据。如果引用计数大于1(表示有多个对象共享数据),则进行深拷贝(将原始数据完整复制一份)。:避免不必要的深拷贝,尤其是在容器较大时,复制操作的开销很大,隐式共享可以显著减少这种开销。,即只拷贝指向共享数据块的指针和引用计数,而不会拷贝数据本身。:当多个对象包含相同数据时,不需要存储多份副本。
2025-10-07 16:50:07
178
原创 EtherCAT同步管理器
每个同步管理器通道可以配置为用于不同的通信方向(输入或输出)和类型(邮箱数据或过程数据)。SM2:通常用于过程数据(Process Data)的输入(从站向主站发送过程数据)。SM3:通常用于过程数据(Process Data)的输出(主站向从站发送过程数据)。但是,这只是一个常见的配置,实际配置取决于从站的描述文件(ESI)或从站设备的设计。SM0:通常用于邮箱通信(Mailbox)的输入(主站向从站发送邮箱数据)。SM1:通常用于邮箱通信的输出(从站向主站发送邮箱数据)。在 EtherCAT 协议中,
2025-09-26 11:20:03
666
原创 Preempt-RT内核补丁移植到RK3506开发板
可能会出现Preempt-RT内核补丁与SDK的内核源码冲突的情况(补丁应用不完整),我出现了8250这个模块的冲突,此时会生成.rej的文件,按照文件的脚本来手动修改部分内核源码后重新编译。启用以太网驱动STMMAC_ETH ,直接编辑内核配置文件 .config ,将驱动内置到内核(通过提供的RKDevTool烧写工具,将update.img镜像传到开发板中。Linux内核版本:Linux6.1.99。),将CONFIG_STMMAC_ETH=,我用的内核版本为6.1.99-rt36。
2025-09-22 21:38:14
784
1
原创 IgH EtherCAT移植到RK3506开发板流程
因为当前解压的目录(`/mnt/sdcard`,即 SD 卡)的 文件系统不支持符号链接(symlink,可能的原因是 SD 卡被格式化为 FAT32(vfat)*格式(嵌入式系统常用的 SD 卡格式),而 FAT32 文件系统本身不支持Linux的符号链接(symlink)机制,导致`tar`无法创建`libethercat.so -> libethercat.so.1.2.0`这样的软链接。解压到系统的`tmpfs`临时目录,但重启后数据会丢失。启动EtherCAT主站服务。文件中,并传输到开发板上。
2025-09-22 15:22:56
1304
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅