05 2021 档案
摘要:1、编译工具链: 预处理用预处理器,编译用编译器,汇编用汇编器,链接用链接器,这几个工具再加上其他一些额外的会用到的可用工具,合起来叫编译工具链。gcc就是一个编译工具链。 2、预处理的意义(1)编译器本身的主要目的是编译源代码,将C的源代码转化成.S的汇编代码。编译器聚焦核心功能后,就剥离出了一些
阅读全文
摘要:参考阅读: http://www.cnblogs.com/dolphin0520/archive/2011/09/17/2179466.html http://blog.csdn.net/sno_guo/article/details/8042332 https://blog.csdn.net/le
阅读全文
摘要:1、C语言没有String类型,C语言中的字符串是通过字符指针来间接实现的。 2、C语言中定义字符串方法:char *p = "linux";此时p就叫做字符串,但是实际上p只是一个字符指针(本质上就是一个指针变量,只是p指向了一个字符串的起始地址而已)。 3、C语言中字符串的本质:指针指向头、固定
阅读全文
摘要:1、内存是由操作系统统一管理。 为了内存管理方便又合理,操作系统提供了多种机制来让我们应用程序使用内存。这些机制彼此不同,各自有各自的特点,我们程序根据自己的实际情况来选择某种方式获取内存(在操作系统处登记这块内存的临时使用权限)、使用内存、释放内存(向操作系统归还这块内存的使用权限)。 2、在一个
阅读全文
摘要:1、uboot本身是裸机程序(1)裸机本来是没有驱动的概念的(狭义的驱动的概念就是操作系统中用来具体操控硬件的那部分代码叫驱动)(2)裸机程序中是直接操控硬件的,操作系统中必须通过驱动来操控硬件。这两个有什么区别?本质区别就是分层。 2、uboot的虚拟地址对硬件操作的影响(1)操作系统(指的是li
阅读全文
摘要:1、环境变量的作用 让我们可以不用修改uboot的源代码,而是通过修改环境变量来影响uboot运行时的一些数据和特性。 譬如说通过修改bootdelay环境变量就可以更改系统开机自动启动时倒数的秒数。 2、环境变量的优先级 (1)uboot代码当中有一个值,环境变量中也有一个值。uboot程序实际运
阅读全文
摘要:1、uboot命令体系的实现代码在uboot/common/cmd_xxx.c中。有若干个.c文件和命令体系有关。(还有command.c main.c也是和命令有关的) 2、每一个uboot的命令背后都对应一个函数。 3、有些uboot的命令还支持传递参数。也就是说命令背后对应的函数接收的参数列表
阅读全文
摘要:1、内核启动需要必要的启动参数 (1)uboot是无条件启动的,从零开始启动的。(2)内核是不能开机自动完全从零开始启动的,内核启动要别人帮忙。uboot要帮助内核实现重定位(从SD卡到DDR),uboot还要给内核提供启动参数。 2、启动内核第一步:加载内核到DDR中 (1)uboot要启动内核,
阅读全文
摘要:二维数组int a[2][5]和一维数组int b[10]其实没有任何本质差别。 1、二维数组a和一维数组b在内存使用效率、访问效率上是完全一样的(或者说差异是忽略不计的)。 2、二维数组的下标式访问和指针式访问 (1)一维数组的两种访问方式。以int b[10]为例, int *p = b;。b[
阅读全文
摘要:1、启动流程、重点函数标出 init_sequence cpu_init 空的 board_init 网卡、机器码、内存传参地址 dm9000_pre_init 网卡 gd->bd->bi_arch_number 机器码 gd->bd->bi_boot_params 内存传参地址 interrupt
阅读全文