嵌入式linux系统移植基本知识教材.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
系统移植第一天系统移植重点掌握的内容搭建交叉开发环境移植Bootloat移植kernel根文件系统的制作第一天要掌握的配置交叉工具链和基本命令使用制作SD卡启动盘(未完成)搭建tftp服务器搭建Nfs服务器烧写uboot(未完成)用nfs方式启动开发板跑linux(未完成)嵌入式系统的应用领域工业控制:工控设备、智能仪表、汽车电子、电子农业等消费电子:信息家电、智能玩具、通信设备、移动存贮、视频监控等医务医疗:医疗电子军事国防:军事电子网络设备和电子商务嵌入式系统的定义一般定义:以应用为中心、以计算机技术为基础、软硬件可裁剪、适应应用系统,对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统广义定义:凡是带有微处理器的专用软硬件系统都可以称为嵌入式系统通用嵌入式系统硬件组成部分微控制器 2、晶振 3、内存(如:SRAM,SDRAM)4存储器(如:ROM, FLASH, SD, 微硬盘)其他外围设备接口 6、输入、输出接口通用嵌入式系统软件组成部分无OS嵌入式系统由应用层、驱动层和硬件层组成有OS嵌入式系统由Applications、kernel、Driver、H/W组成嵌入式系统LINUX交叉开发环境硬件基本组成开发主机目标机连接介质搭建嵌入式LINUX开发主环境的要工作准备开发主机-目标机(开发板)以及二者连接介质准备目标机代码安装交叉工具链开发主机上安装的软件(为方便调试)终端软件(putty、minicom)Tftp服务Nfs服务其他工具软件dnw等为什么需要交叉编译背景条件嵌入式系统硬件资源限制CPU 主频、内存容量嵌入式系统MCU体系结构和指令集不同ARM, MIPS, POWERPC提高开发效率交叉编译在开发主机运行编译器编译内核、应用程序。内核和程序在目标机上运行这个编译过程成为交叉编译。*编译器运行在开发主机(通常是X86体系的PC机)上,编译出的代码是目标机体系结构的,如:ARM在主机除了编译还可以完成制作根文件系统的工作嵌入式系LINUX开发,交叉编译使用开源GUN工具,gcc等。Readelfreadelf可以显示elf软件格式执行文件信息。ELF格式是UNIX系统实验室作为应用程序二进制接口开发的。ELF格式是UNIX/Linux平台上应用最广泛的二进制工业标准之一。Binutilsas主要用来编译gcc输出的汇编文件,产生的目标文件由连接器ld连接 As -0 hello.ohello.s生成目标文件size列出目标文件每一段的大小以及总体的大小。Size a.outSize有两种输出格式,一种为”sysv”,另一种为”berkeley”,默认berkeley的格式第一种格式以用“-A“或者—format=sysv指定,第二种格式用”-B“或”—format=Berkeley指定“Size a.out–A size a.out–Bnmnm可以列出目标文件中的符号。用法虽然简单,但功能很强大nm可以列出的符号:R 只读符号。 N调试符号 D已经初始化变量的符号。T text段的符号,子程序都是这种符号。 U 未定义的符号。例如文件中不存在的函数。 c 未初始化的符号,比如定义了一个全局变量int a; 则a的符号就是这种类型。Libsupc++ 提供支持C++语言的库函数stripstrip用来丢弃目标文件中的全部内容或者特定符号,减小文件体积。对于嵌入式系统,这个命令必不可少。Stip使用经过strip处理后的文件已经不包含符号了,可以使用nm加以验证stringsstrings用来打印某个文件的可打印字符串。Strings hello.oStrings –f nmdemo.oobjdupobjdump可以显示一个或者更多目标文件的信息,主要用来反汇编objdump –d nmdemo.oObjdump使用-R 选项显示动态重定向的入口objdump –R helloobjcopyobjcopy可以进行目标文件格式的转换objcopy -–gap-fill-=0xff –O srec u-boot u-boot.srecobjcopy -–gap-fill=0xff –O binary u-boot u-boot.binaddr2line能够把程序地址转换为文件名和行号,前提是这个可执行文件包括调试符号。如果可执行文件中没有调试符号,shell将返回??:0.最常用的选项是“-e”用来指定文件名和地址Gcc –o test –Wl,-Map=test.map –g test.cGrep main test.mapAddr2line 地址 –e test –f【12】 交叉工具链的安装 1.解压工具链压缩包$cd $mkdir toolchain$cd toolchain$tar xvf

文档评论(0)

502992 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档