三级嵌入式系统_第1页
三级嵌入式系统_第2页
三级嵌入式系统_第3页
三级嵌入式系统_第4页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

1、精品文档三级嵌入式系统学习总结一 第一章1. 嵌入式系统概论嵌入式系统中的软件一般都固化在只读存储器中,用户不能随意更改其中的程序功能。嵌入式系统的逻辑组成: 1)处理器 2 )存储器 3 ) I/O 设备与 I/O 接口 4 )数据总线5)软件嵌入式处理芯片有四种类型: 1)微处理器 2 )数字信号处理器 3 )微控制器(单片机)4)片上系统微控制器MCU的低端产品并不会因为高端产品的出现而衰落在 32 位 MCU中,绝大多数使用RAM内核EDA:电子设计自动化IP 核可以分为三种:软核、硬核、固核2.嵌入式系统与数字媒体计算机中常用的最广泛的西文字符及其编码是ASCII 字符集和ASCII

2、 码,即美国标准信息交换码,共有128 个字符,一个字符占一个字节。我国目前广泛使用的汉字编码国家标准有GB2312和 GB18030GB2312只有 6763 个汉字,不够用GB18030字符集与国际标准 UCS/Unicode 字符集基本兼容。 GB18030采用不等长的编码方法,单字节编码表示 ASCII 码,双字节编码表示汉字,与 GB2312保持向下兼容,四字节编码表示其他字符Unicode 最新版本是6.3 。 UCS/Unicode 在计算机中具体实现时采用不同的编码方案,最常用的是 UTF-8 和 UTF-16, UTF-8 采用的是单字节可变长编码;UTF-16 采用的是双字

3、节可变长编码文本的类型可以分为简单文本、丰富格式文本、超文本图像的数据量 =图像水平分辨率 * 图像垂直分辨率 * 像素深度 /8 (像素深度指的是每个像素用多少个二进制数来表示)数字视频的数据量非常大,在进行传输时必须进行压缩,压缩编码标准是国际标准化组织(ISO)制定的,其名称为MPEG。无线局域网采用的协议主要是IEEE 802.11 (俗称 WIFI )3. 数字通信与计算机网络微波是一种 300MHz-300GHz的电磁波计算机网络的组成:1)计算机等智能电子设备2)数据通信链路3)通信协议4)网络软件以太局域网:1)发送数据设备必须把要传输的数据分成小块(帧)进行传输,一次只能传输

4、1 帧;2)局域网中的每一个终端都有自己唯一的标识,称为物理地址或MAC地址,在发送的每一帧数据中,必须包含自己的MAC地址和接收终端的MAC地址3) IP 协议定义了主机的概念,所有主机及使用一种统一格式的地址标识,称为IP 地址。4)以太局域网大多是由集线器或者交换机组网计算机网络的类型:1)局域网2 )城域网2)广域网IP 地址分为A、 B、C 三类。IP 是由四段数字组成,共32 位, 8 位一段。A 类 IP 段到 段和 127 段不使用 )。1欢迎下载精品文档B类IP段128.0.0.0到 191.255.255.255C类IP段192.0.0.0到 223.255.255.255

5、XP默认分配的子网掩码每段只有255或 0A 类的默认子网掩码255.0.0.0一个子网最多可以容纳1677 万多台电脑B 类的默认子网掩码255.255.0.0一个子网最多可以容纳6 万台电脑C类的默认子网掩码255.255.255.0一个子网最多可以容纳254 台电脑二 第二章1. 嵌入式处理器嵌入式处理器按照指令集可以分为复杂指令集结构和精简指令集结构,按存储机制可以分为冯诺依曼结构及哈佛结构,按字长可以分为8 位、16 位、32位等精简指令集结构采用加载和存储两种指令对存储器进行读写操作。ARM内核采用多层次的存储结构,在处理器与主存储器之间加入CACHE,综合了哈佛结构和冯诺依曼结构

