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

相关推荐
杨云龙UP10 分钟前
PostgreSQL 18.4 数据库整库迁移实战:pg_dump 备份与 pg_restore 恢复完整操作手册
运维·服务器·数据库·postgresql·pg_dump·pg_restore
无人生还别怕1 小时前
如何安装任意版本docker
运维·docker·容器
土星云SaturnCloud2 小时前
土星云智慧服务区方案:AI视觉+边缘计算+视频存管一体化的全场景智能化落地解析
服务器·人工智能·ai·边缘计算
T0uken2 小时前
Colab:SSH 访问免费 GPU Server
运维·ssh
Python大数据分析@2 小时前
通过 MCP 实现 AI Agent自动化数据采集
运维·人工智能·爬虫·自动化
Initialize293082 小时前
告警一条接一条刷屏?五步治理告警风暴
运维
帷幕落秋2 小时前
Docker镜像加速
运维·docker
帷幕落秋3 小时前
Docker原理-理论基础
运维·docker
有毒的教程3 小时前
Linux底层存储路由配
linux·运维·网络
liqingdi4373 小时前
[SWPUCTF 2023 秋季新生赛]Easy SMC
服务器·前端·javascript