嵌入式原理与应用
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.1.1 用户系统相关命令 1. 用户切换(su) 2. 用户管理(useradd 和 passwd‥) 3. 系统管理命令(ps 和 kill) 4. 磁盘相关命令(fdisk) 5. 磁盘挂载命令(mount)
百度文库
2.1.2 文件目录相关命令 1. cd:改变工作目录 2. ls:列出文件名 3. mkdir:创建目录 (rmdir:删除目录) 4. cat:显示文本文件 5: cp: 复制文件 mv:移动文件 rm:删除文件
2.1 Linux常用操作命令 X窗口系统:Linux上的一个软件(服务) Shell环境:Linux中的命令行解释程序
用户
内核
Shell
图2.1 内核、Shell和用户的关系
命令格式说明 格式中带[]的说明为可选项,其他为必选 项 选项可以多个连带写入 选项参数列表中加粗的含义是:该选项 是非常常用的选项 命令解释过程:作用、格式、常见参数、 使用说明
3. Swap交换分区 硬盘上的临时内存,相当于Windows虚 拟内存 4. 分区格式 支持多种格式 5. GRUB 负责装入内核并引导Linux系统
6. root权限 1.2.2 硬件要求 1.3 Linux文件及文件系统 1. 3.1 文件类型及文件属性 1. 文件类型 (1) 普通文件
(2)目录文件 Linux中存储文件名的唯一地方,每个 文件都被赋予一个唯一数值(索引节点) →存储在索引节点表上(Inode Table)。 Linux通过上下链接目录文件系统来实 现对整个文件系统的操作。
(1)预处理阶段
[root@localhost Gcc]# Gcc –E hello.c –o hello.i
(2)编译阶段
[root@localhost Gcc]# Gcc –S hello.i –c hello.s
(3)汇编阶段
[root@localhost Gcc]# Gcc –c hello.s –c hello.o
第1章
Linux 快速入门
1.1嵌入式Linux基础 1.1.1 Liunx发展概述 FSF(Free Software Foundation) GPL(General Public License) 1991年Linus Torvalds编写出了与UNIX兼容的 Linux操作系统内核并在GPL条款下发布。 Linux之后在网上广泛流传,许多程序员参与了 开发与修改。 1992年Linux与其他GNU软件结合,完全自由 的操作系统正式诞生。该操作系统往往被称为 “GNU/Linux”或简称Linux。
GNU开发工具(gcc gdb make Emacs) 1.1.2 Linux作为嵌入式操作系统的优势 低成本开发系统 可应用于多种硬件平台 可定制内核 性能优异 良好的网络支持
1.1.3 Linux发行版本 Linux目前已有超过250个发行版本 Red hat、Debian、Mandriva Linux 、 ubuntu 、红旗 Linux 1.1.4 如何学习Linux 实践
嵌入式系统原理与应用
朱政康
本课程主要内容
1.Linux系统基础知识 Linux系统基本概念、文件及文件系统 Linux常用命令 Linux下的C语言编程基础
2.嵌入式Linux环境的建立 嵌入式系统基础知识 嵌入式Linux开发环境的搭建 嵌入式开发中常用工具的使用
3.嵌入式Linux的应用开发 嵌入式Linux的I/O与文件系统的开发 进程控制的开发 进程间通信开发 多线程开发 (网络驱动、设备驱动、嵌入式图形界 面开发)
文件 a: 目录文件名:/etc/a 索引号:1.45.x 删除
移至
文件 a: 目录文件名:/home/a 索引号:1.420.y 建立
图1.12 目录文件与索引节点关系
(3) 链接文件 类似于Windows中的“快捷方式” (4) 设备文件 /dev
2. 文件属性
可读 可写 可执行
-rwx rwx rwx
文件拥有者 文件所有组 系统其他用户
图1.13 Linux文件属性表示方法
1.3.2 文件系统类型介绍 1. 2. 3. 4. 5. ext2 和 ext3 Swap文件系统 vfat文件系统 NFT文件系统 ISO9660文件系统
1.3.3 Linux目录结构 见图1.14
第2章 Linux 基 础 命 令
1.2 Linux安装 1.2.1 基础概念 1. 文件系统、分区和挂载
目录结构 挂 载 目录结构 分区
分区
图1.1 Liunx下目录与分区关系 图1.2 Windows下目录与分区关系图
2. 主分区、扩展分区和逻辑分区 主分区:包含操作系统启动必需的文件 和数据的硬盘分区(数量1~3个) 扩展分区:除主分区外的分区(0~1) 注意:不能直接使用 逻辑分区:数量无限制
(4)链接阶段
[root@localhost Gcc]# Gcc hello.o –c hello
3.4.2 Gcc编译选项分析
-I dir 在头文件的搜索路径列表中添加dir目录
[root@localhost Gcc]# Gcc hello1.c –I /root/workspace/Gcc/ –o – – hello1
-L dir 在库文件的搜索路径列表中添加dir目录
[root@localhost Gcc]# Gcc hello_sq.c –L /root/workspace/Gcc/lib-lsunq –o hello1_sq
3.5 Gdb调试器
[root@localhost Gdb]# Gcc –g test.oc –o hello [root@localhost Gdb]# Gdb test 进入了“(gdb)”开头的命令行界面 查看文件 (gdb) l 设置断点 (gdb) b 行号 查看断点情况 (gdb) in (gdb) fo b 查看变量值 (gdb) p 变量 单步运行 (gdb) n 或者(gdb) s 恢复程序运行 (gdb) c
头文件 源文件
network.o 目标文件 可执行文件
在makefile(Makefile)中,自顶向下说明各模块 之间的依赖关系及实现方法: network: network.o subrs.o (1) cc –o network network.o subrs.o (2) network.o: network.c netdefs.h (3) cc –c network.c – (4) subrs.o: subrs.c netdefs.h (5) cc –c subrs.c (6) 其中(3)—(6)可以简化为:(隐含的规则) network.o subrs.o: netdefs.h
3.6 Make工程管理器 大型程序维护工具
Makefile 或 makefile: 告诉make维护一个大型 程序,该做什么。Makefile说明了组成程序的 各模块间的相互关系及更新模块时必须进行的 动作,make按照这些说明自动地维护这些模块。
Netdefs.h Subrs.c network.c 编译 Subrs.o 连接 Network
6. chown:改变文件或目录的属主和组 chgrp: 改变文件或目录所属的组 7. chmod:改变文件或目录的访问权限 8. grep: 查找字符串 9. find: 搜索文件 10. locate: 查找文件 11. In: 为某一文件在另外一个位置建立一 个符合链接
2.1.4 比较合并文件相关命令(略) 2.1.5 网络相关命令(略)
第3章 Linux下的C编程基础
3.1 Linux下C语言编程概述 3.1.1 C语言简单回顾 C语言是“中级语言” C语言是结构化的语言 C语言功能齐全 C语言可移植性强
3.1.2 Linux下C语言编程环境概述 (1) 编辑器 Vi Emacs (2) 编译链接器 Gcc (3) 调试器 Gdb (4) 项目管理器 make 类似于Windows中Visual C++里的 “工程”
源代码*.c 预处理器 编译器 汇编处理 引导代码
目标代码*.o
头文件*.h
链接
可执行文件
库函数
图3.1 编译过程
3.2 进入Vi(略) 3.3 进入Emacs(略) 3.4 Gcc编译器 3.4.1 Gcc编译流程解析
预处理→编译 →汇编 →链接
#include<stdio.h> int main() { printf (“Hello ! This is our embeded world!\n”); return 0; }