6、的优点。ARM处理器的主流为 32 位,其主要特征如下: 1)单周期操作2 )只是用加载 / 存储指令访问内存 3 )指令长度固定4)三地址指令格式5 )指令流水线格式6 )低功耗设计ARM由三种指令集,分别是:1) ARM指令集 2 ) Thumb指令集3 ) Thumb-2 指令集2. 典型 ARM处理器介绍ARM处理器分为 5 类,分别是: 1)经典 ARM处理器2) ARM Cortex 嵌入式处理器3 )ARM Cortex 实时嵌入式处理器4) ARM Cortex 应用处理器5 ) ARM专家处理器ARM Cortex 处理器包括:1) Cortex-A面向高端应用的处理器2)

7、Cortex-R面向实时控制的处理器3 ) Cortex-M面向微控制器的处理器3. ARM处理器体系结构ARM处理器的工作状态:1) ARM状态,即 32 位状态2) Thumb 状态,即16 位状态3 )调试状态ARM处理器有7 种工作模式,分别是1)用户模式 User2 )快速中断模式 FIQ3 )外部中断模式 IRQ4 )管理模式 SVC5 )中止模式 ABT6)未定义指令模式UND7)系统模式 SYSARM处理器由37 个寄存器,包括 31 个通用寄存器和6 个状态寄存器,通用寄存器中不分组的有 8 个,即 R0-R7。ARM处理器用两种模式存储数据,一是大端模式,即32 位的高字节

8、存放在低地址中,低字节存放在高字节中;二是小端模式,即32 位的高字节存放在高地址中,低字节存放在低字节中。MMU,即存储器管理模块,作用是进行虚拟地址到物理地址的映射、存储器访问权限控制MPU是存储器保护单元4. ARM处理器指令集指令的条件码:EQ:相等NE:不相等CS:无符号数大于或等于CC:无符号数小于HI:无符号数大于LS:无符号数小于或等于GE:带符号数大于或等于。2欢迎下载精品文档LT:带符号数小于GT:带符号数小于或等于LE:带符号数小于或等于PL:正数或0块拷贝寻址举例:LDMIA R0,R1,R2,R5,R9R1R0,R2R0+4, R3R0+8,R4R0+12STMIA

9、R0,R1-R7 R0R1, R0+4R2, R0+8R3,R0+12R4,R0+16R5程序状态寄存器访问指令举例:MRS R0, CPSR 传送 CPSR中的值到 R0MSR CPSR, R0 传送 R0 的值到 CPSRs5. ARM汇编语言程序设计意会三 第三章1. 嵌入式系统硬件组成概述最小系统的构成:嵌入式处理器、存储器、复位电路、电源电路、时钟电路、调试测试接口典型嵌入式应用系统的硬件组成:最小硬件系统、前向通道、 后向通道、人机交互通道以及相互互联通信通道。前向通道即输入接口,由模拟量输入接口和数字量输入接口组成;后巷通道即输出接口,由模拟输出接口和数字输出接口组成;人机交互通

10、道即输入输出接口;2.嵌入式处理芯片AMBA( Advanced Microcontroller Bus Architecture)先进微控制器总线体系结构AMBA规定了两种类型的总线,分别是系统总线和外围总线,通过桥接器进行连接与系统总线连接的部件: 电源及时钟控制器、 内核、 DMA、外部存储器控制接口、 USB主机、SRAM、中断控制器、 LCD控制器;与外围总线连接的部件: GPIO、UART、 SPI、IIC 、IIS 、USB设备、 WDT、TIMER、RTC、PWM、ADC/DAC、 CAN、 Ethernent 。片内程序存储器常用Flash ROM,片内数据存储器常用SRAM

