u-boot移植总结(二)
来源:互联网 发布:美国留学生区别知乎 编辑:程序博客网 时间:2024/04/27 15:25
u-boot移植课程结束,放假两天,感觉这一周学习下来很混乱,整理了一下u-boot的相关知识。
U-BOOT源码下载:ftp://ftp.denx.de/pub/u-boot/
一、bootloader流程
stage1:
1)硬件初始化(在这里我想到stage2也要初始化硬件,他们到底有什么区别?);这一步是初始化CPU内部寄存器、内存控制器
2)为加载bootloader的stage2准备RAM空间 ;
3)拷贝bootloader的stage2到RAM空间 ;
4)设置好堆栈(在启动bootloader的时候先执行一段汇编程序,然后跳到C语言部分,而C的变量……是需要堆栈的) ;
5)跳转到stage2的C入口点;
从第二三步可以看出这阶段是在flash中运行的
stage2:
1)初始化硬件设备;而这一步是初始化板载设备,如串口、网卡之内的
2)将内核映像和根文件系统从flash上读到RAM中;
从第二步可以看出这阶段是在内存中运行
二、u-boot
编译u-boot.bin生成
1、对于board进行配置
#make smdk2410-config 它到底是做上面工作的?告诉我们选择的是哪一个开发板;而smdk2410-config到底又是哪里的东西?Makefile里面的“目标”
2、进行编译生成u-boot.bin文件
#make CROSS COMPILE = arm-linux-/...(后面跟工具链路径)
三、u-boot命令
1)环境变量
printenv查看环境变量
setenv添加、修改、删除环境变量
saveenv保存环境变量
2)文件下载
tftp下载:
先设置好网络
#setenv ethaddr 12:34:56:78:9A:BC(网卡mac)
#setenv ipaddr 192.168.8.*(开发板ip)
#setenv serverip 192.168.8.*(tftp服务器ip,当然前提是保证tftp服务器在工作)
然后就可以下载了
#fttp 0x32000000 uImage(把server中服务目录下的 uImage通过TFTP读入到0x32000000处)
四、执行程序
go addr[arg……]执行内存中二进制代码,一个简单的跳转指令地址(zImage)点击打开链接
bootm[addr[addr]……]执行内存中二进制代码,要求二进制代码有固定格式的文件头(uImage)
#bootm 0x30000000 执行以0x30000000开始的内核镜像文件
开发板信息
#bdinfo
设置自动启动:主要是对bootdelay(也就是在这么长时间内不干预自动启动项)和bootcmd(在bootdelay这么长时间内自动做的事)的设置,通过printenv可以看到他们的状态
#setenv bootcmd tftp 0x30000000 uImage \;bootm 0x30000000
#saveenv
- u-boot移植总结(二)
- u-boot移植(二)
- u-boot移植总结(二)LED点灯调试 和 u-boot加载地址
- U-boot移植(二)
- U-BOOT移植总结
- u-boot 移植 总结
- U-Boot移植总结
- u-boot-2013.01.01移植(二)
- u-boot-2010.09移植(二)
- TQ335X的u-boot移植(二)
- u-boot-2010.09移植(二)
- U-BOOT移植总结(三)
- u-boot移植(二)建立mini2440开发板工程
- fl2440的U-boot-2010.09移植(二)
- U-boot在S3C2440上的移植详解(二)
- u-boot-2012.07移植到TQ2440(二)
- U-boot在S3C2440上的移植详解(二)
- U-BOOT源码分析及移植二(转)
- 文件上传笔记
- liunx_下搭建java环境
- 基于感应器的智能求救系统----以android为例实现
- Tomcat下JSP、Servlet和JavaBean环境配置及小例子
- 关于上传组件
- u-boot移植总结(二)
- 新版博客体验三——排名及其他
- 订单号生成
- 用ogre做图像引擎,用MITA做音频引擎做游戏的源代码1(附完整工程代码资源下载地址)
- extjs实现输入的分种自动计算小时功能
- 关于数据库自增型数据的新体验
- Delphi编程中Http协议应用(一)
- 三极管电路总结
- ASP函数 数据类型转换函数 强制转换