嵌入式linux系统移植(一)
内容:
交叉编译环境
bootloader功能子系统
内核核心子系统
文件系统子系统
要点:
搭建交叉编译环境
bootloader的选择和移植
kernel的配置、编译、移植和调试
根文件系统的制作
移植的基本步骤:
确定目标机、主机的连接方式
安装交叉编译环境
搭建主机-目标机的数据传输通道
编写三大子系统
烧写测试
目标机和主机的连接方式:
- UART异步串行通信接口(串口):速率低、实用性强
- USB串行通信接口:速度快、驱动要移植修改
- TCP/IP网络通信接口:速率快(10/100Mbps)、驱动要一直
- Debug Jtag调试接口:方便快捷、价格很高
安装交叉编译器:
安装芯片厂商编译好的工具链
arm-none-linux-gnueabi- --->arm-linux :开源的ARM下的linux平台的交叉编译环境
arm-none-eabi :不支持操作系统(无操作系统下的交叉编译环境)
提供交叉编译器的公司:codesourcery
自己动手编译交叉工具链(没有特殊要求,不推荐)
搭建主机-目标机的数据传输通道
网络相关服务器的配置:TFTP、NFS
NFS(网络文件系统)系统和系统之间的文件挂载
交叉编译工具集:
交叉编译作用:目标机和主机不在同一平台,目标机配置一般比较低,编译调试不太可行
查看文件编译的结果的运行环境:file + 文件名 如file build
安装交叉编译环境:
第一步:解压arm-linux-gcc....
第二步:添加PATH环境变量(环境变量文件:etc/environment),之后执行source /etc/environment更新环境变量
问题:安装过后,输入arm-linux-gcc -v显示command not found
解决:sudo apt-get install libc6:i386
sudo apt-get install lib32z1
嵌入式linux系统移植(一)的更多相关文章
- 【课程分享】深入浅出嵌入式linux系统移植开发 (环境搭建、uboot的移植、嵌入式内核的配置与编译)
深入浅出嵌入式linux系统移植开发 (环境搭建.uboot的移植.嵌入式内核的配置与编译) 亲爱的网友,我这里有套课程想和大家分享,假设对这个课程有兴趣的,能够加我的QQ2059055336和我联系 ...
- 嵌入式Linux系统移植——uboot常用命令
flash的一般分区: 其它数据 环境变量 可执行程序.如bootloader print(可缩写为:pri):打印查看uboot这个软件中集成的环境变量setenv.saveenv:设置.保存环境变 ...
- 嵌入式Linux系统移植(二)——交叉编译工具集
常用工具:readelf.size.nm.strip.strings.objdump.objcopy.addr2line readelf:读可执行文件的elf头 ELF Header: Magic: ...
- 基于s5pv210嵌入式linux系统sqlite3数据库移植
基于s5pv210嵌入式linux系统sqlite3数据库移植 1.下载源码 http://www.sqlite.org/download.html 最新源码为3080100 2.解压 tar xvf ...
- 龙尚3G、4G模块嵌入式Linux系统使用说明【转】
本文转载自;http://blog.csdn.net/zqixiao_09/article/details/52506812 驱动部分: 1.kernle/drivers/usb/serial/opt ...
- 嵌入式linux系统应用开发
关于嵌入式系统 平时大家说的嵌入式其实范围比较广的,是一种软硬件可裁剪,以应用为中心开发的专用系统,硬件平台可以是单片机,或者以ARM系列的处理器.单片机一般直接裸奔程序,不过现在有了好多基于单片 ...
- MiniCRT 64位 linux 系统移植记录:64位gcc的几点注意
32位未修改源码与修改版的代码下载: git clone git@github.com:youzhonghui/MiniCRT.git MiniCRT 64位 linux 系统移植记录 MiniCRT ...
- 嵌入式Linux系统运行流程图
/************************************************************************ * 嵌入式Linux系统运行流程图 * 说明: * ...
- ARM 开发板嵌入式linux系统与主机PC通过串口传输文件
本文转载自http://useless20.blog.163.com/blog/static/237409982010227127576/ 嵌入式linux系统与主机通过串口传输文件 我想如果要从PC ...
随机推荐
- event.cancelBubble=true
<tr><a href="xxx">连接</a></tr> 如上结构,单击tr的时候跳转至另一页面 <tr style=&qu ...
- 缓存溢出Buffer Overflow
缓存溢出(Buffer overflow),是指在存在缓存溢出安全漏洞的计算机中,攻击者可以用超出常规长度的字符数来填满一个域,通常是内存区地址.在某些情况下,这些过量的字符能够作为“可执行”代码来运 ...
- Python新式类 单例模式与作用域(四)
1 新式类与旧式类 新式类拥有经典类的全部特性之外,还有一些新的特性,比如 __init__发生变化,新增了静态方法__new__,python3目前都采用新式类,新式类是广度优先,旧式类是深度优先 ...
- 不要在using语句中调用WCF服务
如果你调用WCF服务时,像下面的代码这样在using语句中进行调用,需要注意一个问题. using (CnblogsWcfClient client = new CnblogsWcfClient()) ...
- IEEP-网络规划
HCNP-R&S证书是公认人具备中小型企业网络构建和管理能力的专业人士 IEEP包含五个方面内容 1.网络规划与设计 2.网络实施与维护 3.网络排障 4.网络优化 5.网络割接 ...
- thinkphp5设置403 404等http状态页面
在thinkphp5中如何抛出异常状态码(比如401,403,404等),因为这些能极大的给用户以良好的体验. 因为在上线阶段,任何的系统错误信息都不能让浏览用户给看到,比如404(Not Found ...
- 如何杀掉一个用户下的所有进程并drop掉这个用户
如何杀掉一个用户下的所有进程并drop掉这个用户 Copy the sample code below into a file named kill_drop_user.sql.Open SQL*Pl ...
- 欢迎来到“火龙族智者”的blog
本blog里有每天更新的比赛感想,新技术体会以及日语学习相关事宜. 主要研究方向是算法,信息安全以及日语. 希望各位能常来看看.
- Tinkoff Challenge - Final Round (ABC)
A题:从两个保安中间那钞票 #include <bits/stdc++.h> using namespace std; int main() { int a,b,c; scanf(&quo ...
- 小草的Trouble学生信息管理系统
小草最近上课学C++,在图书馆纠结了好久,决定做这个小东西,没想到遇到了好多困难,好吧,功夫不负有心人,小草也在敲代码中提高了不少. 小草硬是学了好几天,才搞完这个东西,也算是了结了小草的一个心结. ...