Tam*_*ang 2 embedded assembly bootloader
典型的嵌入式引导加载程序用于结束引导加载的指令或指令集是什么?请容忍这个问题.我想知道在将控制转移到操作系统后,引导加载是否实际结束或是否存在某种无限循环.
一旦引导加载程序完成初始化任务,它就会将系统的控制权转移到操作程序/系统.具体指令通常是跳转或分支,具体取决于特定的引导加载程序或体系结构.
由于您特别提到了操作系统,我将参考Embedded Linux Primer:
请注意,该
bootm命令是U-Boot的丧钟.这是一个重要的概念.与台式PC中的BIOS不同,大多数嵌入式系统的架构都是这样的,即当Linux内核获得控制权时,引导加载程序就不再存在.内核声明了引导加载程序以前使用的任何内存和系统资源.将控制权传递回引导加载程序的唯一方法是重新启动电路板.
看一下C91代码应用软件的AT91汇编代码启动序列,我们可以看到它使用的bx是THUMB指令集的分支和交换命令:
Run Code Online (Sandbox Code Playgroud);--------------------------------------------------------------------------- ;- Branch on C code Main function (with interworking) ;--------------------------------------------------------------------------- IMPORT __main ldr r0, =__main bx r0 END