bootstrap 怎样跳到u-boot工作的
在AT91SAM9260中,bootstrap 怎样跳到u-boot工作的呢,我看到u-boot的启动代码也是
前32个字是异常向量.
bootstrap启动后,从dataflash读取了u-boot到内存之后,应该是直接跳到u-boot那里去执行,但是u-boot的开头又是异常向量,是否这里没有必要一定是异常向量
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
看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 */
这里并不需要异常向量,只是为了使u-boot代码一致保留其风格而已。