嵌入式
文章平均质量分 74
嵌入式
Li-Yongjun
这个作者很懒,什么都没留下…
展开
-
字符设备驱动编写
每一个主设备号(major) 对应 /proc/devices 下的一个设备,使用 register_chrdev() 创建。每一个次设备号(minor) 对应 /dev/ 下的一个设备文件,使用 mknod 或 device_create() 创建。原创 2024-03-15 21:45:00 · 1028 阅读 · 0 评论 -
gdb 调试记录
持续更新。。。原创 2024-03-05 22:34:49 · 627 阅读 · 0 评论 -
内核调试 && 应用程序调试
内核调试和应用程序调试,底层都是使用 gdb,只不过受限于环境、系统等因素,使用了不同的辅助程序(设备)罢了。原创 2024-01-19 00:59:09 · 536 阅读 · 0 评论 -
x86 寄存器
8086 处理器内部有 8 个 16 位的通用寄存器,分别被命名为 AX、BX、CX、DX、SI、DI、BP、SP。原创 2024-01-17 22:15:00 · 906 阅读 · 0 评论 -
ARM 寄存器
Cortex A 系列的 ARM 处理器共有 40 个 32 位寄存器,其中 33 个为通用寄存器,7 个为状态寄存器。用户模式和系统模式共用同一组寄存器。原创 2024-01-11 21:37:25 · 1663 阅读 · 1 评论 -
pci_enable_device()
从协议中来,到协议中去。原创 2023-12-25 22:15:00 · 1485 阅读 · 0 评论 -
USB2.0 软件篇
形象点说,Spec 是理论基础,内核代码是具体实现,理论懂了,看代码就和看故事会差不多了。原创 2023-12-20 22:30:00 · 1103 阅读 · 0 评论 -
USB2.0 Spec 中文篇
一个设备可能有一个或多个接口。(复合设备具有多个接口,驱动中,是只认接口,不认设备的,一个驱动程序对应一个接口。一个包含两个接口的复合设备,如电子琴,包含键盘接口和扬声器接口,那么就会有两个驱动与该设备对应,即键盘驱动和扬声器驱动)原创 2023-12-14 22:15:00 · 2186 阅读 · 0 评论 -
uboot 添加命令
uboot 中有个 ping 命令,用来检查网络是否通畅。我们照着这个命令添加一个 ping2 命令。原创 2023-11-15 23:40:29 · 362 阅读 · 0 评论 -
uboot 和 内存地址
在 uboot 的 .config 和 Makefile 文件中,使用 CONFIG_SYS_TEXT_BASE 宏来指定代码的入口地址原创 2023-11-09 23:12:20 · 2237 阅读 · 0 评论 -
PCI、PCIe 一篇搞定
PCI、PCIe 概述原创 2023-11-06 23:15:00 · 4382 阅读 · 2 评论 -
SD NAND
那有没有一款产品来解决这个现状呢?有,那就是 SD NAND。原创 2023-10-24 22:45:00 · 1615 阅读 · 3 评论 -
ARM Linux DIY(十四)摄像头捕获画面显示到屏幕
摄像头对应 /dev/video0,屏幕对应 /dev/fb0,所以我们只要写一个应用程序,读取 video0 写入到 fb0 就可以了。原创 2023-09-29 06:30:00 · 565 阅读 · 0 评论 -
ARM Linux DIY(十三)Qt5 移植
一、指定 platform 为 linuxfb;二、添加字库原创 2023-09-17 21:56:06 · 865 阅读 · 0 评论 -
ARM Linux DIY(十二)NES 游戏
我们 DIY 的板子具备屏幕、扬声器、USB Host(可以接游戏手柄),当然也要凑一凑热闹。原创 2023-09-13 23:15:34 · 1345 阅读 · 3 评论 -
ARM Linux DIY(十一)板子名称、开机 logo、LCD 控制台、console 免登录、命令提示符、文件系统大小
Linux 吉祥物小企鹅已跃然屏上原创 2023-09-11 00:47:14 · 660 阅读 · 0 评论 -
ARM Linux DIY(十)LRADC 按键
有时 ARM SOC 需要三五个按键,这时候 LRADC 就是一个不错的选择,它使用一个引脚,就可以扩展几个到几十个按键。原创 2023-09-07 21:56:12 · 1146 阅读 · 0 评论 -
ARM Linux DIY(九)陀螺仪调试
一开始使用内核自带的 IIO 驱动,发现只能在 /sys/ 目录下读取相应的坐标值,读取 /dev/iio:device0 有问题,并且需要配置中断引脚才能编译通过。所以就不使用内核自带的驱动了。网上找了个 6050 的驱动。原创 2023-09-07 21:40:31 · 702 阅读 · 0 评论 -
ARM Linux DIY(八)USB 调试
USB 电路简单,只有两根线 D+、D-,器件也简单,就一个 USB 母座,甚至连电阻电容都不需要,其它外设如果也能像 USB 这样就好了。原创 2023-09-06 00:37:05 · 1536 阅读 · 0 评论 -
ARM Linux DIY(七)麦克风调试
焊接:咪头、电阻、电容原创 2023-09-03 14:38:33 · 405 阅读 · 0 评论 -
ARM Linux DIY(六)音频调试
对于 SOC 来讲很简单,就一个引脚 HPOUTL(单声道);对于扬声器来讲也很简单,就两个引脚,插上就可以了。另外一个关键点是电容和电阻要焊到位,有没有噪音,音质好坏,全屏电容电阻打下手。原创 2023-09-01 00:12:39 · 1095 阅读 · 1 评论 -
ARM Linux DIY(五)摄像头调试
阶段一:设备树、驱动、硬件;阶段二:应用程序、测试原创 2023-08-31 00:32:53 · 1421 阅读 · 0 评论 -
ARM Linux DIY(四)WiFi 调试
小时候,给电视机安装摇头天线;长大后,给 WiFi 手搓天线。原创 2023-08-26 21:49:41 · 1720 阅读 · 1 评论 -
ARM Linux DIY(三)板载串口和 LCD 调试
发现上电后匹配的是 panel-sitronix-st7789v 这份驱动,那就禁用此启动,换下面的试试,结果还真可以,上电后屏幕直接就显示启动 log 了。原创 2023-08-23 23:21:56 · 1476 阅读 · 4 评论 -
ARM Linux DIY(二)配置晶振频率
板子上焊接的是 26MHz,设备树中配置的是 24000000,这样导致系统时钟不正确,最终产生的串口波特率不是 115200,所以乱码。原创 2023-08-20 15:05:40 · 1358 阅读 · 0 评论 -
ARM Linux DIY(一)电源、SD卡座、SOC 调试
手焊的话,下次还是不要选小尺寸 QFN 封装的芯片了。原创 2023-08-17 23:05:12 · 1116 阅读 · 0 评论 -
树莓派使用 ENC28J60
一些老的、Mini 的 ARM 开发板上没有预留网口,这样在调试升级内核或应用程序时很不方便。纵使有串口下载工具,但其速度也是慢地捉急。这种情况下,使用其它接口来扩展出一个网口无疑是一个比较好的方法。ENC28J60 就是一个使用 SPI 接口来扩展网口的模块,今天我们就来演示下在树莓派上如何使用 ENC28J60。原创 2023-08-13 03:31:01 · 940 阅读 · 0 评论 -
网卡内部的 DMA
对于 TX DMA 来讲,只要设置源地址,传输数据长度,然后开始传输就可以了。原创 2023-08-08 00:59:01 · 1980 阅读 · 0 评论 -
STM32 DMA 传输类型调试记录
源地址:(uint32_t)&huart->Instance->DR,即串口的数据寄存器目的地址:用户自定义的一个 buf数据长度:传送的数据长度原创 2023-07-14 02:52:57 · 1648 阅读 · 0 评论 -
linux 下查看 USB 设备
在每个 USB 设备目录下都有一些参数来展示该设备的属性信息。原创 2023-06-22 23:05:09 · 7037 阅读 · 1 评论 -
RTC
总结就是,file_operations 看名字带个 file 就知道,操作 /dev/rtc 文件,就会最终调用其 hook 函数。而在 file_operations 的各个 hook 函数中,我们想要实现的是 RTC 功能,所以就要借助 RTC 相关的功能函数来完成任务,这些 RTC 的功能函数就是 rtc_class_ops。原创 2023-06-16 02:53:31 · 1525 阅读 · 0 评论 -
pinctrl 子系统
pinctrl 只能用来实现引脚初始化,包括执行 probe() 之前,或者设备形态发生变化时。总之,是个一次性的概念,如果想反复控制某个引脚,或者操作一个引脚保持低电平一段时间,就不能用 pinctrl 了,还是要用 dts 定义引脚,代码中读取然后使用,如前面例子中的 phy-reset-gpios 引脚。原创 2023-06-14 23:57:54 · 1342 阅读 · 0 评论 -
使用 Pins_Tool_for_i.MX_Processors 生成设备树代码
刚打开 Pins_Tool_for_i.MX_Processors 软件时,映入眼帘的就是一颗完整的 SOC 底部引脚,和芯片实体一致。这样,操作这款软件,就像在盘这颗芯片,更直接,更带感、更接地气、更有动力。也可以帮助使用者更加彻底地了解芯片。原创 2023-06-11 23:25:02 · 1165 阅读 · 1 评论 -
IMX6ULL PHY 芯片驱动
该 of 函数想要从设备树中获取 "phy-reset-gpios" 引脚,很显然这里是获取不到的,因为设备树中没有配置。原创 2023-06-06 22:09:44 · 2143 阅读 · 1 评论 -
设备描述符
这就是设备描述符,它和 Spec 中的 Table 9-8 是一一对应的。原创 2023-05-28 14:03:43 · 1680 阅读 · 0 评论 -
/dev/kmem & /proc/kallsyms
使用 /dev/kmem,通过它可以访问内核虚拟内存。原创 2023-05-27 22:44:10 · 2172 阅读 · 0 评论 -
/dev/mem
恍然大明白,原来 devmem 命令就是读取 /dev/mem,命令名称都是取自这里啊!原创 2023-05-25 02:29:25 · 1194 阅读 · 0 评论 -
linux设备号——常见设备的主次设备号
常见设备的主设备号原创 2023-05-25 00:57:33 · 5854 阅读 · 0 评论 -
LCD 显示图像——操作显存(framebuffer)
用 C 程序直接操作 framebuffer 来显示图像。原创 2023-04-19 00:07:11 · 1035 阅读 · 1 评论 -
QT 应用程序能够在 LCD 屏幕上显示的原理是什么?
在 libQt5Gui.so.5.12.9 中查找到了字符串 QT_QPA_PLATFORM。原创 2023-04-08 23:51:13 · 2257 阅读 · 8 评论