嵌入式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 ...
随机推荐
- 使flex-direction: column的子元素height: 100%生效的办法
在flex-direction: column子元素里直接使用height:100%,height并不会被设置成100% <!DOCTYPE html> <html lang=&qu ...
- Spring 的AOP底层实现技术:JDK和CGLIB动态代理
Spring 的AOP实现技术之JDK的动态代理技术实例: 接口:IUserService (Spring的AOP是动态AOP,实现技术:JDK提供的动态代理和cglib代理,cglib它可以为没有实 ...
- cross entropy与logistic regression
维基上corss entropy的一部分 知乎上也有一个类似问题:https://www.zhihu.com/question/36307214 cross entropy有二分类和多分类的形式,分别 ...
- 【洛谷P3811】[模板]乘法逆元
乘法逆元 题目链接 求逆元的三种方式: 1.扩欧 i*x≡1 (mod p) 可以化为:x*i+y*p=1 exgcd求x即可 inline void exgcd(int a,int b,int &a ...
- 【luogu P1903 [国家集训队]数颜色】 题解
题目链接:https://www.luogu.org/problemnew/show/P1903 裸的...带修莫队... 比较麻烦吧(对我来说是的) 两个变量分开记录查询和修改操作. #includ ...
- mac启动springboot失败,8080端口被占用,mac命令行关闭端口
如下图,idea启动springboot失败,8080端口被占用 Error starting ApplicationContext. To display the conditions report ...
- js操作json方法总结
相对于前端的老铁来说JSon并不陌生,JSON JavaScript Object Notation 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是一种理想的数据交换格式. json可以 ...
- 时间戳转化为时间&&截取时间的年月日
时间戳转化为正常的时间格式 function formatDate(date, fmt) { if (/(y+)/.test(fmt)) { // 在这里 date.getFullYear() + ' ...
- iOS10 开发权限适配设置 崩溃(上传打包后构建版本一直不显示)
ios10 系统必须强制配置系统权限 如果不配置,调试的时候导致崩溃,还会引发包无效的问题,导致上传打包后构建版本一直不显示 解决方案1.在项目中找到info.plist文件,右键点击以 Source ...
- 以ZMQ为基础的通信模型
最近使用了一下ZMQ的java版本,先不评述其它,网上已经有很多内容了. 我通过ZMQ的模式,在MsgClient,MsgServer中封装了基础ZMQ的使用.以此扩展了使用模型: 主要是基于2类分布 ...