课程设计上课笔记_第1页
课程设计上课笔记_第2页
课程设计上课笔记_第3页
课程设计上课笔记_第4页
免费预览已结束,剩余28页可下载查看

下载本文档

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

文档简介

1、课程设计基于 Linux 系统的 ARM 项目开发两天上午 8: 30 - 12:00 下午 13:30 - 18:00汇编语言、微机原理及接口技术课程设计的主要知识:1. 嵌入式及 ARM 的简单介绍2. 操作系统原理及具体管理 (Linux)3. Linux 下的 C 程序开发(编译工具、反向工程、编译流程及原理等)4. Linux 下的系统开发(系统功能调用)5. ARM 移植与开发计算机科学与技术研究的两大领域1. 通用计算机系统2. 嵌入式计算机系统数字电路技术微机原理与接口技术计算机体系结构单片机 ARM后PC时代移动互联网物联网应用开发方向AndroidIOSWindow Pho

2、neJavaC+ .NET系统开发方向系统构建(在硬件系统之上构建一个符合要求的操作系统)驱动传感器及设备(微机原理与接口)CC+1. 嵌入式及 ARM 的简单介绍A. S3C6400 S3C2400 Samsung ARMB. RISC 精简指令集架构Reduced Instructions Set ComputerCISC复杂指令集架构Complex Instructions Set Computer频繁使用的指令集只占整体的20%不频繁使用的指令集占到了整体80%砍掉不常用的 80% 的指令集用其它 20% 的常用指令集,通过算法来模拟实现,就是精简指令集精简指令集的两大特点:省电、稳定

3、性高C. 嵌入式系统的概念“专用” “形态不同”“对其它系统进行智能控制” “应用为中心” “以计算机技术为基础” “软硬件可剪裁”D. 嵌入式与 PC 机的区别a. 嵌入式处理器 (RISC):ARM PowerPC MIPS LongSun Alphab. x86 处理器 (CISC):酷睿 Pentium AMD VIA c. Intel40044bit80088bit808616bit802868038632bit804868058632bitPentium 酷睿64bitEAXEBXECXEDXd.系统的引导代码不同PC 用的 BIOSBasic Input/Output Syste

4、m POST 加电自检Power On Self Testing嵌入式用的 Bootloadere. 操作系统不一样嵌入式: Linux、Android、IOS 、 Windows CE、uCOS、VxWorks、Windows Embedded通用: Windows、Linux、UnixE.嵌入式需要学习哪些课程? Linux 操作系统 Embedded C Linux 系统高级开发API (应用程序编程接口) ARM 电路与原理 ARM 汇编与编程系统的构建与移植系统剪裁启动代码 bootloader驱动程序开发 Embedded C+面向对象 Qt 平台图形编程 SQLite 数据库系统

5、开发2. 操作系统原理及具体管理 (Linux) A. VMware Workstation 的安装Typical 推荐安装 Custom 自定义安装changeB. Linux 系统简介Unix 的发展史Linux 系统的众多版本免费 蓝帽Ubuntu 乌斑图CentOSSUSE Linux中标公司Kylin 麒麟200 多种 LinuxC. Linux 系统的特点(1). 开源GNUGPL(2). 多用户 :真正的多用户多任务操作系统(3). 良好的用户界面:a.UI 用户界面 :GUI Graphics User Interface CLI Command Line Interfaceb

6、.API应用程序编程接口Applications Programming我们提供给大家的 Fedora 采用是 Gnome 图形用户界面Linux 内核+ Gnome(4).可靠的安全性对用户做了严格的权限限制系统分为超级管理员root 和 普通用户微内核结构,不会因为其它功能的崩溃造成整个系统的崩溃(5). 良好的可移植性Linux 绝大部分是C 开发的AlphaMIPSPA-RISCARMx86PowerPC495台2台(6). 丰富的网络功能TCP/IPWeb ServerDNS ServerMail ServerDocuments ServerFirewallBBS Server(7)

