摘要: 总述 DXE(Driver Execution Environment)阶段,是执行大部分系统初始化的阶段,也就是说是BIOS发挥作用,初始化整个主板的主战场。在这个阶段我们可以进行大量的驱动工作。 PEI 是 DXE 之前的阶段,负责初始化平台中的永久内存(相对于Cache来说的内存,并非ROM) 阅读全文
posted @ 2025-05-12 12:35 Tyler77 阅读(1) 评论(0) 推荐(0)
摘要: 总述 UEFI开发过程中,BIOS工程师主要关注点和工作都在于PEI(Pre-EFI Initialization,EFI前初始化)和DXE(Driver Execution Environment)阶段。 DXE阶段是我们的主战场,可以进行丰富且大量的功能驱动开发。 实际上,在UEFI Spec中 阅读全文
posted @ 2025-05-09 15:38 Tyler77 阅读(127) 评论(0) 推荐(0)
摘要: 背景 看Sutton的Reinforcement learning: An introduction,里面将策略迭代作为一种基于动态规划的方法。 书中举了个grid world的例子,非常符合书中的数学原理,有状态转移概率,每个时间步就是每个state等..... 动态规划作为一个常见的面试八股,经 阅读全文
posted @ 2024-11-20 02:28 Tyler77 阅读(163) 评论(0) 推荐(0)
摘要: 方法一:可以采用下面的方法,以32位整数为例: unsigned int v; // 32-bit word to reverse bit order // 相邻两位互相交换 v = ((v >> 1) & 0x55555555) | ((v & 0x55555555) << 1); // 相邻的一 阅读全文
posted @ 2024-09-09 22:28 Tyler77 阅读(76) 评论(0) 推荐(0)
摘要: 显示问题 裸机开发时,驱动教程的PDF里给了4.3寸LCD屏幕的设置参数。如下图所示: 但是按照这个设置,编写设备树dts文件,下载到开发板里,却出现了显示异常,具体来说就是帧率不对,图和字都是歪斜的,像果冻一样左右摇晃。但是,通过实验发现,在dts文件里将屏幕频率超频设置(大于上图的31MHz,我 阅读全文
posted @ 2024-09-01 17:18 Tyler77 阅读(293) 评论(0) 推荐(0)
摘要: 问题 在学习到Linux内核input子系统时,产生了一个疑惑。可以看到,我们改造按键中断驱动程序(请见keyinputdriver.c(内核驱动代码)),通过检测按键的上升沿和下降沿,在中断处理函数(上半部内)通过mod_timer(&dev->timer, jiffies + msecs_to_ 阅读全文
posted @ 2024-08-31 20:52 Tyler77 阅读(56) 评论(0) 推荐(0)
摘要: 正点原子Linux开发板IMX6ULL上的呼吸灯如何停止? 学习到驱动开发Linux系统自带的LED驱动控制的时候,才知道,原来该呼吸灯经过设备树配置好之后,直接由Linux内核程序配置为呼吸灯(前提是在内核中配置过,可以使用make menuconfig来去配置内核)。 所以在之前写led灯的驱动 阅读全文
posted @ 2024-08-31 01:05 Tyler77 阅读(230) 评论(0) 推荐(1)
摘要: 无法被打断的进程 在进行阻塞IO实验的时候,发现后台运行了/imx6uirqAPP /dev/imx6uirq &之后无法用kill -9 xxx杀死后台进程。 只需要将驱动中的 wait_event(dev->r_wait, atomic_read(&dev->key_release)); 修改为 阅读全文
posted @ 2024-08-29 22:17 Tyler77 阅读(15) 评论(0) 推荐(0)
摘要: 头文件 在vscode中,进行tasklet和work中断实验的时候,对于包含的头文件如下两个一直爆红: #include <linux/irq.h> #include <linux/of_irq.h> 一路追查下来,发现是缺少头文件: #include <linux/irq.h> -> #incl 阅读全文
posted @ 2024-08-29 21:20 Tyler77 阅读(192) 评论(0) 推荐(0)
摘要: 首先上结论:快速排序算法的时间复杂度是O(nlogn)。 阅读全文
posted @ 2024-08-24 13:40 Tyler77 阅读(39) 评论(0) 推荐(0)