嵌入式linux基础
一 嵌入式系统定义:嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能,可靠性,成本,体积,功耗有严格要求的专用计算机系统。
二 嵌入式学习的重点:
1 站在全局进行领会,不纠缠细节
2 了解嵌入式系统开发的流程
3 学习嵌入式系统开发的理念
4 了解嵌入式系统开发的内容
5 结合自身找到切入点,确定学习内容以及学习的方法
6 最重要的是知道做什么,而不是怎么做
三 嵌入式系统的特点:
1 嵌入式系统低功耗,体积小,专用性强。嵌入式系统与PC机的最大不同就是嵌入式CPU大多工作在为特定用户群设计的系统中,能够把PC机中许多由板卡完成的任务集成在芯片内部,从而有利于嵌入式系统设计趋于小型化。
2 为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存储于磁盘等载体中。
3 嵌入式系统的硬件和软件都必须高效率地设计,系统要精简。操作系统一般和应用软件集成在一起。
4 对软件代码质量要求很高。应该尽最大可能避免死机的情况发生。
5 嵌入式系统开发需要专门的开发工具和开发环境。
四 linux分区的形式
1 Swap分区
2 根分区/
3 Boot分区
4 其他
五 linux的目录结构
1 /bin 该目录中存放linux的常用命令。
2 /boot 该目录下存放的都是系统启动时要用到的程序。
3 /dev 该目录包含了linux系统中使用的所有外部设备,它实际上是访问这些外部设备的端口,你可以访问这些外部设备,与访问一个文件或一个目录没有区别。
4 /sbin 该目录用来存放系统管理员的系统管理程序。
5 /etc 该目录存放了系统管理时要用到的各种配置文件和子目录,例如网络配置文件,文件系统等。
6 /home 如果建立一个名为“xx”的用户,那么在/home目录下就有一个对应的“/home/xx”路径,用来存放该用户的主目录。
7 /lib 该目录用来存放系统动态链接共享库,几乎所有的应用程序都会用到该目录下的共享库。
8 /lost+found 该目录在大多数情况下都是空的。但当突然停电,或者非正常关机后,有些文件就临时存放在这里。
9 /mnt 该目录在一般情况下也是空的,你可以临时将别的文件系统挂在该目录下
10 /proc 可以在该目录下获取系统信息,这些信息是在内存中由系统自己产生的。
11 /root 超级用户的主目录
12 /tmp 用来存放不同程序执行时产生的临时文件。
13 /usr 用户应用程序和文件都存放在该目录下
六 Make工程管理器:顾名思义,是指管理较多的文件。
Make工程管理器也就是个“自动编译管理器”,这里的“自动”是指它能够根据文件时间戳自动发现更新过的文件而减少编译的工作量,同时,它通过读入Makefile文件的内容来执行大量的编译工作。
七 Makefile
1 Makefile的作用是根据配置的情况,构造出需要编译的源文件列表,然后分别编译,链接。
2 Linux内核中与Makefile相关的文件:
a 顶层Makefile:整个内核配置,编译的总体控制文件。
b .config:内核配置文件,包含由用户选择的配置选项,用来存放内核配置后的结果。
c arch/*/Makefile:位于各种CPU体系目录下的Makefile,如arch/arm/Makefile,是针对特定平台的Makefile。
d 各个子目录下的Makefile:比如drivers/Makefile,负责所在子目录下源代码的管理。
e Rules.make:规则文件,被所有的Makefile使用。
八 Makefile基本结构
a 由make工具创建的目标体(target),通常是目标文件或可执行文件
b 要创建的目标体所依赖的文件(dependency_file)
c 创建每个目标体时需要运行的命令(command)
九 Makefile格式
target:dependency_files
command
例子:
hello.o:hello.c hello.h
gcc -c hello.c -o hello.o