7、. 设备独立性Linux 系统把设备当文件来处理灵活对 Linux 进行剪裁移植到不同的系统设备中D. 虚拟机的一些概念Guest OSHost OSE. Linux 的系统结构Linux 系统的三大核心组件:a. Kernel 内核(大脑中枢神经)处理机管理存储管理设备管理文件管理进程(任务)管理对计算机系统资源的协调、管理、配置都必须通过 kernel 来进行。b. Shell 人与内核交互的界面翻译官 和 解释器Shell 负责解释命令, 调用内核的相关功能,并显示结果Fedora 系统中所使用shell 的版本叫做 bashbourne-again shellc. File Syste

8、m操作系统以文件 (file)为单位存储、调用、传递数据。数据都以文件为一个单位保存在存储设备中。文件 (file)目录 (directory)文件系统构成了一个倒树状的层次结构。F. 路径Pathname (参照系)绝对路径: 以 / 开头相对路径:不以/ 开头Linux 系统有且只有一个根目录,/rootG. Linux 系统下的一些重要目录/bin系统命令所在目录/usr系统程序及函数库/home普通用户的主目录/etc系统配置文件/dev系统设备文件/rootroot 用户的主目录/boot系统启动目录H. Shell 环境的命令提示符:用户名 机器名 目录名 $ 普通用户末尾是 $超

9、级用户末尾是#I. Linux 的基本命令:(1) ls list 列出指定目录下的内容选项 :-l以详细列表的方式显示内容e.g.:ls-l/boot(2)pwdprint working directory(告诉你在哪儿 )显示当前所在目录的绝对路径(3)cdchange directory改变当前所在目录,进入指定目录e.g.:cd/home(4)mkdirmake directory创建一个空目录选项:e.g.:e.g.:(5)rmdir-p级联创建多层新的空目录mkdir-plinux/c/textmkdirnewdirremove directory 删除一个空目录注意: 不能删除

10、非空目录e.g.:rmdirnewdir(6)file显示指定文件的类型信息e.g.:file newdir目录是一个特殊的文件:directory文本文件:emptyASCII text(7)touch创建一个空文件e.g.:touchhello.c(8)cpcopy复制一个文件,生成一个新的文件 , 内容相同选项: -r recursive 复制整个目录的全部内容e.g.:cpoldFilenewFile复制文件cp-roldDirnewDir复制目录(9)rmremove删除指定文件和非空目录注: rm 可以用来删除非空目录选项: -r删除目录-f强制删除e.g.:rmoldFile删除

11、文件rm-rfoldDir 删除非空目录全部内容(10) mvmove移动 、 剪切a.移动文件或者目录到另一个位置b.对已经存在的文件或目录改变名称e.g:mvoldFilenewFile改名mvoldFile/home/weixin/linux 移动(11) cat 显示文件的内容到屏幕上e.g.:cathello.c显示文件(12) gedit 调用 gedit文本编辑器编辑内容 e.g.: gedit hello.c(13) rpm安装 rpm 包Redhat 系列操作系统的软件包大都是rpm 包e.g.:rpm-ivhqq2013.rpm安装 QQ要执行 rpm 包的安装,必须具备

12、root 权限 root 的密码是 123456在 Linux 系统中输入密码时不显示*e.g.:rpm-elinuxqq删除已经安装的e 是 eraseVmware 虚拟机可以设置共享文件夹共享文件夹默认挂载在/mnt/hgfs 目录下当设置好共享目录后,就可以去/mnt/hgfs下访问共享的那些文件QQmnt 的缩写是mount ,本身就是挂载的意思别的文件系统被挂载到/mnt/hgfs 下File SystemWindows :FATFAT32NTFSLinux :Ext3Ext4Linux 系统是大小写区分的系统(14) suswitch usere.g.:suroot切换用户账户的命

13、令输入密码时不显示* 号,请继续输入(15) tar 压缩和解压缩命令在 Linux 系统中,有很多的压缩包格式tar.gz 是比较常见的压缩包选项 :-zxvf用于解压缩e.g.:tar-zxvf在当前目录下生成一个your 的子目录J. Linux 系统的远程登录Linux 系统在服务器领域和嵌入式领域占有绝对的垄断地位,市场占有率超过90%Linux 一般装在数据中心的服务器中,平时只能通过远程登录的方式来进行配置、维护和管理。Putty 是一个轻巧的远程登录工具,但不安全,密码采用明文发送,用抓包工具可以很轻松获取密码。Translation:下拉菜单选择 UTF-8编码compute

