驱动开发-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 启动内核

相关推荐
迪康Defender8 分钟前
公用电脑责任追溯难?迪康端点安全一体化管理系统用户模式详解
java·运维·开发语言·网络·其他·安全
迪康Defender35 分钟前
迪康端点安全一体化管理系统文档安全:构建企业文档资产全链路防护体系
运维·网络·安全·web安全·终端安全管理
zhangguojia739 分钟前
权限弹窗点击允许的授权流程
运维·服务器·数据库
AI备忘录44 分钟前
(十九)华为华三锐捷迈普思科 交换机链路聚合配置命令(LACP/静态聚合五厂商对照)
运维·服务器·网络·网络协议·tcp/ip·华为
lucybean011 小时前
抗老化曝气管采购:主流品牌优劣及选型策略深度解析
运维
come112341 小时前
剪映零基础教程
java·linux·运维
瀚高PG实验室1 小时前
HAC 集群主节点状态在starting、running之间频繁切换
运维·数据库·postgresql·瀚高数据库
其实防守也摸鱼1 小时前
教育信息技术应用创新---基础软件信息赛
运维·服务器·数据库·github·copilot
苏生Susheng1 小时前
【软件实施】Windows 服务器运维实战
java·运维·服务器·windows·spring boot·javaweb·实施
且白1 小时前
node、npm通过http-server架设本地服务器(可解决跨域)
服务器·网络协议·http