维信科技12月电子工程系嵌入式实习.doc_第1页
维信科技12月电子工程系嵌入式实习.doc_第2页
维信科技12月电子工程系嵌入式实习.doc_第3页
维信科技12月电子工程系嵌入式实习.doc_第4页
维信科技12月电子工程系嵌入式实习.doc_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

嵌入式实习基于Linux系统的ARM项目开发嵌入式实习的主要知识:1. 嵌入式及ARM的简单介绍2. 操作系统原理及具体管理(Linux)3. Linux下的C程序开发(编译工具、反向工程、编译流程及原理等)4. Linux下的系统开发(系统功能调用)5. ARM移植与开算机科学与技术研究的两大领域1. 通用计算机系统2. 嵌入式计算机系统 数字电路技术 微机原理与接口技术 计算机体系结构 单片机 ARM后PC时代移动互联网 物联网 应用开发方向 Android IOS Window Phone Java C+ .NET系统开发方向 系统构建(在硬件系统之上构建一个符合要求的操作系统) 驱动 传感器及设备(微机原理与接口) C C+1. 嵌入式及ARM的简单介绍 A. S3C6400 S3C2400 Samsung ARM B. RISC 精简指令集架构 Reduced Instructions Set Computer CISC 复杂指令集架构Complex Instructions Set Computer频繁使用的指令集只占整体的20%不频繁使用的指令集占到了整体80% 砍掉不常用的80%的指令集 用其它20%的常用指令集,通过算法来模拟实现, 就是精简指令集 精简指令集的两大特点:省电、稳定性高 C. 嵌入式系统的概念“专用” “形态不同” “对其它系统进行智能控制” “应用为中心” “以计算机技术为基础” “软硬件可剪裁” D. 嵌入式与PC机的区别 a. 嵌入式处理器(RISC): ARM PowerPC MIPS LongSun Alpha b. x86 处理器 (CISC): 酷睿 Pentium AMD VIA c. Intel 4004 4bit 8008 8bit 8086 16bit 80286 80386 32bit 80486 80586 32bit Pentium 酷睿 64bit EAX EBX ECX EDX d.系统的引导代码不同 PC用的BIOS Basic Input/Output System POST 加电自检 Power On Self Testing 嵌入式用的Bootloader e. 操作系统不一样 嵌入式:Linux、Android、 IOS、Windows CE、 uCOS、VxWorks、 Windows Embedded 通用: Windows、Linux、 Unix E.嵌入式需要学习哪些课程? Linux操作系统 Embedded C Linux系统高级开发 API (应用程序编程接口) ARM电路与原理 ARM汇编与编程 系统的构建与移植 系统剪裁 启动代码bootloader 驱动程序开发 Embedded C+面向对象 Qt平台图形编程 SQLite数据库系统开发 2. 操作系统原理及具体管理(Linux) A. VMware Workstation的安装 Typical 推荐安装 Custom 自定义安装 change B. Linux系统简介 Unix 的发展史 Linux系统的众多版本 Redhat Fedora 免费 蓝帽 Ubuntu 乌斑图 CentOS SUSE Linux 中标公司 Kylin 麒麟 200多种 Linux C. Linux 系统的特点 (1). 开源 GNU GPL (2). 多用户 :真正的多用户多 任务操作系统 (3). 良好的用户界面: a.UI 用户界面: GUI Graphics User Interface CLI Command Line Interface b.API 应用程序编程接口 Applications Programming 我们提供给大家的Fedora采用是 Gnome图形用户界面 Linux 内核 + Gnome (4).可靠的安全性 对用户做了严格的权限限制 系统分为超级管理员root 和 普通用户 微内核结构,不会因为其它功能的崩溃 造成整个系统的崩溃 (5). 良好的可移植性 Linux绝大部分是C开发的 Alpha MIPS PA-RISC ARM x86 PowerPC 495台 2台 (6). 丰富的网络功能 TCP/IP Web Server DNS Server Mail Server Documents Server Firewall BBS Server (7). 设备独立性 Linux系统把设备当文件来处理 灵活对Linux进行剪裁移植到不 同的系统设备中 D. 虚拟机的一些概念 Guest OS Host OS E. Linux的系统结构Linux系统的三大核心组件:a. Kernel 内核(大脑 中枢神经) 处理机管理 存储管理 设备管理 文件管理 进程(任务)管理 对计算机系统资源的协调、管理、配置都必须通过kernel来进行。 b. Shell 人与内核交互的界面 翻译官 和 解释器 Shell 负责解释命令,调用内核的相关功能,并显示结果 Fedora 系统中所使用shell的版本叫做 bash bourne-again shellc. File System 操作系统以文件(file)为单位存储、调用、传递数据。数据都以文件为一个单位保存在存储设备中。文件(file)目录(directory)文件系统构成了一个倒树状的层次结构。 F. 路径 Pathname (参照系)绝对路径: 以 / 开头相对路径:不以 / 开头Linux 系统有且只有一个根目录, / root G. Linux系统下的一些重要目录/bin 系统命令所在目录 /usr 系统程序及函数库/home 普通用户的主目录/etc 系统配置文件/dev 系统设备文件/root root用户的主目录/boot 系统启动目录 H. Shell环境的命令提示符:用户名 机器名 目录名$普通用户末尾是 $超级用户末尾是 # I. Linux的基本命令: (1) ls list 列出指定目录下的内容 选项: -l 以详细列表的方式显示内容 e.g.: ls -l /boot (2)pwd print working directory (告诉你在哪儿) 显示当前所在目录的绝对路径 (3)cd change directory 改变当前所在目录,进入指定目录 e.g.: cd /home (4)mkdir make directory 创建一个空目录 选项: -p 级联创建多层新的空目录 e.g.: mkdir -p linux/c/text e.g.: mkdir newdir (5)rmdir remove directory 删除一个空目录 注意: 不能删除非空目录 e.g.: rmdir newdir (6)file 显示指定文件的类型信息 e.g.: file newdir 目录是一个特殊的文件 : directory 文本文件 : empty ASCII text (7)touch 创建一个空文件 e.g.: touch hello.c (8)cp copy 复制一个文件,生成一个新的文件, 内容相同 选项: -r recursive 复制整个目录的全部内容 e.g.: cp oldFile newFile 复制文件 cp -r oldDir newDir 复制目录 (9)rm remove 删除指定文件和非空目录 注: rm 可以用来删除非空目录 选项: -r 删除目录 -f 强制删除 e.g.: rm oldFile 删除文件 rm -rf oldDir 删除非空目录全部内容 (10) mv move 移动 、 剪切 a.移动文件或者目录到另一个位置 b.对已经存在的文件或目录改变名称 e.g: mv oldFile newFile 改名 mv oldFile /home/weixin/linux移动(11) cat 显示文件的内容到屏幕上 e.g.: cat hello.c 显示文件(12) gedit 调用gedit文本编辑器编辑内容 e.g.: gedit hello.c (13) rpm 安装rpm包 Redhat系列操作系统的软件包大都是rpm包 e.g.: rpm -ivh qq2013.rpm 安装QQ 要执行rpm包的安装,必须具备root权限 root 的密码是123456 在Linux系统中输入密码时不显示 * e.g.: rpm -e linuxqq 删除已经安装的 e 是 erase Vmware 虚拟机可以设置共享文件夹 共享文件夹默认挂载在 /mnt/hgfs 目录下 当设置好共享目录后,就可以去/mnt/hgfs下 访问共享的那些文件 QQ mnt 的缩写是 mount ,本身就是挂载的意思 别的文件系统被挂载到/mnt/hgfs下 File System Windows : FAT FAT32 NTFS Linux : Ext3 Ext4 Linux系统是大小写区分的系统 (14) su switch user 切换用户账户的命令 e.g.: su root 输入密码时不显示 * 号,请继续输入 (15) tar 压缩和解压缩命令 在Linux系统中,有很多的压缩包格式 tar.gz是比较常见的压缩包 选项: -zxvf 用于解压缩 e.g.: tar -zxvf your.tar.gz 在当前目录下生成一个 your的子目录J. Linux系统的远程登录 Linux系统在服务器领域和嵌入式领域占有绝对的垄断地位,市场占有率超过90% Linux一般装在数据中心的服务器中,平时只能通过远程登录的方式来进行配置、维护和管理。 Putty 是一个轻巧的远程登录工具,但不安全,密码采用明文发送,用抓包工具可以很轻松获取密码。 1 Translation : 下拉菜单 选择 UTF-8 编码 computer 123456 VMware 虚拟机软件的三种网络连接方式 a.桥接bridge b.NAT 网络地址映射 c.host-only 本地连接模式 d.non 不连接网络 3. Linux下的C程序开发(编译工具、反向工程、编译流程及原理等) A. 编译执行流程 i386体系结构(1) 编写源程序 first.c(2) 预处理阶段 原料first.c 产品first.i gcc -E first.c -o first.i 编译阶段 原料first.i 产品first.s gcc -S first.i -o first.s 汇编阶段 原料first.s 产品first.o gcc -c first.s -o first.o 链接阶段 原料first.o 产品first gcc first.o -o first(3) 执行代码 ./first first.i 经过预处理后的源代码文件 first.s 汇编语言源文件 first.o 目标文件(二进制) first 可执行程序 预处理指令: #define #include 预处理指令不是C语言的关键字 也不是C的语法 只是在正式编译开始前,对编译环境做准备工作 预处理指令的动作只在预处理阶段进行工作 #include B. 开发工具(1) .文本编辑器 gedit (Unicode) Graphics Edit Linux系统上的文本编辑器 编写.c的文本文件 ASCII GBK Unicode ANSI(2) .编译器 gcc GNU Compiler Collections c、c+、java、fortain 它比其它的编译器效率高30%以上 gcc 集成预处理器、编译器、汇编器、链接器(3).调试器 gdb(4).项目管理器 make VC+ 6.0 IDE 集成开发环境C. Embedded C 知识点串讲 (1). C的各种版本 1971 丹尼斯 里奇 发明了C语言 1989 ANSI C89 ANSI/ISO C 1990 ISO C90 1995 ISO C95 1999 ISO C99 GNU 开源组织 Linux gcc gdb Gnome GNU C 标准 gcc -std=c90 按照C90标准编译源码 gcc -std=c99 按照C99标准编译源码 gcc -std=gnu99 按照GNU99标准编译 GNU 支持内联函数 inline (2). 字符指针常量不能被赋值 (3). 更多的知识点请参照发给大家的PDF文档 (4). 静态库 和 共享库 (Linux) 静态库 和 动态链接库(Windows) .dll dynamic linked library 库 (函数和其它资源) stdio C标准库 printf scanf puts Linux系统中的库的一般格式: libxxxx.a 静态库 libxxxx.so 共享库 xxxx代表库名称,使用时只需提供库名称 (5). 创建第一个多文件的程序架构 Calculator 计算器 main.c calc01.c calc02.c calc.h main() add() multiply() sub() divide() a. 生成代码库的目标程序 gcc -c calc.c -o calc.o b. 创建静态库 ar -crv libcalc.a calc.o c. 编译生成最终的可执行程序 gcc main.c -L. -lcalc -I. -L. 通知gcc在当前目录下找库 -lcalc 通知gcc库名叫calc -I. 通知gcc头文件在当前目录下 4. Linux下的系统开发(系统功能调用) A. 项目项目的组织架构Project Name: Music PlayerVersion: 1.0bin includelibsrcdocbak B.Linux系统调用(调用函数)程序员利用系统提供的 API访问系统的功能,从而使用操作系统管理的各种资源。 播放声音文件用到的系统调用函数如下:open() 打开声卡 打开文件ioctl() 用于设置系统设备参数,改变设备运行状态 , 是与系统设备进行通信的最重要的函数read() 从设备或文件中读取数据 write() 往设备或文件中写入数据 C. MP3 原理Mp3的一些重要参数:声道、采样率、位速声音是模拟量,计算机只能保存离散量,所以声音在计算机中保存需要压缩,会涉及到采样的概念。 一个声道 16bit 立体声就是双声道 128kbps kilo bits / s char audio_buffer4096 缓存 D. 声音播放的基本工作流程 a. open()打开声卡 b. ioctl()设置好声卡的读取格式 包括声道、比特率、播放速率 c. open()打开声音文件 d. 循环读取read()数据到缓存中 再写入声卡设备,驱动声卡发声 E. 项目实施: 分小组进行开发,开发良好的用户交 互界面,完成ARM平台下的Linux系 统音乐播放程序。 5. ARM移植与开发 A. ARM平台与x86平台采用不同的指令系统,故x86下编译的音乐播放器无法在ARM平台上直接运行,需要进行交叉编译。交叉编译采用 arm-linux-gcc编译器 B. arm-linux-gcc的安装步骤 A.arm-linux-gcc-4.3.2下载地址: (/dl.php?file=arm-linux-gcc-4.3.2.tgz)B.Arm-linux-gcc-4.3.2安装步骤:下载arm-linux-gcc-4.3.2.tgz大约84m首先以root用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论