自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

lyndon

嵌入式软件工程师

  • 博客(443)
  • 资源 (13)
  • 收藏
  • 关注

原创 内核调试 && 应用程序调试

内核调试和应用程序调试,底层都是使用 gdb,只不过受限于环境、系统等因素,使用了不同的辅助程序(设备)罢了。

2024-01-19 00:59:09 537

原创 x86 寄存器

8086 处理器内部有 8 个 16 位的通用寄存器,分别被命名为 AX、BX、CX、DX、SI、DI、BP、SP。

2024-01-17 22:15:00 916

原创 ARM 寄存器

Cortex A 系列的 ARM 处理器共有 40 个 32 位寄存器,其中 33 个为通用寄存器,7 个为状态寄存器。用户模式和系统模式共用同一组寄存器。

2024-01-11 21:37:25 1725 1

原创 pci_enable_device()

从协议中来,到协议中去。

2023-12-25 22:15:00 1530

原创 USB2.0 软件篇

形象点说,Spec 是理论基础,内核代码是具体实现,理论懂了,看代码就和看故事会差不多了。

2023-12-20 22:30:00 1121

原创 USB2.0 Spec

A device that has multiple interfaces controlled independently of each other is referred to as a composite device.

2023-12-18 22:45:00 1006

原创 USB2.0 Spec 中文篇

一个设备可能有一个或多个接口。(复合设备具有多个接口,驱动中,是只认接口,不认设备的,一个驱动程序对应一个接口。一个包含两个接口的复合设备,如电子琴,包含键盘接口和扬声器接口,那么就会有两个驱动与该设备对应,即键盘驱动和扬声器驱动)

2023-12-14 22:15:00 2227

原创 DHCP Host Name

udhcpc 命令使用 -x hostname:xxx 选项,可以在 DHCP Discover 报文中添加 option 12 选项,即 Host Name。

2023-12-05 23:37:16 1540

原创 genimage 打包镜像

用户准备好待打包的原料:uboot.bin、zImage、rootfs 等,然后编写一个配置文件 genimage.cfg,描述如何进行打包,然后运行 genimage -c genimage.cfg 就可以打包好一个镜像。

2023-11-29 23:15:00 1034

原创 /dev/root

/dev/root 曾经是 /dev/mmcblk0p2 的软链接,在使用这个软链接将该设备挂载到根目录后,又将该软链接删除了。

2023-11-27 01:42:38 1298

原创 uboot 添加命令

uboot 中有个 ping 命令,用来检查网络是否通畅。我们照着这个命令添加一个 ping2 命令。

2023-11-15 23:40:29 369

原创 uboot 和 内存地址

在 uboot 的 .config 和 Makefile 文件中,使用 CONFIG_SYS_TEXT_BASE 宏来指定代码的入口地址

2023-11-09 23:12:20 2416

原创 PCI、PCIe 一篇搞定

PCI、PCIe 概述

2023-11-06 23:15:00 4646 2

原创 SD NAND

那有没有一款产品来解决这个现状呢?有,那就是 SD NAND。

2023-10-24 22:45:00 1635 3

原创 sched,进程调度窥探,进程调度直观感受

在 LInux Kernel 中,使用的最多的就是完全公平调度(CFS)算法。

2023-10-23 00:16:53 436

原创 进程数据结构——task_struct

内核在实现上述功能时,使用的最主要的一个数据结构就是 task_struct。

2023-10-17 22:45:00 512

原创 GCC 优化等级(O0、O1、O2、O3)对程序性能的影响

O3 直接将内层循环给优化掉了,10 次循环展开成 10 次指令,也是牛逼。这样一来,少了内层循环的边界判断。更重要的是,少一层跳转,就减少一次分支预测判断,这对指令执行的效率有显著提升。

2023-10-09 22:05:40 5118

原创 ARM Linux DIY(十四)摄像头捕获画面显示到屏幕

摄像头对应 /dev/video0,屏幕对应 /dev/fb0,所以我们只要写一个应用程序,读取 video0 写入到 fb0 就可以了。