14、r123456VMware虚拟机软件的三种网络连接方式a.桥接 bridgeb.NAT 网络地址映射c.host-only 本地连接模式d.non不连接网络3. Linux 下的 C 程序开发(编译工具、反向工程、编译流程及原理等)A. 编译执行流程(1) 编写源程序first.c(2) 预处理阶段原料 first.c产品 first.igcc-Efirst.c-ofirst.i编译阶段原料 first.i产品 first.sgcc-Sfirst.i-ofirst.s汇编阶段原料 first.s产品 first.ogcc-cfirst.s-ofirst.o链接阶段原料 first.o产品 fi

15、rstgccfirst.o-ofirst(3) 执行代码./firstfirst.i经过预处理后的源代码文件first.s汇编语言源文件first.o目标文件first可执行程序预处理指令:#define#include预处理指令不是C 语言的关键字也不是 C 的语法只是在正式编译开始前,对编译环境做准备工作B. 开发工具(1).文本编辑器geditGraphics EditLinux 系统上的文本编辑器(2).编译器gccGNU Compiler Collectionsc、 c+、 java、 fortain它比其它的编译器效率高30% 以上gcc 集成预处理器、编译器、汇编器、链接器(3)

16、.调试器gdb(4).项目管理器makeVC+ 6.0IDE集成开发环境C. Embedded C 知识点串讲(1). C 的各种版本1971丹尼斯 里奇发明了 C 语言1989ANSIC891990ISOC901995ISOC951999ISOC99GNU开源组织LinuxgccgdbGNU C标准gcc-std=c90按照 C90标准编译源码gcc-std=c99按照 C99标准编译源码gcc-std=gnu99 按照 GNU99 标准编译GNU支持内联函数inline(2). 字符指针常量不能被赋值(3). 更多的知识点请参照发给大家的PDF 文档(4). 静态库和 共享库(Linux)

17、静态库和 动态链接库( Windows).dlldynamic linked library库 (函数和其它资源)Linux 系统中的库的一般格式:libxxxx.a静态库libxxxx.so共享库xxxx 代表库名称 ,使用时只需提供库名称(5).创建第一个多文件的程序架构main.ccalc.ccalc.hmain()add()sub()multiply()divide()a. 生成代码库的目标程序gcc-ccalc.c-ocalc.ob. 创建静态库ar-crvlibcalc.acalc.oc. 编译生成最终的可执行程序gccmain.c-L.-lcalc-I.-L. 通知 gcc 在当

18、前目录下找库-lcalc 通知 gcc库名叫 calc-I.通知 gcc头文件在当前目录下4. Linux 下的系统开发(系统功能调用)A. 项目项目的组织架构Project Name: Music PlayerVersion:1.0binincludelibsrcdocbakB.Linux 系统调用(调用函数)程序员利用系统提供的 API访问系统的功能,从而使用操作系统管理的各种资源。播放声音文件用到的系统调用函数如下:open()打开声卡打开文件ioctl()用于设置系统设备参数,改变设备运行状态, 是与系统设备进行通信的最重要的函数read() 从设备或文件中读取数据write() 往设

19、备或文件中写入数据C. MP3 原理Mp3 的一些重要参数:声道、采样率、位速声音是模拟量,计算机只能保存离散量,所以声音在计算机中保存需要压缩,会涉及到采样的概念。一个声道16bit立体声就是双声道128kbpskilo bits / scharaudio_buffer4096缓存D. 声音播放的基本工作流程a. open()打开声卡b. ioctl()设置好声卡的读取格式包括声道、比特率、播放速率c. open()打开声音文件d. 循环读取 read()数据到缓存中再写入声卡设备,驱动声卡发声E. 项目实施:分小组进行开发, 开发良好的用户交互界面,完成ARM 平台下的 Linux 系统音乐播放程序 。5. ARM 移植与开发A. ARM 平台与 x86 平台采用不同的指令系统,故 x86 下编译的音乐播放器无法在ARM 平台上直接运行, 需要进行交叉

温馨提示

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

评论

0/150

提交评论