01 2021 档案
摘要:1. 拆解编译过程 1.1 Windows 编译 在 Windows 上开发,通常会使用 Visual Studio 等 IDE。代码写完后直接点编译按钮,就能生成可执行文件。这种方式虽然方便,但隐藏了编译过程中更为细分的步骤。 1.2 Linux 编译 在 Linux 上开发,通常使用 GCC 编
阅读全文
摘要:1. printk 优先级分类 printk 是内核态打印函数。我们可以通过附加不同的“优先级”,对信息分类。 1.1 优先级列表 目前共有 8 种优先级,按优先级从高到低顺序排列如下: 1 #define KERN_EMERG 0 /*紧急事件消息,系统崩溃之前提示,表示系统不可用*/ 2 #de
阅读全文
摘要:1. 各平台程序开发步骤横向对比 运行在不同平台上的程序,开发过程不尽相同。为了更好地理解 ARM 裸机的开发流程,我们先和比较熟悉的 Windows、Linux 应用程序开发对比。 不同平台程序开发流程对比示意 2. 交叉编译 2.1 宿主机 编译嵌入式程序的平台称为宿主机,譬如运行 Ubuntu
阅读全文
摘要:1. JZ2440 板载资源 JZ2440 板载资源示意 2. 烧录 2.1 不同 bin 文件烧录位置 JZ2440 上有 Nor Flash 和 Nand Flash,在烧录时要注意区分。 2.1.1 u-boot.bin Nor Flash、Nand Flash 均可,烧录到 0 地址。 2.
阅读全文
摘要:库是已经写好的,供复用的代码。大多数程序都不是从零开始,而是在各种库的基础上开发。库其实就是可执行代码的二进制形式,它可以被操作系统加载到内存中运行。库分为两种:静态库和动态库(亦称动态链接库、共享库)。 本文从目标文件开始,逐步介绍静态库和动态库。 1. 目标文件 1.1 目标文件的概念 目标文件
阅读全文

浙公网安备 33010602011771号