2023-09-29 06:30:00 583

原创 ARM Linux DIY(十三)Qt5 移植

一、指定 platform 为 linuxfb;二、添加字库

2023-09-17 21:56:06 879

原创 ARM Linux DIY(十二)NES 游戏

我们 DIY 的板子具备屏幕、扬声器、USB Host(可以接游戏手柄),当然也要凑一凑热闹。

2023-09-13 23:15:34 1375 3

原创 ARM Linux DIY(十一)板子名称、开机 logo、LCD 控制台、console 免登录、命令提示符、文件系统大小

Linux 吉祥物小企鹅已跃然屏上

2023-09-11 00:47:14 666

原创 ARM Linux DIY(十)LRADC 按键

有时 ARM SOC 需要三五个按键,这时候 LRADC 就是一个不错的选择,它使用一个引脚,就可以扩展几个到几十个按键。

2023-09-07 21:56:12 1167

原创 ARM Linux DIY(九)陀螺仪调试

一开始使用内核自带的 IIO 驱动,发现只能在 /sys/ 目录下读取相应的坐标值,读取 /dev/iio:device0 有问题,并且需要配置中断引脚才能编译通过。所以就不使用内核自带的驱动了。网上找了个 6050 的驱动。

2023-09-07 21:40:31 716

原创 ARM Linux DIY(八)USB 调试

USB 电路简单,只有两根线 D+、D-,器件也简单,就一个 USB 母座,甚至连电阻电容都不需要,其它外设如果也能像 USB 这样就好了。

2023-09-06 00:37:05 1566

原创 ARM Linux DIY(七)麦克风调试

焊接:咪头、电阻、电容

2023-09-03 14:38:33 425

原创 ARM Linux DIY(六)音频调试

对于 SOC 来讲很简单,就一个引脚 HPOUTL(单声道);对于扬声器来讲也很简单,就两个引脚,插上就可以了。另外一个关键点是电容和电阻要焊到位,有没有噪音,音质好坏,全屏电容电阻打下手。

2023-09-01 00:12:39 1101 1

原创 ARM Linux DIY(五)摄像头调试

阶段一:设备树、驱动、硬件;阶段二:应用程序、测试

2023-08-31 00:32:53 1455

原创 ARM Linux DIY(四)WiFi 调试

小时候,给电视机安装摇头天线;长大后,给 WiFi 手搓天线。

2023-08-26 21:49:41 1743 1

原创 ARM Linux DIY(三)板载串口和 LCD 调试

发现上电后匹配的是 panel-sitronix-st7789v 这份驱动,那就禁用此启动,换下面的试试,结果还真可以,上电后屏幕直接就显示启动 log 了。

2023-08-23 23:21:56 1481 4

原创 ARM Linux DIY(二)配置晶振频率

板子上焊接的是 26MHz,设备树中配置的是 24000000,这样导致系统时钟不正确,最终产生的串口波特率不是 115200,所以乱码。

2023-08-20 15:05:40 1469

原创 ARM Linux DIY(一)电源、SD卡座、SOC 调试

手焊的话,下次还是不要选小尺寸 QFN 封装的芯片了。

2023-08-17 23:05:12 1125

原创 树莓派使用 ENC28J60

一些老的、Mini 的 ARM 开发板上没有预留网口,这样在调试升级内核或应用程序时很不方便。纵使有串口下载工具,但其速度也是慢地捉急。这种情况下,使用其它接口来扩展出一个网口无疑是一个比较好的方法。ENC28J60 就是一个使用 SPI 接口来扩展网口的模块,今天我们就来演示下在树莓派上如何使用 ENC28J60。

2023-08-13 03:31:01 955

原创 网卡内部的 DMA

对于 TX DMA 来讲,只要设置源地址,传输数据长度,然后开始传输就可以了。

2023-08-08 00:59:01 2042

原创 per-cpu 变量

