摘要: 参考博客: https://blog.csdn.net/q1425857916/article/details/128955528 https://blog.csdn.net/Jacey_cai/article/details/133221280 https://learn.microsoft.co 阅读全文
posted @ 2024-03-11 03:11 lethe1203 阅读(34) 评论(0) 推荐(0) 编辑
摘要: EMMC/NAND:embedded multi media card,ROM一般采用emmc和ufs,他们也是采用nand flash芯片,emmc和ufs一般只有一片或很少flash UFS:Univeral Flash Storage,可以视为emmc的进阶版,一般低端机用emmc,高端机用u 阅读全文
posted @ 2024-03-10 20:01 lethe1203 阅读(11) 评论(0) 推荐(0) 编辑
摘要: CMD命令: calc 寄存器 devmgmt.msc 设备管理器 dvdplay DVD播放器 explorer 打开资源管理器 notepad 打开记事本 magnify 放大镜实用程序 mspaint 画板 mstsc 远程桌面连接 narrator 屏幕“讲述人” osk 打开屏幕键盘 re 阅读全文
posted @ 2024-03-10 19:56 lethe1203 阅读(31) 评论(0) 推荐(0) 编辑
摘要: ARM Developer: https://developer.arm.com/documentation/100942/0100/Hypervisor-software?lang=en linux opengrok: https://elixir.bootlin.com/linux/v6.7-r 阅读全文
posted @ 2024-03-10 19:41 lethe1203 阅读(9) 评论(0) 推荐(0) 编辑
摘要: Baremetal 不讨论多级cache的情况下,裸驱两种关于dcache的操作: flush_dcache_all(); // 将cache里面的东西刷入内存 invalidate_dcache_all(); // 将数据缓存中的所有内容无效化(invalidate)。该指令一般用于确保缓存中的数 阅读全文
posted @ 2024-03-10 18:08 lethe1203 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 参考博客: 与程序员相关的CPU缓存知识 ARM存储器之:高速缓冲存储器Cache MMU:memory management unit,称为内存管理单元,或者是存储器管理单元,MMU是硬件设备,它被保存在主存(main memory)的两级也表控制,并且是由协处理器CP15的寄存器1的M位来决定是 阅读全文
posted @ 2024-03-10 18:02 lethe1203 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 在linux下,printf输出到控制台经历了app->libc(stdio.h)->syscall->console驱动 下面是<<linux内核完全注释>>一书中的一段描述: 继续看下write函数的实现: 以下是write()函数的基本定义: #include <unistd.h> ssize 阅读全文
posted @ 2024-03-10 16:33 lethe1203 阅读(54) 评论(0) 推荐(0) 编辑
摘要: 参考资料:《宋宝华 Linux设备驱动开发详解》 内存屏障: 内存屏障(Memory Barrier)是一种硬件或软件机制,用于协调并发访问共享资源时的数据一致性。它可以控制处理器和缓存对内存操作的顺序和时序,从而确保共享变量的读写操作按照预期方式进行。 barrier() 函数通常用于创建一个同步 阅读全文
posted @ 2024-03-10 16:18 lethe1203 阅读(46) 评论(0) 推荐(0) 编辑
摘要: 共用体 共用体(Union)是一种特殊的数据类型,它允许在同一个内存位置存储不同的数据类型。 共用体的所有成员共享同一块内存空间,因此同一时间只能存储其中一个成员的值。 共用体的定义和结构体类似,使用关键字union,后面跟着成员列表。每个成员可以是不同的数据类型,但共用体的所有成员都共享同一块内存 阅读全文
posted @ 2024-03-10 16:14 lethe1203 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 位运算在linux内核或裸驱中使用十分常见,下面是两种使用方式在此记录: 对寄存器进行操作: 举个例子, 1、清除bit8-bit10,并将bit8-bit10设置为0x2 reg = (reg & (~(0x7 << 8)) | (0x2 << 8)); 2、将bit4置一和置零 reg = (r 阅读全文
posted @ 2024-03-10 15:10 lethe1203 阅读(8) 评论(0) 推荐(0) 编辑