免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5027 | 回复: 2

[BootLoader] bootstrap 怎样跳到u-boot工作的 [复制链接]

论坛徽章:
0
发表于 2011-04-26 19:32 |显示全部楼层
在AT91SAM9260中,bootstrap 怎样跳到u-boot工作的呢,我看到u-boot的启动代码也是
前32个字是异常向量.
bootstrap启动后,从dataflash读取了u-boot到内存之后,应该是直接跳到u-boot那里去执行,但是u-boot的开头又是异常向量,是否这里没有必要一定是异常向量

论坛徽章:
0
发表于 2011-05-26 23:01 |显示全部楼层
看crt0_gnu.S:

/* Branch on C code Main function (with interworking) */
_branch_main:
        ldr     r4, = main
        mov     lr, pc
        bx      r4

/* Branch to the application at the end of the bootstrap init */
_go:
        ldr     r1, =MACH_TYPE
        mov     lr, pc
        bx      r0  /*跳到Uboot*/

在main.c 中,把u-boot从dataflash 读入内存
main()
load_df(AT91C_SPI_PCS_DATAFLASH, IMG_ADDRESS, IMG_SIZE, JUMP_ADDR)
return JUMP_ADDR

在at91sam9260ek.h中已经定义了U-boot 在dataflash中的地址 和将读入到内存中的地址

#define JUMP_ADDR               0x23F00000              /* Final Jump Address
#define IMG_ADDRESS             0x8400                  /* Image Address in Data
Flash */
#define IMG_SIZE                0x33900                 /* Image Size in DataFla
sh    */

评分

参与人数 1可用积分 +6 收起 理由
bitmilong + 6 鼓励

查看全部评分

论坛徽章:
0
发表于 2011-05-26 23:04 |显示全部楼层
这里并不需要异常向量,只是为了使u-boot代码一致保留其风格而已。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP