自定义博客皮肤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

嵌入式软件工程师

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

原创 使用 gzexe 压缩和执行 shell 脚本

gzexe 是一个可以压缩 shell 脚本的工具。它通过使用 gzip 将脚本压缩成一个更小的文件,同时保留脚本的可执行性。压缩后的脚本在执行时,会自动解压缩并运行原始脚本内容。

2024-07-23 23:23:35 723

原创 syslogd: 系统日志守护进程

将某个进程的日志写入特定的 log 文件

2024-07-16 23:48:34 922

转载 日渐离谱的 USB 命名规范

追溯重命名

2024-07-15 08:15:00 34

原创 pstore 存储内核崩溃日志

pstore(Persistent Storage)是 Linux 内核提供的一种机制,最初是用于系统发生oops 或 panic 时,自动保存内核 log buffer 中的日志。不过在当前内核版本中,其已经支持了更多的功能,如保存 console 日志、ftrace 消息和用户空间日志。同时,它还支持将这些消息保存在不同的存储设备中,如内存、块设备或 mtd 设备。

2024-07-11 08:45:00 544

原创 使用 /proc/sysrq-trigger 进行系统调试和故障排除

/proc/sysrq-trigger 是 Linux 内核提供的一个接口,它允许用户通过写入特定命令来触发系统请求(SysRq)功能。

2024-07-03 22:41:56 1055

原创 /proc/config.gz

有时候,我们想知道一个运行着的内核都打开了哪些编译选项,当然,查看编译环境的 .config 文件是一个不错的选择,除此之外,还有没有别的办法呢?当然有,那就是 /proc/config.gz。

2024-07-01 23:04:59 291

原创 CUDA

CUDA 允许开发人员利用 NVIDIA GPU 的并行计算能力来加速应用程序的执行。CUDA 使开发人员能够使用类似 C 语言的编程语言来写代码,并通过 CUDA 编译器将其编译成可以在 GPU 上运行的代码。

2024-06-27 08:15:00 381

原创 您的计算机时间有误

SSL 证书具有一定的有效期限,一旦证书过期,它就不再被认为是可信的。所以,如果计算机的时间和服务器的时间不同步,可能会导致认为证书已过期,从而拒绝提供服务。

2024-06-11 21:45:00 296

原创 netplan

netplan 是 ubuntu 17.10 版本中引入的一种全新的命令行网络配置程序,用于在ubuntu系统中轻松管理和配置网络设置。

2024-05-27 01:02:28 799

原创 AppImage 创建快捷方式

在桌面右击,点击允许启动后,图标就显示正常了,双击图标,就可以正常运行了

2024-05-10 01:52:09 647

原创 ASAN

ASAN 是 Address Sanitizer 的简称,是 GCC 自带的内存问题检查工具,比较轻量级,非常适合单元测试时检查内存问题。使用也比较简单,只需要在编译时加上 `-fsanitize=address` 选项即可。

2024-04-25 22:15:00 853

原创 Linux kernel 墙上时间

果然,Linux 系统时间不走了。

2024-04-14 23:15:00 486

原创 性能优化——避免使用除法

ARM 硬件上不支持除法指令。编译器是通过调用 C 库函数来实现除法运算的,要花费 20~100 个周期。如果不能避免除法运算,那么就尽量使除数和被除数是无符号的整数。

2024-03-31 19:54:15 447

原创 字符设备驱动编写

每一个主设备号(major) 对应 /proc/devices 下的一个设备,使用 register_chrdev() 创建。每一个次设备号(minor) 对应 /dev/ 下的一个设备文件,使用 mknod 或 device_create() 创建。

2024-03-15 21:45:00 950

原创 gdb 调试记录

持续更新。。。

2024-03-05 22:34:49 483

原创 内核打印应用程序出错信息,DEBUG_USER

当用户程序由于异常而崩溃时,内核可以打印一条简短的消息来说明问题所在。这有时对调试很有帮助,但对生产系统没有任何作用。大多数人应该在这里说 N。此外,你需要在内核命令行上传递 user_debug=N 来启用此特性。

2024-02-29 22:32:54 820

原创 ASLR 和 PIE

ASLR 不负责代码段以及数据段的随机化工作,这项工作由 PIE 负责。但是只有在开启 ASLR 之后,PIE 才会生效。无论是 ASLR 还是 PIE,由于颗粒度问题,被随机化的都只是某个对象的起始地址,而在该对象的内部依然保持原来的结构,也就是说相对偏移是不会变的。

2024-02-26 21:43:45 742

原创 watchpoint

内存被踩,通过 watchpoint 找到真凶。

2024-02-22 21:57:10 419

原创 Kernel 地图

看内核代码,先看 Makefile 和 Kconfig。

2024-02-19 22:03:57 899

原创 PAGE_OFFSET

PAGE_OFFSET 的值支持通过 Kconfig 配置,其默认的值是 0xC0000000,即用户空间 3GB,内核空间 1GB。当然这个可以由我们动态配置,可以配置 PAGE_OFFSET 为 0x80000000,即用户空间和内核空间均为 2GB。

2024-01-31 23:15:00 357

原创 CPU 如何识别用户空间不同进程的虚拟地址

每个进程都有自己的页表。

2024-01-23 21:45:00 454

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

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

2024-01-19 00:59:09 499

原创 x86 寄存器

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

2024-01-17 22:15:00 844

原创 ARM 寄存器

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

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

原创 pci_enable_device()

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

2023-12-25 22:15:00 1262

原创 USB2.0 软件篇

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

2023-12-20 22:30:00 1029

原创 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 971

原创 USB2.0 Spec 中文篇

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

2023-12-14 22:15:00 1931

原创 DHCP Host Name

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

2023-12-05 23:37:16 1147

原创 genimage 打包镜像

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

2023-11-29 23:15:00 805

原创 /dev/root

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

2023-11-27 01:42:38 925

原创 uboot 添加命令

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

2023-11-15 23:40:29 318

原创 uboot 和 内存地址

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

2023-11-09 23:12:20 1308

原创 PCI、PCIe 一篇搞定

PCI、PCIe 概述

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

原创 SD NAND

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

2023-10-24 22:45:00 1479 2

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

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

2023-10-23 00:16:53 412

原创 进程数据结构——task_struct

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

2023-10-17 22:45:00 394

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

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

2023-10-09 22:05:40 3186

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

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

2023-09-29 06:30:00 459

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

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

2023-09-17 21:56:06 784

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

linux系统中SD卡新建分区教程.pdf

博文链接:https://blog.csdn.net/lyndon_li/article/details/115765971

2021-04-16

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关注的人

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