- 博客(32)
- 收藏
- 关注
原创 VScode 支持 QNX 源码跳转
本文介绍了在VS Code中配置QNX开发环境的详细步骤。主要内容包括:1) 使用C/C++插件配置头文件路径、宏定义和编译器路径,通过编辑c_cpp_properties.json文件实现代码跳转和智能提示;2) 可选方案Clangd插件的配置方法,需生成compile_commands.json文件;3) 推荐使用QNX官方插件进行环境管理和系统监控。同时提供了两个常见问题的解决方案:C/C++插件与Clangd冲突的解决方法,以及当bear工具失效时生成compile_commands.json的Py
2025-07-27 13:47:39
938
原创 Raspi4 切换QNX系统
本文介绍了在树莓派4B平台上安装QNX操作系统的主要步骤与注意事项。内容包括SDP、VCP等术语定义,系统环境要求(QNX SDP 8.0、VCP驱动等),详细安装流程(下载BSP包、Ubuntu解压、SD卡制作、镜像替换),以及串口打印乱码等问题的排查方法。重点说明了如何通过修改config.txt文件引导QNX IFS镜像,并为开发者提供了相关参考文档链接。文章适用于需要在树莓派4B上部署QNX系统的开发人员。
2025-07-20 23:40:15
791
原创 搭建QNX Software Center的Docker环境
本人使用 Ubuntu Server 22.04 服务器,所以没有图形界面,而 QNX Software Center 需要图形界面。为了保证服务器环境的整理,计划使用Docker部署QNX Software Center 一瓶安装图形界面。本方既是实现方案的记录。当前 Ubuntu Server 宿主机无图形界面,参考AI工具给到的建议:选用 Xvfb 虚拟显示 + VNC 客户端 的方式支持用户连接并操作。,但可以运行需要图形环境的应用程序。参考 qnx 安装的help信息,跳过交互并修改安装目录为。
2025-03-30 17:04:04
1258
原创 USB 驱动开发 --- Gadget 设备连接 Windows 免驱
记录 Duo 以 Gadget SourceSink Function 设备接入Win10,最终实现免驱。
2025-01-04 17:11:08
1604
2
原创 USB 驱动开发 --- Gadget 驱动框架梳理(二)
Legacy zero 的方法更贴近 libcomposite 框架的(直接调用相关API),手段灵活,但开发难度相对较高;Function 集成度更高,可使用 configfs 方式高效开发、调试,但可配置内容受 function 实现的内容限定;
2025-01-03 23:01:38
1275
原创 eMMC/SD/SDIO 接口辨析
通常SOC中带有eMMC/SD/SDIO 控制器(简称 MMC)用于处理对 SD 卡、eMMC 器件的读写等操作,并通过 SDIO 协议实现对扩展外设(如蓝牙、WiFi 等)的支持。但eMMC/SD/SDIO是三种不同的接口协议标准,在此经收集与总结后按:管脚、应用场景简要辨析。
2024-12-04 21:45:32
449
原创 Input子系统(一)、从内核文档入门
Input子系统的核心是input内核模块,故其需要早于其他input设备驱动优先被加载。 从input模块获取事件并将其传递给需要的对象,如:按键给到内核、鼠标移动给到GPM和X这样的UI框架,等等。Input子系统设计用于集合Linux下所有输入设备驱动。几乎所有输入设备的驱动都位于。节点,否则自动创建并分别接入GPM或X显示框架(详见原文档)。 连接硬件并上报事件到input模块;目录下,但伋有部分设备驱动位于。,之后系统通常会自动创建。
2024-11-13 21:55:42
222
原创 集成构建流程之根文件系统Buidroot
执行make,Makefile文件为:build/Makefile。通用编译脚本:build.sh。通用shell函数定义脚本。通用环境变量配置脚本。
2024-05-23 23:17:02
315
原创 U-boot 21.10 启动流程梳理(草稿状态,完成度 45%)
本文主要梳理了U-boot 21.10版本的启动流程,以便更好地实现定制化功能。在梳理过程中比较了ARM和RISC-V两个平台的差异,并总结了定制化实现中需要关注的细节。
2024-04-27 17:45:48
1048
原创 Linux 5.10 Pstore 学习之(一) 功能测试
本文主要用于介绍Linux 5.10(Duo S)开启Pstore功能并进制测试的方法与问题解决。
2024-04-08 23:02:48
2257
原创 Standalone---基础认知
导出给standalone程序使用函数多是设备无关的代码实现,所以standalone在移植到一个新设备时,唯一需要关注的是。此时,standalone使用就是替换后的malloc与free。此时,standlone程序就可以使用malloc与free。参考:doc/README.standalone。standalone程序入口先使用。standalone版本号递增更新。
2023-10-24 22:43:22
335
1
原创 U-boot下netconsole实现
上面的do-while会循环命令解析器的"命令输入解析–执行"运行模式。其中的函数run_list执行如下的函数调用流程:run_list–>run_list_real–>run_pipe_real->cmd_process。
2023-10-08 00:16:37
615
1
原创 Kconfig白名单问题解决
总体而言,使用check-config.sy脚本检查用户自定义的以CONFIG_为前缀的宏。增加不被实际引用的Kconfig文件Kconfig.bsp_whitelist。第三个文件猜测为:kconfig_whitelist.txt。可知,该文件是多个文件的拼接结果,并不适用于直接拼接。comm工具用于比较两个文件的内容。追加未白名单过滤的宏。测试失败,仍会报错误。
2023-03-19 21:08:20
69
原创 Linux之random子系统问题解决分享
结合与的代码跟读,整理出问题流程时序图表示如下:结合图示,复述问题过程:启动启动中,系统通过中断的方式不断向input_pool熵池填充状态随机数,而blocking_pool为空。应用程序Hicore调用系统接口getrandom()获取256个随机数而陷入内核态;此时input_pool熵池未收到阈值128 bits的随机数而处于处于未初始化状态(crng_init值为1),即crng_read()为假(crng_int值为2时,crng_read()为真)。
2023-03-18 22:41:19
691
原创 PHY、MAC基础知识
文章目录物理连接归纳时序Delay不满足时表现调试手段物理连接PHY通用连接MAC直连归纳RGMII总线包含数据总线MII与控制总线MDIO;时钟由数据发起方提供;MAC-PHY连接方式,引脚名直接连接;MAC-MAC连接方式,TX\RX交叉连接;SOC网络相关引脚需要复用为RGMII模式,相应DTS修改:时序Tx Delay因为调整信号传输对信号时序要求,对数据保持时间要求,Ttxd=Tclk与紧跟其后数据线边沿的时间;RGMII全速为125MHz(8ns)
2021-03-31 22:59:49
960
原创 Linux phy驱动开发总结
文章目录基础须知数据结构数据结构UML类图MAC驱动初始化简述驱动实现关于MAC连接PHYPHY驱动动态注册静态注册通用PHY参考模板IP18xx驱动调试须知:问题方案与分析总结待解决问题测试结论备注1. 关于接入libphy.ko基础须知所有PHY驱动不能单独编译成模块必须在phy目录下集合,最终集成到libphy.ko;MODULE_DEVICE_TABLE用于声明支持的设备;module_phy_driver用于声明PHY驱动信息添加到libphy.ko,做;PHY驱动的所有接口实际都为
2021-03-31 22:46:34
5014
原创 U-boot phy驱动开发总结
文章目录基础须知数据结构数据结构UML类图PHY核心 API初始化支持uclass支持legacy总结基础须知CONFIG_DM_ETH is not setNT使用 MAC(eqos) + Generic PHY,的组合方式,所以phy_register(&genphy_driver)MAC的start中会调用phy_connect,尝试probe总线MDIO上的mask内所有PHY总体流程:phy_connect => phy_config => phy_startup
2021-03-31 22:29:52
4155
1
原创 Proc使用seq_file时,参数如何传递
文章目录测试代码代码分析variable是全局变量,如何在proc操作间传递?创建节点 proc_create_dataopen阶段file 与 seq_filePDE_DATA(inode)是什么show/write 阶段,总结测试代码#include <linux/module.h>#include <linux/kernel.h>#include <li...
2019-06-08 21:35:01
839
原创 Linux 中节点(inode)、设备(cdev)、驱动(ops)如何关联
inode与cdev结构体对比(片选)struct inode { uid_t i_uid; gid_t i_gid; dev_t i_rdev; // 设备文件的设备号 union { struct pipe_inode_info *i_pipe; struct block_device ...
2019-05-30 22:54:29
3323
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人