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

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式linux系统移植基本知识教程

系统移植第一天 系统移植重点掌握的内容 搭建交叉开发环境 移植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等。 Readelf readelf可以显示elf软件格式执行文件信息。ELF格式是UNIX系统实验室作 为应用程序二进制接口开发的。ELF格式是UNIX/Linux平台上应用最广泛的 二进制工业标准之一。 Binutils as 主要用来编译gcc输出的汇编文件,产生的目标文件由连接器ld连接 As -0 hello.ohello.s生成目标文件 size 列出目标文件每一段的大小以及总体的大小。 Size a.out Size有两种输出格式,一种为”sysv”,另一种为”berkeley”,默认berkeley的格式 第一种格式以用“-A“或者—format=sysv指定,第二种格式用”-B“或”—format= Berkeley指定“ Size a.out–A size a.out–B nm nm可以列出目标文件中的符号。用法虽然简单,但功能很强大 nm可以列出的符号:R 只读符号。 N调试符号 D已经初始化变量的符号。 T text段的符号,子程序都是这种符号。 U 未定义的符号。例如文件中不存在的函数。 c 未初始化的符号,比如定义了一个全局变量int a; 则a的符号就是这种类型。Libsupc++ 提供支持C++语言的库函数 strip strip用来丢弃目标文件中的全部内容或者特定符号,减小文件体积。对于嵌入式系统,这个命令必不可少。 Stip使用 经过strip处理后的文件已经不包含符号了,可以使用nm加以验证 strings strings用来打印某个文件的可打印字符串。 Strings hello.o Strings –f nmdemo.o objdup objdump可以显示一个或者更多目标文件的信息,主要用来反汇编 objdump –d nmdemo.o Objdump使用 -R 选项显示动态重定向的入口objdump –R hello objcopy objcopy可以进行目标文件格式的转换 objcopy -–gap-fill-=0xff –O srec u-boot u-boot.srec objcopy -–gap-fill=0xff –O binary u-boot u-boot.bin addr2line能够把程序地址转换为文件名和行号,前提是这个可执行文件包括调试符号。 如果可执行文件中没有调试符号,shell将返回??:0. 最常用的选项是“-e”用来指定文件名和地址 Gcc –o test –Wl,-Map=test.map –g test.c Grep main te

文档评论(0)

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

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

1亿VIP精品文档

相关文档