自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 Uboot移植

uboot中的数字都表示的是16进制。

2026-10-06 23:14:24 168

原创 LVGL 8.3 移植

记录将 LVGL(Light and Versatile Graphics Library)及其 Linux 驱动层lv_drivers移植到 ARM Linux 开发板(i.MX6ULL )的流程。

2026-09-07 00:19:59 182

原创 驱动中的并发与竞争

原子整形操作 原子位操作 —— 位操作为内存操作,不依赖于 atomic_t 类型 2. 自旋锁 进程与进程间:当使用临界区资源的时候,如果资源被其他进程A的自旋锁锁住,那么另一个进程B在访问该资源的时候便会不断的查询资源是否被释放,因此进程B不会进入休眠而是会随着时间片不断地运行,这样会浪费处理器的时间,因此自旋锁应用于短时间的轻量级加锁,如果需要长时间持有锁则不能用自旋锁。在单核SOC芯片中,自旋锁的使用会导致抢占式调度被关闭。因此如果在使用自旋锁的过程中使用了阻塞的代码使得进程进入休眠,例

2026-09-07 00:10:12 197

原创 内核启动流程

BOOT_CFG的引脚共有24个,其中的四个(BOOT_CFG1[7 : 4])决定设备类型,010X:SD;中)是整个Linux内核初始化的核心,它像一个大总管,会按顺序调用数百个初始化函数,搭建起系统的骨架。这个地址,是U-Boot和Linux内核约定的“碰头地点”。这是一段位置无关的汇编代码,主要负责检查自身是否在正确位置,如果不是则进行自我搬运,然后。:进行架构相关的特定设置,比如解析U-Boot传递过来的设备树,获取内存信息等。此后,U-Boot 的使命彻底完成,Linux 内核开始启动。

2026-09-06 01:08:15 354

原创 多任务并发-线程

非分离属性:可以被其他线程回收或者结束的线程成为非分离属性的线程。分离属性:不需要回收的线程,称为具有分离属性的线程,结束时可以被操作系统回收。线程由进程创建,在创建时会在栈区为线程分配独立的栈区空间(默认8M),让线程在条件不满足时安心"睡觉",条件满足时被"叫醒"条件变量 - 等待某个条件成立(必须配合互斥锁)信号量 - 管理资源数量(独立使用,无需互斥锁)在同一个进程中的线程共用堆区、数据区、文本区。线程是轻量化的进程,用来实现多任务并发。:配合互斥锁使用,但设计合理可避免死锁。

2026-09-01 15:07:04 242

原创 多任务并发-进程

让子进程成为一个孤儿进程(父进程先结束,子进程成为孤儿进程,将会被系统进程收养,结束时由系统进程回收。常见的孤儿进程:守护进程)exec函数族:加载并执行新程序的核心机制,允许一个进程"变身"为另一个程序。进程执行结束,需要对进程对应的资源空间进行回收,否则,该进程进入僵尸态。:系统的"祖先进程",负责初始化系统并启动所有其他进程。所有进程(除PID 1外)都有父进程,形成一棵。进程可以被杀死(信号 : IPC的一种方式)子进程结束,由其父进程回收资源空间。是Linux进程管理的核心概念,指。

2026-08-31 18:13:45 166

原创 Linux系统中程序运行时的内存分布

自动分配、自动释放。函数返回时,栈上的数据就失效了。多个进程运行同一个程序时,代码段在物理内存中可以。在 32 位系统下,堆+栈的总可用空间约。(从高地址向低地址增长),默认大小通常是。——因为 0 地址根本就不让你读。:递归层数太深、或局部大数组(如。,只记录大小,加载时才分配内存。,所以这些变量默认值就是 0。这些函数的实际代码所在位置。函数返回地址(调用完跳回哪里)的,或者用来捕获空指针访问。函数编译后的二进制代码。(从低地址向高地址增长)。,程序会崩溃(段错误)。(具体取决于栈的大小)。

2026-08-30 22:48:50 354

原创 使用HI3516CV610与IMX6ULL进行视频的编码推流与转发

整体的框架图如下:首先,修改虚拟机的默认网络配置文件/etc/network/interfacesauto lo# 双网卡配置 启动方式auto ens33# 需要在网络编辑器中,制定natauto ens36编写tcp_forwarder.c文件实现IMX6ULL上视频流的转发将该文件编译上传到IMX6ULL的/root/kjl/init文件夹内编写IMX6ULL的网络配置文件S99kjl_init,并上传到/etc/init.d/bin/sh。

2026-08-28 16:09:00 196

原创 IMX6ULL:通过SPI获取ADXL345三轴加速度

【代码】IMX6ULL:通过SPI获取ADXL345三轴加速度。

2026-08-24 12:49:03 224

原创 Linux驱动:SPI子系统

Linux SPI驱动框架层次如上图:除开硬件和用户态应用程序,由上到下分成3层:设备驱动层: spi框架使用者核心层:spi框架搭建者控制器驱动层: spi框架适配者spi.c:一方面对SPI子系统进行初始化工作,注册spi bus,注册spi_master class,同时提供spi设备驱动对spi总线进行操作的API。另一方面SPI子系统对spi控制器层,提供注册控制器的api和回调操作函数。

2026-08-24 01:31:43 204

原创 基于C语言的简单飞机游戏

最近在B站上看到一位老师用VC++6.0编写游戏的教程,自己尝试了一下十分有意思,这里是链接:【C语言/EasyX】做游戏,学编程 C语言/EasyX游戏开发【自取课程资料,评论区置顶】_哔哩哔哩_bilibili 运行程序后会出现下面的界面: 可看到由 * 组成的飞机和由 O 表示的目标物, 点击 W S A D 键可以分别控制飞机的上下左右移动, 点击空格键可以发射激光,当激光击中目标物后,目标位置变化...... 开炮!!!!啾啾啾~ 下面是完整的代码: /* ...

2021-09-18 00:21:29 1442

空空如也

空空如也

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

TA关注的人

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