通信原理大综合课件高频全_第1页
通信原理大综合课件高频全_第2页
通信原理大综合课件高频全_第3页
通信原理大综合课件高频全_第4页
通信原理大综合课件高频全_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

3.4Linux系统目录结构

移植Linux操作系统就是修改平台相关的原文件,因此要知道这些文件在源代码树中的位置,也就要了解Linux系统目录结构,了解源代码文件的功能。Linux的源代码非常庞大、复杂,要完全阅读理解完整的内核代码几乎是不可能的,但内核代码文件的组织是非常清晰的,每个目录都对应特定功能。系统移植只是涉及其中很小一部分代码。以内核版本2.6为例介绍Linux的目录结构:1.Arch目录

arch目录包括所有硬件结构特定的内核代码。它包含24个子目录,每个子目录代表一种体系结构,如ARM、i386等,就是关于ARM等与之相兼容体系结构的子目录。并必须包含以下子目录Boot:包括启动内核的代码。Kernel:存放支持体系的核心代码。

lib:存放库函数。mm:存放内存管理代码。Math-emu:模拟FPU的代码。2、include:目录包含编译核心所需的大部分头文件。与平台无关的头文件放在include/linux子目录下,与平台有关的头文件放在include/asm/开头的子目录中。3、init:目录包含核心的初始化代码。4、mm:目录存放包括所有独立于cpu体系结构的内存管理代码。5、Kernel:目录为系统主要的核心代码。6、drivers:目录中是系统中所有的设备驱动程序。它又进一步划分成几类设备驱动,每一种有对应的子目录,如声卡的驱动对应于drivers/sound。

7、lib:目录包含了核心的库代码,不过与处理器结构相关库代码被放在arch/*/lib/目录下。

8、net:目录里是核心的网络部分代码,其每个子目录对应于网络的一个方面。

9、ipc:目录包含了核心进程间的通信代码。10、fs目录存放Linux支持的文件系统代码。不同的文件系统有不同的子目录对应,如ext3文件系统对应的就是ext3子目录。11、scripts目录包含用于配置核心的脚本文件。12、documentation目录下是一些文档,是对每个目录作用的具体说明。

进行Linux系统的移植不会涉及所有的目录。一般指修改或增加目录arch/、drivers/、fs/、include/中的某些文件就可以了第4章嵌入式系统的开发4.1ARM嵌入式系统的软件结构ARM嵌入式系统的软件通常包括固件(引导程序BootLoader)、操作系统、应用程序。对于Linux操作系统还需要有一个根文件系统。bootloader(一次固化)+内核(多次更新)+根文件系统(多次更新)4.2嵌入式系统的开发步骤先在通用计算机上编写程序,然后,通过交叉编译,生成目标平台上可以运行的二进制代码格式,最后下载到目标平台的特定位置上运行。Linux操作系统和引导程序的编译,根文件系统的制作都需要在Linux环境下进行,所以要首先在PC中安装Linux操作系统。4.2、几种常用的开发方法指令集模拟器一种利用PC机端的仿真开发软件模拟调试的方法。驻留监控软件驻留监控程序运行在目标板上,PC机端调试软件可通过并口、串口、网口与之交互,以完成程序执行、存储器及寄存器读写、断点设置等任务JTAG仿真器通过ARM芯片的JTAG边界扫描口与ARM核进行通信,不占用目标板的资源,是目前使用最广泛的调试手段在线仿真器使用仿真头代替目标板上的CPU,可以完全仿真ARM芯片的行为。但结构较复杂,价格昂贵,通常用于ARM硬件开发中4.3嵌入式开发环境的建立一、安装Linux操作系统可在

网站获得Linux操作系统。可以通过光盘或内存安装。二、开发环境配置宿主机与开发板通过串口、网口、USB口进行通信,可根据使用的端口对宿主机的端口进行配置。1、串口1启动后,先按Ctrl+A键,再按Z键(注意不是连续按,Ctrl+A松开后才按Z),进入主配置界面

2按“O”进入配置界面

3按上下键选择Serialportsetup,进入端口设置界面,这里有几个重要选项改为如下值:

(在Changewhichsetting后按哪个字母就进入哪项的配置,如按A进行端口号配置。)

A――――SerialDevice:/dev/ttyS0(端口号使用串口1)

E――――BPS/par/bits:/1152008N1(波特率)

F,E硬件流,软件流都改为NO,若要使用PC机的串口2来接板子的串口1做监控,改为:/dev/ttyS1即可。

4.选好后按ESC键退出,选择Savesetupasdf1保存退出,以后只要启动就是该配置,无需再做改动。2、网口配置

使用网口进行数据传输需要配置网口的传输协议,在Linux中主要有NFS和TFTP

配置好传输协议后,还要配置exports目录,也就是共享目录。当在目标机上mount该目录时,就像访问自己机器中的文件一样访问该目录。三、编译环境的建立ARM嵌入式系统常用的编辑工具有ADS、Keilarm和ARMgcc等。1、可以从网上下载编译好的工具链,解压缩后,修改环境变量,即可以使用。2、下载必备的源代码,自己编译,这要花费一定的时间和精力。4.4GNUGCC简介GNUGCC是一套面向嵌入式领域的交叉编译工具,支持多种编程语言、多种优化选项并且支持分步编译、支持多种反汇编方式、支持多种调试信息格式,目前支持x86、ARM7、StrongARM等多种CPU。基本功能如下:输出预处理后的C/C++源程序(展开头文件和宏替换);输出C/C++源程序的汇编代码;输出二进制的目标文件;生成静态库;生成可执行文件;转换文件格式。2、GCC编译程序的基本过程1、GCC组成C/CC++交叉编译器arm-elf-gcc通过调用其它程序实现将程序源文件编译成目标文件的功能。汇编器arm-elf-as将汇编文件转换为ELF格式的可重新定位的目标代码文件。连接器arm-elf-ld根据链接定位文件Linkcmds中的代码区、数据区、BSS区(全局变量)和栈区等定位信息将可重定位的目标模块链接成一个单一的、绝对定位的目标程序。库管理器arm-elf-ar可将多个可重定位的目标模块归档为一个函数库文件。工程管理器makemake用于自动编译、链接程序的使用工具,使用make后就不需要手工地编译每个程序文件,要使用make,首先要编写makefile。其它使用工具目标文件格式转换工具arm-elf-objcopy等。工程管理器makemake是用于自动编译、链接程序的工具。使用make后就不需要手工编译每个程序文件。整个工程的编译只需要一个命令就可以完成编译、连接以至于最后的执行。不过这需要我们投入一些时间去完成一个或者多个称之为makefile文件的编写。makefile描述程序文件之间的依赖关系以及提供更新文件的命令。命令格式:make[-fmakefile][option][target][-fmakefile]指定makefile,[option]make的选项,[target]make指定的目标。

当使用make工具进行编译时,工程中以下几种文件在执行make时将会被编译(重新编译):

所有的源文件没有被编译过,则对各个C源文件进行编译并进行链接,生成最后的可执行程序;

每一个在上次执行make之后修改过的C源代码文件在本次执行make时将会被重新编译;

头文件在上一次执行make之后被修改。则所有包含此头文件的C源文件在本次执行make时将会被重新编译。makefile通常包括以下内容:需要由make工具创建的目标体(target),通常是目标文件或可执行文件;要创建的目标体所依赖的文件(depency-file);创建每个目标体时需要运行的命令(command).

#Itisaexamplefordescribingmakefile

prog:filea.ofileb.ofilec.o

ccfilea.ofileb.ofilec.o-LS-oprog

filea.o:filea.ca.hdefs

cc-cfilea.c

fileb.o:fileb.cb.hdefs

cc-cfileb.c

filec.o:filec.cc.h

cc-cfilec.c全屏幕编辑器ViLinux系统的第一个全屏幕交互式编辑程序,是主要的文本编辑工具。Gdb调试器Linux下的程序调试工具,Gdb调试的是可执行文件,ADS(ARMDeveloperSuite)是ARM公司推出的关于ARM处理器的编译、链接和调试的集成开发环境。

ADS将编译和链接集成一个环境中,简称CodeWarriorforADS。将仿真调试环境集成在一个称为ARMextendedDebugger的环境中,简称AXD.

两个环境都同时提供了图形环境和命令行环境,两者各有特色。4.5ADS集成开发环境ARMADS由六部分组成:

代码生成工具(CodeGenerationTools)代码生成工具由源程序编译、汇编、链接工具集组成。ARM公司针对ARM系列每一种结构都进行了专门的优化处理,这一点除了作为ARM结构的设计者的ARM公司,其他公司都无法办到,ARM公司宣称,其代码生成工具最终生成的可执行文件最多可以比其他公司工具套件生成的文件小20%。

集成开发环境(CodeWarriorIDEfromMetrowerks)

CodeWarriorIDE是Metrowerks公司一套比较有名的集成开发环境,有不少厂商将它作为界面工具集成在自己的产品中。CodeWarriorIDE包含工程管理器、代码生成接口、语法敏感编辑器、源文件和类浏览器、源代码版本控制系统接口、文本搜索引擎等,其功能与VisualStudio相似,但界面风格比较独特。ADS仅在其PC机版本中集成了该IDE。

调试器(Debuggers)

调试器部分包括两个调试器:ARM扩展调试器AXD(ARMeXtendedDebugger)、ARM符号调试器armsd(ARMsymbolicdebugger)。AXD基于Windows9X/NT风格,具有一般意义上调试器的所有功能,包括简单和复杂断点设置、栈显示、寄存器和存储区显示、命令行接口等。Armsd作为一个命令行工具辅助调试或者用在其他操作系统平台上。指令集模拟器(InstructionSetSimulators)

用户使用指令集模拟器无需任何硬件即可在PC机上完成一部分调试工作。

ARM开发包(ARMFirmwareSuite)

ARM开发包由一些底层的例程和库组成,帮助用户快速开发基于ARM的应用和操作系统。具体包括系统启动代码、串行口驱动程序、时钟例程、中断处理程序等,Angel调试软件也包含在其中。ARM应用库(ARMApplicationsLibrary)

ADS的ARM应用库完善和增强了SDT中的函数库,同时还包括一些相当有用的提供了源代码的例程。用户使用ARMADS开发应用程序与使用ARMSDT完全相同,同样是选择配合Angel驻留模块或者JTAG仿真器进行,目前大部分JTAG仿真器均支持ARMADS。4.

温馨提示

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

评论

0/150

提交评论