嵌入式linux系统移植

本文详细介绍了嵌入式Linux系统移植的过程,包括学习思路、系统结构、移植要点和环境搭建。重点讲解了交叉编译环境的配置,如安装交叉编译器、搭建主机-目标机数据传输通道,并提到了UBoot环境变量的使用和内核启动条件。此外,还讨论了网络层配置和NFS网络文件系统的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习思路和方向

先整体后局部,层层推进
一个内核代码 不吃不喝1秒看一行,要两年才能看完,还没时间理解,因此学习要整体的学习方向
每个子系统都有一个复杂的层次关系。
需要首先掌握相关子系统的藏宝图,有了这个地图,去探索就有了方向

ARM裸机程序系统结构图(无OS)

在这里插入图片描述

复杂功能结构图(有OS)

在这里插入图片描述
内核解放了应用层,内核来封装驱动提供给应用使用。在对于更加复杂的结构功能时,就需要引入内核来解放应用

系统移植的四个点
1、交叉编译环境
2、bootloader功能子系统 (选择和移植)
3、内核核心子系统 (kernel的配置、编译、移植和调试)
4、文件系统子系统 (根文件系统的制作)

学习思路:先整体后局部,层层推进
如何编译-》如何添加命令或功能————>如何定义自己的开发板

1、交叉编译环境

移植的基本步骤:
1、确定目标机、主机的连接方式
UART异步串行通信接口(速率低,实用性强)
USB串行通信接口 (速度快,驱动要移植修改)
TCP/IP网络通信接口 (速度快,驱动要移植)
Debug Jtag 调试接口 (方便快捷,价格高)

2、安装交叉编译器
用厂商编译好的工具链 如 arm-linux-
3、搭建主机-目标机数据传输通 道 (NFS)
4、编译三大子系统(bootloader子系统,内核核心子系统,文件系统子系统)
5、烧写测试

用file +可执行文件名 可以看是在什么环境下的文件

解压

-C是将文件解压到根目录的意思。
在这里插入图片描述
如果存在多个交叉编译器的话,注意使用绝对路径方法,否则可能会使用别的编译器
简单方法: arm-linux-gcc -o build build.c
添加PATH环境变量,放入目录中间用冒号隔开。
可以直接用PATH = $PATH:
也可以修改/etc/environment 改完source

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值