11、。3.嵌入式系统的存储器嵌入式系统的存储器结构:嵌入式处理器(内部L1/L2 Cache)、主存储器(内存) 、外部存储器(外存), Cache 由 SRAM承担MROM:掩膜只读存储器,出厂后信息确定,无法改变;PROM:一次可编程存储器EPROM:紫外线可擦除的只读存储器EEPROM:电擦除可编程存储器FLASH ROM:闪存; NOR FLASH和 NAND FLASH是流行的闪存新存储器: FRAM(铁电存储器) 、 MRAM(磁性存储器)存储器容量 =单元总数 * 数据位数 / 单元并行总线的存储器带宽 =总线频率 * 数据宽度 /8* 传输次数 / 总线周期串行总线的存储器带宽 =

12、总线频率 /104. I/O 接口及常用的 GPIOGPIO提供的输入具有缓冲功能,输出有锁存功能IIC 总线有两条数据线, 分别是数据线 SDA和时钟线 SCL。SCL为高, SDA由高变低时启动传输, SCL为高, SDA由高变低时停止传输。传输时高位在前,低位在后,传输的第一个字节为地址, 地址的最后一位指示数据传输方向,第 9 位为应答位。 总线控制遵循低电平优先的。3欢迎下载精品文档原则。SPI 是同步串行接口,一般使用四条线,分别是时钟、 输入、输出、 片选。 SPI 发送数据时,数据从主机中从左向右发送给从机(主机数据左对齐),从机数据从右向左发送给主机(从机数据右对齐) ,发送

13、数据时,高位在前,低位在后UART:常用于全双工串行异步通信,发数据时,低位在前,高位在后USB:最多可以连接127 个设备。 USB系统由 USB硬件和 USB软件组成。硬件中的主控制器包括一个根集线器,传输时采样翻转不归零。采用半双工差分方式传输数据。触摸屏分为电阻式和电容式5.ARM内核典型处理器芯片S3C2410是韩国三星公司制造的微处理器,以下都是S3C2410的有关介绍电源管理模块有正常模式、慢速模式、休眠模式、掉电模式。任何情况下复位操作均进入正常模式,在掉电模式和休眠模式下,只要有任何一个外部中断EINT 或者 RTC时钟中断发生,均将返回到正常模式。总共由 5 个 16 位定

14、时器timer , 4 个具备 PWM的功能。定时器输入时钟频率=PCLK/(预分频值 +1) * 时钟因子有三个 UART,UBRDIV=INT( UCLK/(波特率 *16 )-1 ,UCLK可以是 PCLK,也可以是 UEXTCLK。看门狗定时器的技术脉冲周期为: t_watchdog=1/ (PCLK/(预分频值 +1)/ 分频系数),计数初值为 WTCON=T/t_watch_dog6. 嵌入式系统外部通信接口RS-485 采用差分信号传输方式CAN总线也使用差分的方式传输四 第四章在 uC/OS-II中,任务或者中断服务可以通过事件控制模块(ECB)相其他任务发出信号1. 嵌入式系

15、统的软件组成嵌入式系统的特点:软件与硬件一体化、软件代码时空效率要求高、软件可剪裁、软件应用环境复杂、软件开发难度大、软件面向用户、面向产品、面向应用、软件产业高度分散、软件具有较长的生命周期。嵌入式系统的软件结构:简单的轮询结构(只进行查询操作) 、 带中断的轮询结构、监控式操作系统 +应用软件的结构、通用嵌入式操作系统+应用软件的结构。高端嵌入式系统的软件结果层次示例:硬件层、硬件抽象层、操作系统层、中间件层、应用软件层。中间件是指除了操作系统内核、设备驱动程序和应用软件之外的系统软件。硬件抽象层 (Hardware AbstractLayer HAL)和板极支持包 ( Board Sup

16、port Package BSP)是嵌入式系统的底层软件,引入HAL对硬件进行抽象,通过硬件抽象层应用编程接口(HALAPI)向上提供服务。BSP在系统复位之后负责系统软硬件环境的初始化,包括三个方面的内容,一是系统复位时的硬件初始化, 包括处理器芯片的初始化和电路板的初始化,二是为操作系统提供硬件相关的驱动程序支持,三是引导加载操作系统。BSP是操作系统正常运行的前提,其效率和稳定性直接影响整个系统的性能及稳定性。引导加载程序(引导程序)bootloader 是底层软件的一部分,嵌入式系统上电后首先运行引导加载程序,进行系统上电自检、硬件初始化、建立存储空间映射、配置系统参数、建立上层软件运

17、行环境,加载和启动操作系统等等。嵌入式操作系统的加载方式:1)在 ROM中直接运行操作系统代码2 )在 RAM中运行操作系。4欢迎下载精品文档统代码 3 )从外存储器加载操作系统代码运行4)从通信端口加载操作系统代码运行。引导加载程序的运行过程,一是让嵌入式系统正常运起来,与处理器体系结构相关的硬件初始化和板极初始化等操作通常在第一步完成,一般用汇编语言来写。第二是实现操作系统加载的功能,用C 语言实现。设备驱动程序是指直接与硬件相互作用并控制硬件的软件,是对硬件操作的抽象。2. 嵌入式操作系统实时系统 ( Real-TimeSystem)是必须在有限和确定的时间内对外部事件做出响应的信息系统

