- 博客(36)
- 收藏
- 关注
原创 VScode 创建 QNX 模板工程
本文介绍了在Windows11下使用VSCode远程连接Ubuntu22.04进行QNX开发的配置过程。开发环境采用VSCode 1.106.2版本,安装了QNX Toolkit和C/C++扩展包。文章详细说明了两种创建QNX工程的方法:示例工程和模板工程,其中示例工程首次打开会出现错误。解决方法是通过QNX本地终端执行make命令后再调试。最终成功实现了"Hello,world"程序的编译和调试,展示了QNX开发环境的配置流程和常见问题的解决方案。
2025-11-23 20:09:45
308
原创 I2C 驱动 --- 控制器
摘要 本文分析了BCM2711 I2C驱动在QNX环境下的运行问题。通过反汇编带调试信息的可执行文件i2c-bcm2711,梳理出启动流程:从_start入口开始,依次调用_init_libc、_preinit_array等初始化函数,最终进入main函数执行参数检查(_i2c_options)、库初始化(_i2c_initlib)、分发器创建(dispatch_create)等关键操作。调试发现设备运行时无输出信息,定位难点在于如何获取有效的调试日志。文中提供了完整的编译命令和反汇编方法,为深入分析I2C
2025-10-26 22:13:03
466
原创 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
1138
原创 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
943
原创 搭建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
1329
原创 USB 驱动开发 --- Gadget 设备连接 Windows 免驱
记录 Duo 以 Gadget SourceSink Function 设备接入Win10,最终实现免驱。
2025-01-04 17:11:08
1795
2
原创 USB 驱动开发 --- Gadget 驱动框架梳理(二)
Legacy zero 的方法更贴近 libcomposite 框架的(直接调用相关API),手段灵活,但开发难度相对较高;Function 集成度更高,可使用 configfs 方式高效开发、调试,但可配置内容受 function 实现的内容限定;
2025-01-03 23:01:38
1376
原创 eMMC/SD/SDIO 接口辨析
通常SOC中带有eMMC/SD/SDIO 控制器(简称 MMC)用于处理对 SD 卡、eMMC 器件的读写等操作,并通过 SDIO 协议实现对扩展外设(如蓝牙、WiFi 等)的支持。但eMMC/SD/SDIO是三种不同的接口协议标准,在此经收集与总结后按:管脚、应用场景简要辨析。
2024-12-04 21:45:32
519
原创 Input子系统(一)、从内核文档入门
Input子系统的核心是input内核模块,故其需要早于其他input设备驱动优先被加载。 从input模块获取事件并将其传递给需要的对象,如:按键给到内核、鼠标移动给到GPM和X这样的UI框架,等等。Input子系统设计用于集合Linux下所有输入设备驱动。几乎所有输入设备的驱动都位于。节点,否则自动创建并分别接入GPM或X显示框架(详见原文档)。 连接硬件并上报事件到input模块;目录下,但伋有部分设备驱动位于。,之后系统通常会自动创建。
2024-11-13 21:55:42
268
原创 集成构建流程之根文件系统Buidroot
执行make,Makefile文件为:build/Makefile。通用编译脚本:build.sh。通用shell函数定义脚本。通用环境变量配置脚本。
2024-05-23 23:17:02
357
原创 U-boot 21.10 启动流程梳理(草稿状态,完成度 45%)
本文主要梳理了U-boot 21.10版本的启动流程,以便更好地实现定制化功能。在梳理过程中比较了ARM和RISC-V两个平台的差异,并总结了定制化实现中需要关注的细节。
2024-04-27 17:45:48
1090
原创 Linux 5.10 Pstore 学习之(一) 功能测试
本文主要用于介绍Linux 5.10(Duo S)开启Pstore功能并进制测试的方法与问题解决。
2024-04-08 23:02:48
2548
原创 Standalone---基础认知
导出给standalone程序使用函数多是设备无关的代码实现,所以standalone在移植到一个新设备时,唯一需要关注的是。此时,standalone使用就是替换后的malloc与free。此时,standlone程序就可以使用malloc与free。参考:doc/README.standalone。standalone程序入口先使用。standalone版本号递增更新。
2023-10-24 22:43:22
381
1
原创 U-boot下netconsole实现
上面的do-while会循环命令解析器的"命令输入解析–执行"运行模式。其中的函数run_list执行如下的函数调用流程:run_list–>run_list_real–>run_pipe_real->cmd_process。
2023-10-08 00:16:37
646
1
原创 Kconfig白名单问题解决
总体而言,使用check-config.sy脚本检查用户自定义的以CONFIG_为前缀的宏。增加不被实际引用的Kconfig文件Kconfig.bsp_whitelist。第三个文件猜测为:kconfig_whitelist.txt。可知,该文件是多个文件的拼接结果,并不适用于直接拼接。comm工具用于比较两个文件的内容。追加未白名单过滤的宏。测试失败,仍会报错误。
2023-03-19 21:08:20
109
原创 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
868
原创 typora导出html后,内嵌图片脚本
命令:python R:\Tools\01-Source\01-Scripts\Typora_html.py --dir “currentFolder"−−file"{currentFolder}" --file "currentFolder"−−file"{currentFileFullName}” --out “${outputPath}”脚本:typora_html.py
2023-02-03 22:35:01
559
2
原创 基于FRP实现树莓派内网穿透
基于FRP实现树莓派内网穿透文章目录基于FRP实现树莓派内网穿透引用客户端(云服务器)配置启动服务防火墙修改测试客户端(树莓派)配置启动服务测试引用客户端(云服务器)到Github下载[frp](Releases · fatedier/frp · GitHub)并安装# 下载并解压wget https://github.com/fatedier/frp/releases/download/v0.40.0/frp_0.40.0_linux_amd64.tar.gztar -xvf frp_0.4
2022-03-13 17:28:27
505
原创 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
1033
原创 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
5130
原创 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
4341
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
860
原创 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
3411
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