- 浏览: 72856 次
- 性别:
- 来自: 北京
感觉一定要理解一些基本的概念,然后在看懂汇编的基础上,再分析uboot的流程。
1.关于汇编的语法
这里有两套汇编的语法:分为ARM公司的标准ARM汇编语言和GNU对ARM支持的GNU ARM汇编。ARM标准汇编语言即ARM公司的开发工具ADS里用的汇编语言;GNU汇编即在LINUX下用GCC编译的汇编。两者语法有少许差异。因此,通常我们下载的LINUX下的ARM接口代码放到ADS下是不能编译通过的,需要进行少许修改。
GNU AS语法即AT&T汇编语法,uboot用到的语法。
2.标签的含义
.globl _start _start: b reset
标签就是在某行程序代码前作一个标记,标签代表的是这行代码的地址。
.globl _armboot_start _armboot_start: .word _start
.word expression就是在当前位置放一个word型的值,这个值就是expression ,此处的含义就是建立一个全局标签_armboot_start,在这个位置上放置_start的值(可以这样理解,_armboot_start是一个地址,这个地址中的内容是_start),则下面的语句会把地址_armboot_start处的内容(_start)装载到r2中。
ldr r2, _armboot_start
这样做的目的是因为LDR指令的格式为:LDR{条件} Rd, <地址>。
3..word 0x0badc0de
含义:保留一个字,初始化一下。实际的值应该在运行时计算出来。(badcode吗,呵呵)。
4.关于判断是否拷贝到ram
如果是debug下,uboot直接运行在ram中,从而得到的_start值和TEXT_BASE是相等的,不需要拷贝。如果从flash启动,_start为0x0,TEXT_BASE是sdram的地址,二者是不相等的,需要拷贝。(TQ2440的SDRAM为64M,bank6,地址空间为0x30000000-0x34000000,TEXT_BASE设置为0x33D000000,即0x33D00000-0x34000000为uboot使用的空间+bss和其他的空间)。
见映射图
5.汇编中调用c函数
遵循ATPCS(ARM-THUMB procedure call standard)标准。
发表评论
-
排序算法---计数排序
2011-11-27 14:57 560#include <stdio.h> vo ... -
排序算法---归并排序
2011-11-26 19:33 699#include <stdio.h> vo ... -
排序算法---交换排序(冒泡排序、快速排序)
2011-11-26 19:32 667#include <stdio.h> vo ... -
排序算法---选择排序(简单插入排序、堆排序)
2011-11-26 19:31 600#include <stdio.h> vo ... -
排序算法---插入排序(简单排序、shell排序)
2011-11-26 19:29 602#include <stdio.h> vo ... -
删除字符串中的特定字符和重复字符
2011-11-26 13:45 632#include <stdio.h> vo ... -
Linux编程-多线程、同步和互斥(转载)
2011-11-14 15:27 1155http://www.cnblogs.com/skynet/a ... -
寻找字符串中的最大数字子串
2011-09-22 17:17 1472#include <stdio.h> int f ... -
删除子字符串
2011-09-21 15:27 565#include <stdio.h> #incl ... -
c语言随机数
2011-09-18 17:15 657#include <stdio.h> #i ... -
带头结点有序单链表的合并
2011-09-08 14:21 1147typedef int Item; typedef s ... -
链表逆序的递归/非递归算法
2011-09-01 23:37 1362/** *链表逆序的递归/非递归算法 */ # ... -
递归算法---字符串---全/部分组合和全排列
2011-08-30 23:01 1178#include <stdio.h> #i ... -
递归算法---0-1背包问题(面试宝典)
2011-08-28 21:11 1856/** *正整数n,m,从数列1、2、3、...、n中随 ... -
递归算法---字符串全组合(面试宝典)
2011-08-28 17:24 1212/** *求一字符串所有字串的组合 */ #i ... -
递归算法---求解多元一次方程
2011-08-28 10:38 1865/** * 求解x1+x2+x3+...+x10 = ... -
(zz)关于类的sizeof
2011-08-27 18:16 529http://blog.sina.com.cn/s/blog_ ... -
(zz)结构体字节对齐原则
2011-08-27 17:53 1551结构体默认的字节对齐一般满足三个准则: 结构体变量的首 ... -
list.h from linux-2.4
2011-08-25 09:59 573#ifndef _LIST_H_ #define _L ... -
The C Programming Lang (K&R) hash table
2011-08-25 09:52 902hash.h #include <stdio.h ...
相关推荐
在ok2109s5pv210)上移植uboot,现在这个版本刚刚能够启动...买了块飞凌的ok210开发板,s5pv210的,但是nandflash居然不开源,特别痛恨,于是自己准备从uboot到linux,所有的东西重新写,所有的东西均开源,方便大家学习
本文档描述uboot阅读心得,详细介绍了uboot中的核心。
uboot详解 uboot详解 uboot详解 uboot详解
UBOOT ppt
UBOOT源码阅读笔记,记录作者移植及对源码的理解
Uboot启动过程分析,学习,需要移植uboot的可以看下
imx8mp uboot
uboot阶段1(汇编部分)详细分析.pdf
Uboot源码阅读笔记.pdfUboot源码阅读笔记.pdfUboot源码阅读笔记.pdf
极1-uboot.zip
uboot readme 中文注释 uboot readme 中文注释uboot readme 中文注释uboot readme 中文注释uboot readme 中文注释uboot readme 中文注释uboot readme 中文注释uboot readme 中文注释uboot readme 中文注释uboot ...
官方下载的Uboot源码 u-boot-2014-1
uboot.bin 生成 Uboot命令 移植Uboot
mt7620n ddr1 64M的uboot,适合MW305R等DDR1 内存的路由器
<uboot代码完全解析>,对uboot代码的注释和分析,了解uboot的工作流程
imx287uboot移植s3c2440uboot移植,非常全面的总结资料,加上uboot手册
uboot分析和笔记
Uboot Uboot最详细资料 Uboot参考资料
最新版UBOOT
小米路由器 mini 官方原厂uBoot,官方固件提取,亲测可用!