18、。实时系统的关键特性: 1)时间约束性 2 )可预测性 3 )可靠性 4 )交互性硬实时任务:必须在给定的时间内完成,超过时限会引起重大的错误软实时任务:超过时限不会引发致命错误,而是造成任务的服务质量下降准实时任务:通常允许偶尔错过最后时限,若超过时限,所进行的操作或计算没有任何意义。实时操作系统采用如下的机制来保持对实时任务的响应和处理的时间确定性:1)事件驱动2)多级中断嵌套处理3 )细粒度的任务优先级控制4 )实施抢占式调度。实时操作系统的实时性指标:评价实时操作系统的实时性最重要的指标是响应时间,即系统从事件请求开始到任务完成的时间间隔。除此之外,还有以下的几点:1)中断延迟时间:从

19、接收到可屏蔽中断请求到操作系统做出响应并转入中断服务程序所需要的最长时间2)任务切换时间:操作系统在两个独立且具有相同优先级的就绪态任务之间切换所需要的时间3)任务抢占时间: 系统将优先权从低优先级的任务转移到高优先级任务所需要花费的时间。嵌入式操作系统的特点:代码固化存储、可裁剪、实时性、强稳定性、硬件适应性。嵌入式操作系统的分类:1)按实时性分硬实时操作系统:如 VxWorks、 RTEMS、QNX、 uC/OS-II 、Nucleus ;软实时操作系统:如 WinCE、多种嵌入式 Linux 系统2)按开发方式:专门为嵌入式环境开发的嵌入式操作系统从通用计算机操作系统移植而来的嵌入式系统

20、3)按商业模式:免费的嵌入式操作系统商业嵌入式操作系统操作系统是由内核、用户界面、中间件、使用程序等组件组成的,内核起着最重要的作用,其作用是管理系统资源,支持多任务并发执行。单内核可以分为整体结构和分层结构两种类型。单内核的优点是性能较好系统各个组件可以相互调用。缺点是占用资源多,维护工作量大。单内核的操作系统有:Unix 、 BSD Unix 、Linux 、 MS-DOS、 Windows 9x ( Windows 95/98/ME )、 Windows CE、 Android 操作系统。微内核结构: 操作系统仅仅将必须的基本功能放入内核,其他功能在内核之外。采用纯粹微内核的操作系统有A

21、IX、 Mach、 Minix 、VxWorks、 QNX等。常见的嵌入式操作系统:VxWorks:采用的是微内核结构QNX:类 Unix 的实时操作系统,是非常成功的微内核操作系统,其内核仅仅提供进程调度、进程间通信、底层网络通信和中断处理。Nucleus PLUS :抢占式多任务商业操作系统内核RTEMS:实时多处理器系统。5欢迎下载精品文档TinyOS:专门为硬件资源极为有限的无线传感器网络应用而量身定制的操作系统eCOS:嵌入式可配置操作系统Linux 是单内核结构,采用模块化设计,支持内核线程。Linux 内核可以分为三个层次:最上层是系统调用接口、中间层是内核的核心部分、最下层是

