驱动开发-Linux启动

一、ARM(Linux)下应用程序开发

ARM交叉开发:在一个平台上开发另一个平台运行的程序。

交叉编译:需要通过交叉编译工具沟通。eg:arm-linux-gnueabihf-gcc

nfs:网络文件系统。nfs的server端的/home/llinux/nfs的文件挂载到client端的/mnt下。

通过串口控制

二、启动运行步骤

1.系统上电后。根据启动模式,将bootloader的前半部分程序拷贝到内存中,并运行内存中的bootloader前半部分,bootloader必须在自己前半部分初始化好内存,将自己的后半部分拷贝到内存,运行后半部分。

2.bootloader启动到最后阶段会将内核拷贝至内存的0x80800000地址,将dtb拷贝至0x83000000地址处,引导内核启动,就PC设置为0x80800000。

3.内核启动到最后阶段,挂载根文件系统,加载各种配置,执行各种启动脚本,启动shell,执行用户APP。

三、uboot

1.系统上电后,倒计时结束前摁回车进入uboot命令行。

2.uboot命令

printenv 查看环境变量;

setenv 环境变量名 数据 修改环境变量名

saveenv 保存修改

setenv 环境变量名 删除环境变量

tftp 0x80800000 zImage 把zImage下载到0x80800000位置

bootz 0x80800000 - 0x83000000 启动内核

相关推荐
fanstuck3 小时前
1M 上下文能怎么用?我用 Seed Evolving 做了一个招标文件版本差异审查器
服务器·人工智能·数据分析·开源·aigc
北龙云海6 小时前
案例分享 | 面向公网业务系统境内访问白名单配置实操方案
运维·网络·安全·网络安全·告警·数据泄露·入侵攻击
FoldWinCard7 小时前
D5 Linux 网络及端口命令
linux·运维·服务器
kirs_ur8 小时前
SSD 在 AI 训练中的角色
大数据·服务器·人工智能
tedcloud1238 小时前
OmniRoute怎么部署?开源AI模型路由平台Linux部署教程
linux·服务器·人工智能·开源·音视频
霸道流氓气质8 小时前
KMS 密钥管理服务(Key Management Service)原理与实践
linux·服务器·数据库
kirs_ur8 小时前
CXL(Compute Express Link)— 内存扩展的未来
服务器·数据库·性能优化
SakitamaX8 小时前
LVS(Linux Virtual Server)概念详解
linux·运维·lvs
小张同学a.9 小时前
Linux系统管理
linux·运维
会飞的小新9 小时前
Windows CMD 与 PowerShell 深度解析:底层原理、命令差异、自动化选型指南
运维·windows·自动化