bootstrap 怎样跳到u-boot工作的

发布于 2022-10-15 08:29:33 字数 170 浏览 34 评论 0

在AT91SAM9260中,bootstrap 怎样跳到u-boot工作的呢,我看到u-boot的启动代码也是
前32个字是异常向量.
bootstrap启动后,从dataflash读取了u-boot到内存之后,应该是直接跳到u-boot那里去执行,但是u-boot的开头又是异常向量,是否这里没有必要一定是异常向量

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

半﹌身腐败 2022-10-22 08:29:33

看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    */

追星践月 2022-10-22 08:29:33

这里并不需要异常向量,只是为了使u-boot代码一致保留其风格而已。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文