22、BSP。Linux 内核内部包含了若干相关的组成部件,包括1)初始化部件2 )进程调度器3 )内存管理器 4 )虚拟文件系统5 )网络接口6 )进程间通信7 )可加载模块8 )设备驱动程序Linux 实时化技术的三个途径:1)内核补丁方式2 )双内核方式3 )超微内核方式嵌入式 linux发行版本: uClinux 、RTlinux 、Monta VistaLinux 、Wind RiverLinux 、RTAI、Xenomai。Android 系统采用堆层式软件架构,分为四层,从底层到高层分别是 Linux 内核、系统运行库、应用程序框架和应用程序。 其中,系统运行库由 android 运行

23、环境和组件库两部分组成。 IOS 操作系统架构分为四个层次,分别是核心操作系统层、核心服务层、媒体层、触控界面层。3. uC/OS-II 嵌入式操作系统uC/OS-II的特点:1)公开源码的高质量实时内核2)可以移植3)可裁剪、可固化4)时间确定性5)多任务6)抢占式内核7)多种系统服务uC/OS-II的源代码主要有以下几部分构成:1) 系统核心2) 任务管理3) 时钟管理4) 任务同步与任务间通信5) 内存管理6) 处理器相关代码在 uC/OS-II 中,任务是操作系统的基本调度单位,由操作系统内核管理。任务由三部分构成,分别是任务的程序代码、任务堆栈和任务控制块。每一个任务的栈空间大小不同

24、,在文件 OS_CPU.H中定义了一个数据类型OS_STK,在应用程序中定义任务堆栈的栈区只需要声明一个 OS_STK即可,如 OS_STK TaskStkTASK_STK。uC/OS-II 的任务处于五种状态之一,分别是等待态、 休眠态、 就绪态、 运行态和被中断态。休眠态指任务代码驻留在内存中还没有交给内核调度的状态;就绪态指任务已经具备运行的条件但因优先级比正在运行的任务低而暂时不能运行的状态;运行态指任务已获得处理器使用权而正在运行的状态; 等待态也称为挂起, 指正在运行的程序因为等待某一事件发生而将处理器的使用权让出给其他任务而自身挂起;被中断态指因处理器执行中断而被暂停运行的任务状

25、态。uC/OS-II 可以管理 64 个任务,有 64 个优先级, 0 是最高优先级别。最低优先级别由OS_LOWEST_PRIO来定义。任务分为用户任务和系统任务,系统预定义了两个系统任务为应。6欢迎下载精品文档用程序服务, 即空闲任务和统计任务。系统总是把最低优先级固定赋给空闲任务。uC/OS-II采用的是基于优先级的任务调度。内核通过OSIntExit()判断是否存在更高优先级的就绪任务。利用宏 OS_ENTER_CRITICAL()和 OS_EXIT_CRITICAL() 实现关中断和开中断。利用函数OSSchedLock() 和 OSSchedUnLock() 给调度器上锁和解锁。通

26、过函数OSStart ()开始任务调度之前创建函数 OSTaskCreate() 和 OSTaskCreateExt()都可以创建任务函数 OSTaskDel()既可以删除任务本身,也可以删除其他的任务。删除自己的调用形式为:OSTaskDel(OS_PRIO_SELF)函数 OSTaskDelRel() 的作用是让某个任务使用完资源后先释放资源,再执行OSTaskDel 来删除自己函 数 OSTaskSuspend() 可以 挂 起 一个 任务, 被 挂起 的 任 务只 能 等待 其他的 任 务调用OSTaskResume()函数才能实现任务恢复函数 OSTimeTick ()返回是否等待超

