摘要: 1. 归并排序 1.1 归并排序的原理 以数组 [2, 1, 3, 6, 5, 2] 为例来讲解归并排序的思路。首先,将待排序数组均分为两个数组,并将这两个数组排序。结果即 [1, 2, 3] 和 [2, 5, 6]。接下来,将这两个数组合并,使其整体有序。思路是创建一个 buffer,从这两个数组 阅读全文
posted @ 2021-08-18 18:25 Albert-陌尘 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 1 时间复杂度 1.1 常数操作 如果一个操作和样本的数据量没有关系,每次都在固定时间内完成,就称其为常数操作。 譬如根据下标从数组中取出元素的操作,与 array 中的元素个数无关,因此是常数操作。如果换成链表,想获取某个位置的元素,需要从头开始遍历,就不是常数操作了。 1.2 什么是时间复杂度 阅读全文
posted @ 2021-08-18 18:24 Albert-陌尘 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 1. 拆解编译过程 1.1 Windows 编译 在 Windows 上开发,通常会使用 Visual Studio 等 IDE。代码写完后直接点编译按钮,就能生成可执行文件。这种方式虽然方便,但隐藏了编译过程中更为细分的步骤。 1.2 Linux 编译 在 Linux 上开发,通常使用 GCC 编 阅读全文
posted @ 2021-01-26 15:16 Albert-陌尘 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 1. printk 优先级分类 printk 是内核态打印函数。我们可以通过附加不同的“优先级”,对信息分类。 1.1 优先级列表 目前共有 8 种优先级,按优先级从高到低顺序排列如下: 1 #define KERN_EMERG 0 /*紧急事件消息,系统崩溃之前提示,表示系统不可用*/ 2 #de 阅读全文
posted @ 2021-01-25 13:04 Albert-陌尘 阅读(708) 评论(0) 推荐(0) 编辑
摘要: 1. 各平台程序开发步骤横向对比 运行在不同平台上的程序,开发过程不尽相同。为了更好地理解 ARM 裸机的开发流程,我们先和比较熟悉的 Windows、Linux 应用程序开发对比。 不同平台程序开发流程对比示意 2. 交叉编译 2.1 宿主机 编译嵌入式程序的平台称为宿主机,譬如运行 Ubuntu 阅读全文
posted @ 2021-01-24 20:21 Albert-陌尘 阅读(913) 评论(0) 推荐(0) 编辑
摘要: 1. JZ2440 板载资源 JZ2440 板载资源示意 2. 烧录 2.1 不同 bin 文件烧录位置 JZ2440 上有 Nor Flash 和 Nand Flash,在烧录时要注意区分。 2.1.1 u-boot.bin Nor Flash、Nand Flash 均可,烧录到 0 地址。 2. 阅读全文
posted @ 2021-01-24 20:20 Albert-陌尘 阅读(1508) 评论(0) 推荐(0) 编辑
摘要: 库是已经写好的,供复用的代码。大多数程序都不是从零开始,而是在各种库的基础上开发。库其实就是可执行代码的二进制形式,它可以被操作系统加载到内存中运行。库分为两种:静态库和动态库(亦称动态链接库、共享库)。 本文从目标文件开始,逐步介绍静态库和动态库。 1. 目标文件 1.1 目标文件的概念 目标文件 阅读全文
posted @ 2021-01-21 08:42 Albert-陌尘 阅读(497) 评论(0) 推荐(0) 编辑
摘要: 1. 前置知识 1.1 硬盘 1.1.1 扇区 硬盘不是一大块完整的区域,而是由很多扇区组成,每个扇区的容量为 512 字节。 1.1.2 分区 硬盘的第一个扇区最重要,其中保存着主引导记录和分区表信息。在第一个扇区中,主引导记录(MBR,Master Boot Record)需要占用 446 字节 阅读全文
posted @ 2020-12-29 16:35 Albert-陌尘 阅读(301) 评论(0) 推荐(0) 编辑
摘要: 1. 下载 pyinstaller 下载请戳。解压即可使用。 2. 打包生成可执行文件 使用以下命令进行打包: 1 pyinstaller_path/pyinstaller.py -F source.py 命令执行后,在当前目录中会出现一个dist目录。生成的可执行文件在这个目录下。 阅读全文
posted @ 2020-12-18 13:38 Albert-陌尘 阅读(4264) 评论(0) 推荐(0) 编辑
摘要: 一个典型的 CPU 由运算器、控制器、寄存器等器件组成,这些器件靠内部总线相连。前一篇博客说的总线,相对于 CPU 内部来说是外部总线。内部总线实现 CPU 内部各个器件之间的联系,外部总线实现 CPU 和主板上其他器件的联系。 简而言之,在 CPU 中: 运算器进行信息处理; 寄存器进行信息存储; 阅读全文
posted @ 2020-12-13 21:06 Albert-陌尘 阅读(1014) 评论(0) 推荐(0) 编辑