per-cpu 变量是 2.6 内核的一个有趣特性。当建立一个 per-cpu 变量时,系统中的每个处理器都会拥有该变量的特有副本。这看起来很奇怪,但它有其优点。对 per-cpu 变量的访问(几乎)不需要锁定,因为每个处理器在其自己的副本上工作。per-cpu 变量还可以保存在对应处理器的高速缓存中,这样,就可以在频繁更新时获得更好的性能。

2023-07-22 23:00:04 1051

原创 STM32 串口 DMA 接收任意长度数据

这里是转变了一个思路,单纯从 DMA 角度解决问题貌似找不到很好的答案,那就转换到串口上来。因为本身的工作是串口 DMA 接收任意长度数据。

2023-07-16 23:20:03 2553

原创 STM32 DMA 传输类型调试记录

源地址:(uint32_t)&huart->Instance->DR,即串口的数据寄存器目的地址:用户自定义的一个 buf数据长度:传送的数据长度

2023-07-14 02:52:57 1660

原创 CMA

CMA 全称叫做 continuous memory allocator,它是为了便于进行连续物理内存申请的一块区域,一般我们把这块区域定义为 reserved-memory。

2023-07-04 01:33:28 1251

原创 海上明月共潮生【InsCode Stable Diffusion 美图活动一期】

只能输入英文提示词。。。

2023-07-04 00:36:33 1015 1

原创 linux 下查看 USB 设备

在每个 USB 设备目录下都有一些参数来展示该设备的属性信息。

2023-06-22 23:05:09 7227 1

原创 perf 工具测量 cache 命中率

今天我们使用 perf 工具,实际测量 cache miss 的比率是多少,这将会使你更加深刻地了解 cache 及其对性能的影响。

2023-06-22 20:28:01 3712 3

STM32 串口 DMA 接收任意长度数据

参考博客:https://liyongjun.blog.csdn.net/article/details/131756421

2023-07-16

自己动手写一个操作系统-MBR(5)

自己动手写一个操作系统——MBR(5) https://mp.csdn.net/mp_blog/creation/success/128771016

2023-01-27

ASMtest20171031.rar

stm32汇编实现闪灯和打印 启动代码

2021-08-09

Wildpackets Omnipeek 10.0.1 Drivers.rar

OmniPeek 无线抓包网卡驱动

2021-06-23

UNIX 分时系统.pdf

UNIX 分时系统.pdf

2021-01-21

linux_cmd_test.exe

Linux 命令量测试工具,博文链接:https://blog.csdn.net/lyndon_li/article/details/112424078

2021-01-10

MDIO之STM32源码

MDIO之STM32F103VGT6源码;额外包括 IIC 读写 RTL8367RB 代码。实现串口指令。博文链接:https://blog.csdn.net/lyndon_li/article/details/106002925

2020-05-08

Linux device driver中文版.pdf

Linux device driver中文版.pdf,博文参考:https://blog.csdn.net/lyndon_li/article/details/105318966

2020-04-04

FX_serial_asst.rar

三菱 FX3U 编程口通信上位机QT源码 博文链接:https://blog.csdn.net/lyndon_li/article/details/103918490

2020-01-10

OPCUA服务端客户端QT源码

OPCUA客户端和服务器实现,基于QT开发,使用开源C库op62541 博文地址:https://blog.csdn.net/lyndon_li/article/details/92579638

2019-06-17

sz rz 编译安装源码

文件传输工具的移植安装 博文介绍:https://blog.csdn.net/lyndon_li/article/details/85322619

2018-12-28

Android TCP_Client

Android TCP客户端源码 博文地址 https://blog.csdn.net/lyndon_li/article/details/82263172

2018-09-01

stm32图像采集+QT上位机源码

stm32开发OV7670源码,QT上位机源码,C语言处理图像源码

2018-08-14

RT-Thread 串口IAP升级

bootloader + APP(RT-Thread) + 上位机(linux),上位机是在PC端QT基础上移植的,想要QT源码的可以找我要

2018-07-26

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除