27、时或等待事件的任务是否超时用 UNIT32U OSTimeGet()获得 tick计数器的当前值,可以调用OSTimeSet() 改变 tick计数器的当前值。通过 OSTimeDly()或者OSTimeDlyHMSM()延迟处于运行态的任务由 OSSemCreate()函数创建信号量由 OSSemDel()函数删除一个信号量由 OSSemPost()释放信号量由 OSSemPend()等待信号量由 OSSemAccept()无等待的请求信号量由 OSSenQuery()查询信号量状态调用 OSInit ()进行内核初始化五 第五章1. 开发嵌入式系统的基础知识(1) 嵌入式系统的开发过程1)

28、 需求分析与规格说明2) 系统设计:根据规格说明书中所描述的系统需要实现的功能,确定如何实现这些功能的硬件和软件结构。3) 构件设计: 设计或者选择符合系统结构和规格说明中所需要的具体构件,有通用的构件,如 CPU、存储器芯片,也有专用的构件,如AX88796(不知道是什么玩意)4) 系统集成与测试(2)嵌入式系统的开发平台与工具嵌入式系统的开发特点1) 使用宿主机 - 目标机的开发架构2) 与底层硬件控制程序的关系密切3) 软硬件资源受到限制4) 需要固化程序IDE( Integrated Development Environment):集成开发环境(3)嵌入式系统的调试四种调试技术:1)

29、 在线仿真器( In-Circuit Emulator ICE):ICE 具有与索要开发的嵌入式系统相同的嵌。7欢迎下载精品文档入式处理器,进行调试时,用在线仿真器取代被调试系统的处理器。2) 片上调试技术JTAG3) 驻留监控软件调试:使用驻留监控软件(ResidentMonitors),即固化在目标机ROM中的程序,在目标机中运行。4) 指令集模拟器(Instruction Set Simulator ISS)在宿主机上模拟应用程序在目标机上润兴行为的一个软件工具。主要应用于没有目标机开发板硬件、有开发板硬件,但使用开发板成本高、被调试的程序模块不需要在实际开发板上执行、对模块代码进行语法

30、检查、避免因对硬件不熟悉而在调试硬件方面耗费过多精力。常用的两种指令集模拟器:ARMulator 、 SkyEye2.系统开发工具软件(1)ADS1.2 工具软件( ARM Developer Suite):支持开发的嵌入式应用软件通常是无操作系统的,即使有,也是uC/OS-II这样的小型系统。ADS1.2 的工程项目:一个工程项目至少应包括一个生产目标,即用于生成特定输出文件的生成选项以及所用的全部文件的集合。生成选项包括汇编选项、编译选项、连接选项和连接后选项。三个可执行文件的模板:1) Debug:生成的额输出文件包括所有调试信息,用于在开发过程中使用;2) Release :生成的输出

31、文件中不包括调试信息,用于生成实际发行的软件3) DebugRel:生成的输出文件包含了基本的调试信息。当地址映射关系比较简单时,使用编译、连接选项来确定输入文件的连接顺序当地址映射关系比较复杂时,使用 scatter (分散加载)格式的文件来确定输入文件的连接顺序。连接中的地址映射:ADS把编译后的目标文件信息按照3 种存储区域类型进行划分,分别是:1) RO端段:代码存储区和常数存储区,具有只读的性质2) RW段:指初始值为非0 的全局变量数据区,具有可读可写的性质3) ZI 段:指初始值为0 的全局变量数据区,包括未初始化的全局变量,具有可读可写的性质。下载时域和运行时域:下载时域是下载

32、时的存储空间;运行时域是运行时的存储空间。1) simple连接类型:应用于地址映射简单的工程项目。RW base 文本框配置的是RW字段的和 ZI 字段运行时域的地址,输入的地址值必须是字对准的,即能被4 整除。2) 对地址映射关系较为复杂的项目,使用scatter连接类型,需要提供一个scatter格式的文件( .scf )。配置文件是一个文本文件,使用BNF语法来进行描述。在 scatter类型下,下载时域的语法结构如下:Load_name Base_Add Attribute sizeLoad_name 是下载时域的名称,是下载时域的唯一标识。Base_Add 是下载时域的首地址,At

33、tribute是下载时域的数属性,可省略。size 是下载时域的容量大小。在 scatter类型下,运行时域的描述语法结构如下:Exec_nameBase_Add Attribute SizeExec_name是运行时域的名称。属性可省略。在 scatter类型下,输入端的描述结构如下:* 代表若干个任意字符,?代表一个任意字符Load_1 0x0000 0x8000。8欢迎下载精品文档Exec_1 0x0000 0x8000*(+RO)Exec_2 0x10000 0x6000*(+RW, +ZI)上述是一个简单的配置文件,定义了一个下载时域,名称为Load_1,首地址是0x0000,域的容

34、量是0x8000 ,定义了两个运行时域,第一个名称为Exec_1,首地址为0x0000,容量为0x8000 ,域中包含了所有的代码和常数,即包含了所有RO属性的输入段。第二个域中包含了所有的RW、 ZI 属性的输入段。(2)RVDS( RealView Development Suite)要使用 RVDS来调试程序,必须使用RealView-ICE仿真器RVDS的功能模块包括工程管理器 ( IDE)、编译链接器( RVCT)、调试器( RVD)和指令集仿真器( RVISS)等。RVDS能够记录 ARM CPU从开始执行程序到停止执行程序这段时间所执行的所有操作,称为 Trace 功能;而 Pr

35、ofile 功能指 RVDS可以对 Trace 功能所记录的内容进行性能分析。(3)GNU( GNUs Not Unix)是一种常用于基于Linux 操作系统的嵌入式软件的工具套件的简称。GCC是 GNU开发工具套件中的核心工具软件,是一种针对linux操作系统环境下运行程序的编译工具。它由源文件生成可执行文件的过程是预处理,编译,汇编,连接。汇编阶段,生成二进制目标文件,以为文件的结尾。Linux 操作系统中的可执行文件没有统一的文件后缀,按文件的属性来进行区分,若GCC生成可执行文件时没有指定文件名,则GCC生成一个名为a.out的可执行文件。GCC所规定的文件后缀与文件类型的对应关系:.

36、c :用 C 语言编写的源程序文件.a :由目标文件构成的源文件.C、 .cc 、 .cxx :用 C+语言编写的源文件.h :头文件,可以被其他源文件包含.i :已经预处理过的C 语言编写的源程序文件.ii:已经过预处理的C+语言编写的源程序文件.o :编译及汇编后生成的目标文件.s :编译后生成的汇编语言程序.S :汇编语言编写的源文件程序。GCC的命令及参数:基本命令格式为 gcc options filenames ,其中,options 代表编译命令所需要的参数, filename 表示命令中所涉及到的文件名称。针对不同的嵌入式处理器,GCC的命令格式不同,如针对ARM, GCC基本

37、命令格式为:arm-linux-gcc options filenamesGCC命令的参数(针对ARM)-c :仅完成编译操作而不进行编译操作,编译器把输入的文件生成后缀为.o 的目标文件。9欢迎下载精品文档-E:仅完成预处理操作而不进行后续处理操作,生成后缀为i的文件-S:仅完成预处理操作、编译操作而不进行后续操作,输出后缀为.s 的文件-o filename_out :确定编译后的输出文件名为filename_out,可以根据自己的需求确定生成的输出文件名称,但不能与源文件名称相同。若不指定,则输出为a.out-g :编译时产生一个用于调试的符号表,对元层序进行调试-O:对程序进行优化编译

38、-I dirname:将目录名为 dirname 的目录加入到源程序头文件的目录列表中-L dirname:将目录为 dirname 的目录加入到库文件的目录列表中假设源文件名称为 test.c ,以下是几个常见的GCC编译命令:arm-linux-gcc-o test test.c:生成文件名为test的输出文件Arm-linux-gcc-c-o test.o test.c:生成文件名为test.o的目标文件Arm-linux-gcc-S-o test.s test.c:生成文件名为test.s的汇编语言文件Arm-linux-gcc-E-o test.i test.c:生成名为 test.i的文件Arm-linux-gc

温馨提示

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

评论

0/150

提交评论