《嵌入式Linux基础教程学习笔记一》

 

 

常用书目下载地址:

 

第二章

1、进程上下文和中断上下文(Page20)

当应用程序执行系统调用,造成上下文的切换而进入内核时,内核会代表这个进程执行内核代码。你会经常听到,这种情况称为内核运行于进程上下文中。相反,处理IDE驱动器的中断处理程序(ISR)也是内核代码,但运行时并不代表任何特定的进程。这种情况通常被称为内核运行于中断上下文中。

2、独立处理器、配套芯片组和集成处理器 (Page26)

      独立处理器是指那些专注于指令处理功能的处理器。与集成处理器相比,独立处理器需要额外的支持电路完成其基本操作。在大多数情况下,这意味着处理器周围需要配备一个芯片组或者一个定制的逻辑芯片,已实现一些增强功能,包括DRAM控制器、系统总线寻址配置以及外围设备(比如键盘控制器和串行端口)。独立处理器一般会提供最强的整体CPU性能。

单独处理器都需要连接支撑逻辑芯片才能访问外设,这些外设包括系统主内存(DRAM)、ROM或者闪存、系统总线(比如PCI)或者其他外设,比如键盘控制器、串行端口和IDE接口,诸如此类。执行逻辑芯片的的功能一般由配套的芯片组来完成,而这个芯片组很可能是专门为某个系列的处理器设计的。

虽然独立处理器的应用很广泛,包括一些高负载处理引擎,但是大多数的小型嵌入式系统都采用某种集成处理器或者片上系统(System On Chip,SOC)。

参考阅读:

http://pan.baidu.com/s/1eQGbs5c

http://www.cnblogs.com/pengdonglin137/p/3690410.html

3、查询本机的内核的发布信息

cat /proc/version

4、顶层源码目录

在本书中,会常常提到顶层源码目录。这时,我们指的是内核源码树的最高一层目录。顶层源码目录包含以下列出的子目录:

            arch/         block/         crypto/        Documentation/ 
            drivers/     firmware/    fs/               include/   
            init/          ipc/             kernel/         lib/ 
            mm/         net/            samples/      scripts/   
            security/    sound/       usr/              virt/

5、编译内核是显示详细编译过程

如: make  ARCH=arm CROSS_COMPILE=arm-linux- V=1 uImage

   1: make V=0|1 [targets] 0 => quiet build (default), 1 => verbose build
   2: make V=2   [targets] 2 => give reason for rebuild of target
   3: make O=dir [targets] Locate all output files in "dir", including .config
   4: make C=1   [targets] Check all c source with $CHECK (sparse by default)
   5: make C=2   [targets] Force check of all c source with $CHECK

6、清理

有几个make命令会删除配置文件而不会给出任何警告。最常见的就是make distclean(此外还有make mrproper)。这个make目标的设计初衷是上内核代码树回到原始的、未配置的状态。这包括删除源码树中所有的配置数据,当然也会删除原先的.config文件。

   1: Cleaning targets:
   2:   clean          - Remove most generated files but keep the config and
   3:                     enough build support to build external modules
   4:   mrproper      - Remove all generated files + config + various backup files
   5:   distclean      - mrproper + remove editor backup and patch files

7、bzImage和zImage  (Page61)

很多架构和机器类型都需要一个二进制镜像目标,而这个目标与具体使用的架构和引导加载程序有关。比较常见的这类目标是zImage。对于很多架构来说,这就是默认的二进制镜像目标,可以被加载到目标嵌入式系统中并运行。新手常犯的一个错误就是将bzImage指定为make的目标。然而,bzImage目标是针对x86/PC架构的。有一个常见的错误观点,认为bzImage是指经过压缩工具bzip2压缩过的镜像,其实不然,bzImage是指大(big)的zImage。

8、make menuconfig

在顶层目录执行make menuconfig ,然后再顶层Makefile中的:

459 %config: scripts_basic outputmakefile FORCE
460         $(Q)mkdir -p include/linux include/config
461         $(Q)$(MAKE) $(build)=scripts/kconfig $@

%config可以匹配*config,然后进入script/kconfig中执行 make  menuconfig,

7 ifdef KBUILD_KCONFIG
8 Kconfig := $(KBUILD_KCONFIG)
9 else
0 Kconfig := arch/$(SRCARCH)/Kconfig
1 endif
2 
3 xconfig: $(obj)/qconf
4         $< $(Kconfig)
5 
6 gconfig: $(obj)/gconf
7         $< $(Kconfig)
8 
9 menuconfig: $(obj)/mconf                                                    
0         $< $(Kconfig)
1 
2 config: $(obj)/conf
3         $< $(Kconfig)
4 
5 oldconfig: $(obj)/conf
6         $< -o $(Kconfig)

其中Kconfig是arch/arm/Kconfig,对于menuconfig,配置工具是mconf,他可以解析Kconfig文件。

 

《嵌入式Linux基础教程学习笔记一》,布布扣,bubuko.com

《嵌入式Linux基础教程学习笔记一》

上一篇:Linux安装Oralce 11g问题


下一篇:linux http虚拟主机的实现(3种方法)