您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 维信科技12月电子工程系嵌入式实习
嵌入式实习基于Linux系统的ARM项目开发嵌入式实习的主要知识:1.嵌入式及ARM的简单介绍2.操作系统原理及具体管理(Linux)3.Linux下的C程序开发(编译工具、反向工程、编译流程及原理等)4.Linux下的系统开发(系统功能调用)5.ARM移植与开发15536903805计算机科学与技术研究的两大领域1.通用计算机系统2.嵌入式计算机系统《数字电路技术》《微机原理与接口技术》《计算机体系结构》单片机ARM后PC时代移动互联网物联网应用开发方向AndroidIOSWindowPhoneJavaC++.NET系统开发方向系统构建(在硬件系统之上构建一个符合要求的操作系统)驱动传感器及设备(微机原理与接口)CC++1.嵌入式及ARM的简单介绍A.S3C6400S3C2400SamsungARMB.RISC精简指令集架构ReducedInstructionsSetComputerCISC复杂指令集架构ComplexInstructionsSetComputer频繁使用的指令集只占整体的20%不频繁使用的指令集占到了整体80%砍掉不常用的80%的指令集用其它20%的常用指令集,通过算法来模拟实现,就是精简指令集精简指令集的两大特点:省电、稳定性高C.嵌入式系统的概念“专用”“形态不同”“对其它系统进行智能控制”“应用为中心”“以计算机技术为基础”“软硬件可剪裁”D.嵌入式与PC机的区别a.嵌入式处理器(RISC):ARMPowerPCMIPSLongSunAlphab.x86处理器(CISC):酷睿PentiumAMDVIAc.Intel40044bit80088bit808616bit802868038632bit804868058632bitPentium酷睿64bitEAXEBXECXEDXd.系统的引导代码不同PC用的BIOSBasicInput/OutputSystemPOST加电自检PowerOnSelfTesting嵌入式用的Bootloadere.操作系统不一样嵌入式:Linux、Android、IOS、WindowsCE、uCOS、VxWorks、WindowsEmbedded通用:Windows、Linux、UnixE.嵌入式需要学习哪些课程?《Linux操作系统》《EmbeddedC》《Linux系统高级开发》API(应用程序编程接口)《ARM电路与原理》《ARM汇编与编程》《系统的构建与移植》系统剪裁启动代码bootloader《驱动程序开发》《EmbeddedC++面向对象》《Qt平台图形编程》《SQLite数据库系统开发》2.操作系统原理及具体管理(Linux)A.VMwareWorkstation的安装Typical推荐安装Custom自定义安装changeB.Linux系统简介Unix的发展史Linux系统的众多版本Redhatwww.redhat.comFedora免费蓝帽Ubuntu乌斑图CentOSSUSELinux中标公司Kylin麒麟200多种LinuxC.Linux系统的特点(1).开源GNUGPL(2).多用户:真正的多用户多任务操作系统(3).良好的用户界面:a.UI用户界面:GUIGraphicsUserInterfaceCLICommandLineInterfaceb.API应用程序编程接口ApplicationsProgramming我们提供给大家的Fedora采用是Gnome图形用户界面Linux内核+Gnome(4).可靠的安全性对用户做了严格的权限限制系统分为超级管理员root和普通用户微内核结构,不会因为其它功能的崩溃造成整个系统的崩溃(5).良好的可移植性Linux绝大部分是C开发的AlphaMIPSPA-RISCARMx86PowerPCwww.top500.org495台2台(6).丰富的网络功能TCP/IPWebServerDNSServerMailServerDocumentsServerFirewallBBSServer(7).设备独立性Linux系统把设备当文件来处理灵活对Linux进行剪裁移植到不同的系统设备中D.虚拟机的一些概念GuestOSHostOSE.Linux的系统结构Linux系统的三大核心组件:a.Kernel内核(大脑中枢神经)处理机管理存储管理设备管理文件管理进程(任务)管理对计算机系统资源的协调、管理、配置都必须通过kernel来进行。b.Shell人与内核交互的界面翻译官和解释器Shell负责解释命令,调用内核的相关功能,并显示结果Fedora系统中所使用shell的版本叫做bashbourne-againshellc.FileSystem操作系统以文件(file)为单位存储、调用、传递数据。数据都以文件为一个单位保存在存储设备中。文件(file)目录(directory)文件系统构成了一个倒树状的层次结构。F.路径Pathname(参照系)绝对路径:以/开头相对路径:不以/开头Linux系统有且只有一个根目录,/rootG.Linux系统下的一些重要目录/bin系统命令所在目录/usr系统程序及函数库/home普通用户的主目录/etc系统配置文件/dev系统设备文件/rootroot用户的主目录/boot系统启动目录H.Shell环境的命令提示符:[用户名@机器名目录名]$普通用户末尾是$超级用户末尾是#I.Linux的基本命令:(1)lslist列出指定目录下的内容选项:-l以详细列表的方式显示内容e.g.:ls-l/boot(2)pwdprintworkingdirectory(告诉你在哪儿)显示当前所在目录的绝对路径(3)cdchangedirectory改变当前所在目录,进入指定目录e.g.:cd/home(4)mkdirmakedirectory创建一个空目录选项:-p级联创建多层新的空目录e.g.:mkdir-plinux/c/texte.g.:mkdirnewdir(5)rmdirremovedirectory删除一个空目录注意:不能删除非空目录e.g.:rmdirnewdir(6)file显示指定文件的类型信息e.g.:filenewdir目录是一个特殊的文件:directory文本文件:emptyASCIItext(7)touch创建一个空文件e.g.:touchhello.c(8)cpcopy复制一个文件,生成一个新的文件,内容相同选项:-rrecursive复制整个目录的全部内容e.g.:cpoldFilenewFile复制文件cp-roldDirnewDir复制目录(9)rmremove删除指定文件和非空目录注:rm可以用来删除非空目录选项:-r删除目录-f强制删除e.g.:rmoldFile删除文件rm-rfoldDir删除非空目录全部内容(10)mvmove移动、剪切a.移动文件或者目录到另一个位置b.对已经存在的文件或目录改变名称e.g:mvoldFilenewFile改名mvoldFile/home/weixin/linux移动(11)cat显示文件的内容到屏幕上e.g.:cathello.c显示文件(12)gedit调用gedit文本编辑器编辑内容e.g.:gedithello.c(13)rpm安装rpm包Redhat系列操作系统的软件包大都是rpm包e.g.:rpm-ivhqq2013.rpm安装QQ要执行rpm包的安装,必须具备root权限root的密码是123456在Linux系统中输入密码时不显示*e.g.:rpm-elinuxqq删除已经安装的e是eraseVmware虚拟机可以设置共享文件夹共享文件夹默认挂载在/mnt/hgfs目录下当设置好共享目录后,就可以去/mnt/hgfs下访问共享的那些文件QQmnt的缩写是mount,本身就是挂载的意思别的文件系统被挂载到/mnt/hgfs下FileSystemWindows:FATFAT32NTFSLinux:Ext3Ext4Linux系统是大小写区分的系统(14)suswitchuser切换用户账户的命令e.g.:suroot输入密码时不显示*号,请继续输入(15)tar压缩和解压缩命令在Linux系统中,有很多的压缩包格式tar.gz是比较常见的压缩包选项:-zxvf用于解压缩e.g.:tar-zxvfyour.tar.gz在当前目录下生成一个your的子目录J.Linux系统的远程登录Linux系统在服务器领域和嵌入式领域占有绝对的垄断地位,市场占有率超过90%Linux一般装在数据中心的服务器中,平时只能通过远程登录的方式来进行配置、维护和管理。Putty是一个轻巧的远程登录工具,但不安全,密码采用明文发送,用抓包工具可以很轻松获取密码。192.168.1.21Translation:下拉菜单选择UTF-8编码computer123456VMware虚拟机软件的三种网络连接方式a.桥接bridgeb.NAT网络地址映射c.host-only本地连接模式d.non不连接网络3.Linux下的C程序开发(编译工具、反向工程、编译流程及原理等)A.编译执行流程i386体系结构(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产品firstgccfirst.o-ofirst(3)执行代码./firstfirst.i经过预处理后的源代码文件first.s汇编语言源文件first.o目标文件(二进制)first可执行程序预处理指令:#define#include预处理指令不是C语言的关键字也不是C的语法只是在正式编译开始前,对编译环境做准备工作预处理指令的动作只在预处理阶段进行工作#includestdio.hB.开发工具(1).文本编辑器gedit(Unicode)GraphicsEditLinux系统上的文本编辑器编写.c的文本文件ASCIIGBKUnicodeANSI(2).编译器gccGNUCompilerCollectionsc、c++、java、fortain它比其它的编译器效率高30%以上gcc集成预处理器、编译器、汇编器、链接器(3).调试器gdb(4).项目管理器makeVC++6.0IDE集成开发环境C.EmbeddedC知识点串讲(1).C的各种版本1971丹尼斯里奇发明了C语言1989ANSIC89ANSI/ISOC1990ISOC901995ISOC951999ISOC99GNU开源组织LinuxgccgdbGnomeGNUC标准gcc-std=c90按照C90标准编译源码gcc-std=c99按照C99标准编译源码gcc-std=gnu99按照GNU99标准编译GNU支持内联函数inline(2).字符指针常量不能被赋值(3).更多的知识点请参照发给大家的PDF文档(4).静态库和共享库(Linux)静态库和动态链接库(Windows).dlldynamiclinkedlibrary库(函数和其它资源)stdioC标准库printfscanfputsLinux系统中的库的一般格式:libxxxx.a静态库libxxxx.so共享库xxxx代表库名称,使用时只需提供库名称(5).创建第一个多文件的程序架构Calculator计算器main.ccalc01.ccalc02.ccalc.hmain()add()multiply()sub()divide()a.生成代码库的目标程序gcc-ccalc.c-ocalc.ob.创建静态库ar-crvlibcalc.acalc.oc.编译生成最终的可执行程序gccmain.c-L.-lcalc-I.-L.通知gcc在当前目录下找库-lcalc通知gcc库名叫calc-I.通知gcc头文
本文标题:维信科技12月电子工程系嵌入式实习
链接地址:https://www.777doc.com/doc-78811 .html