典型的嵌入式引导加载程序如何结束?

时间:2014-03-14 12:15:04

标签: assembly embedded bootloader

典型的嵌入式引导加载程序用于结束引导加载的指令或指令集是什么?请容忍这个问题。我想知道在将控制转移到操作系统之后引导加载是否实际结束或者是否存在某种无限循环。

1 个答案:

答案 0 :(得分:5)

一旦引导加载程序完成初始化任务,它就会将系统控制权转移到操作程序/系统。具体指令通常是跳转或分支,具体取决于特定的引导加载程序或体系结构。

由于您特别提到操作系统,我将引用Embedded Linux Primer

  

请注意,bootm命令是U-Boot的丧钟。这是   一个重要的概念。与台式PC中的BIOS不同,大多数是嵌入式的   系统的架构是以Linux内核为基础的   控制,引导程序不再存在。内核声称任何内存   和引导加载程序以前使用的系统资源。唯一的办法   将控制权传递回引导程序是重启电路板。

查看AT91 Assembler Code Startup Sequence for C Code Applications Software,我们可以看到它使用bx,这是THUMB Instruction Set的分支和交换命令:

;---------------------------------------------------------------------------
;- Branch on C code Main function (with interworking)
;---------------------------------------------------------------------------
    IMPORT __main

    ldr r0, =__main
    bx r0

    END
相关问题