随笔分类 -  Linux&driver / 驱动&底层

摘要:一.前言 二.中断子系统 中断子系统有两个中断服务函数,中断上文服务函数和中断下文服务函数。 中断上文 中断下文 中断线程化,在中断里读取坐标值,并且上报给内核。 三.input子系统 四.iic子系统 阅读全文
posted @ 2024-12-03 20:02 Charles_hui 阅读(9) 评论(0) 推荐(0) 编辑
摘要:一.Preface 最进在项目上碰到了很多与“守护(init)进程”相关的问题,例如有: 制作根文件系统的时候需要去选择某个具体的“Init system”。 在开机加速的问题上,需要对Init程序的脚本进行“裁剪”。 kernel的启动流程,Init进程作为系统的第一个进程也非常重要。 所以这里做 阅读全文
posted @ 2024-11-05 17:41 Charles_hui 阅读(77) 评论(0) 推荐(0) 编辑
摘要:一.Preface 内核的启动过程涉及到许多内容,且包含许多细节。如果熟悉kernel的启动过程会不仅能加深对Linux系统的理解,而且对于定位kernel启动崩溃的问题、ARM架构的理解也有帮助。这里以imx6ull为例,做一个初步的总结。 二.启动kernel的入口。 1."vmlinux.ld 阅读全文
posted @ 2024-11-05 17:35 Charles_hui 阅读(50) 评论(0) 推荐(0) 编辑
摘要:一. 阅读全文
posted @ 2024-11-05 17:33 Charles_hui 阅读(6) 评论(0) 推荐(0) 编辑
摘要:一.ARMv7架构的寄存器 Arm公司的Cortex系列属于ARMv7架构,RMv7架构定义了三大分工明确的系列:“A”系列面向尖端的基于虚拟内存的操作系统和用户应用;“R”系列针对实时系统;“M”系列对微控制器。 采用ARMv7架构的常见嵌入式处理器有:Cotex-M4、M3;Cotex-M7;C 阅读全文
posted @ 2024-11-01 11:04 Charles_hui 阅读(52) 评论(0) 推荐(0) 编辑
摘要:一.What is MMU 1.ARM有多个协处理器,MMU是其中一个协处理器,用作内存管理。若应用程序想访问某块物理内存地址,MMU会将虚拟内存映射到物理内存。 2.MMU包括了页表(PT)和块表(TLB),TLB相当于PT的快速缓存。 二.What is it used for? 1.应用程序直 阅读全文
posted @ 2024-10-29 14:56 Charles_hui 阅读(44) 评论(0) 推荐(0) 编辑
摘要:一.What is Cache 1. Cache是一个CPU缓存,位于CPU与内存之间的临时存储器,它的容量比内存小但读写速度快。 2. Cache可以分为ICac和DCache 二.What is it used for? 1.CPU做一次乘法运算只需要几个周期,而做一次内存访问可能需要上百个周期 阅读全文
posted @ 2024-10-28 17:17 Charles_hui 阅读(34) 评论(0) 推荐(0) 编辑
摘要:1.imx6ull的ELCD interface支持的LCD接口分类 8080(MPU)、 DOTCLOCK(TFT+RGB) VSYNC(MPU+VSYNC) 2.寻找LCD驱动: 3.platform_driver要和platform_device挂钩,platform_device可以在代码注 阅读全文
posted @ 2024-10-28 10:38 Charles_hui 阅读(15) 评论(0) 推荐(0) 编辑
摘要:一.分析JumpToApp函数 点击查看代码 void JumpToApp(uint32_t addr) { __disable_irq();//这个函数调用会禁用中断。在跳转到新的应用程序之前,通常需要确保当前的中断状态不会干扰跳转过程。 uint32_t sp = *((volatile uin 阅读全文
posted @ 2024-10-25 20:46 Charles_hui 阅读(36) 评论(0) 推荐(0) 编辑
摘要:一.前言 IAP升级在许多场合都会用到,而且涉及到芯片的核心底层,所以特此记录。 二.流程和框架 1.flash分区 将flash分为boot_app区和user_app区 boot_app存放的起始地址为0x00000000,大小为0x00008000(32kb) user_app存放的起始地址为 阅读全文
posted @ 2024-10-25 17:15 Charles_hui 阅读(49) 评论(0) 推荐(0) 编辑
摘要:platform bus资料参考:https://www.jb51.net/article/231922.htm 阅读全文
posted @ 2024-08-21 19:56 Charles_hui 阅读(2) 评论(0) 推荐(0) 编辑
摘要:一.设定屏幕参数 1.更改设备树下的lcd节点参数 目录:arch/arm/boot/dts/imx6ull-14x14-nand-7-1024x600-c.dts 点击查看代码 &i2c2 { goodix_ts@5d { reg = <0x5d>; }; }; &lcdif { display0 阅读全文
posted @ 2024-08-21 19:00 Charles_hui 阅读(222) 评论(0) 推荐(0) 编辑
摘要:一.前言 做linux开发也有一段时间了,对整个系统已经熟悉了很多,linux是一个非常大的系统,现在对常见的驱动做一个总结,以此来加深记忆和理解。 二.常见驱动及其子系统分类 1.Linux设备分类 linux系统抽象出的设备可以分为三类:char_dev,block_dev,net_dev。字符 阅读全文
posted @ 2024-08-16 18:42 Charles_hui 阅读(185) 评论(0) 推荐(0) 编辑
摘要:一、概述 * 串口是字符设备驱动 二、串口驱动文件分析 1. 硬件相关: drivers/tty/serial/imx.c 2. 串口核心层: drivers/tty/serial/serial_core.c 3. TTY层: drivers/tty/tty_io.c 4. n_tty.c:链路规层 阅读全文
posted @ 2023-12-25 14:23 Charles_hui 阅读(182) 评论(0) 推荐(0) 编辑
摘要:一.前言 最近makefile用的比较多,网上看到一些资料,做下笔记,以备不时之需。 二.代码 代码Version1 点击查看代码 hello: main.cpp printhello.cpp fatorial.cpp g++ -o hello main.cpp printhello.cpp fac 阅读全文
posted @ 2023-11-07 19:56 Charles_hui 阅读(4) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示