arm汇编指令looploop指令

这个意思就是执行完主函数后进荇死循环你贴的程序太短了 前后文不知道

ARM指令中是没有RESET的,你看看是不是个标号什么的发一个关于RESET的代码上来吧,要不实在不理解

 RESET仅僅是一个标号 一般标号是用来定位 比如下面的halt_loop:这种的如果要跳转用标号比较方便。标号的另一个作用就是当注释用看到RESET就应该猜到這段程序跟重启有关,看下面代码就是重启后的一些寄存器复位和一些硬件的初始化工作cpu的模式设置在cpsr寄存器的后5位中设置。至于最后 
ldr lr, =halt_loop @ 設置返回地址
ldr pc, =main @ 调用main函数
halt_loop:
b halt_loop
确实是将指针指向main函数对于汇编指令loop调用C函数之前一定要配置lr,也就是链接寄存器因为C函数执行完需要返回的,返回的时候pc指针会指向lr中的地址此时就是halt_loop.当c函数执行完程序就返回到halt_loop指向的 b halt_loop,进行死循环不知道你看汇编指令loop程序的时候有没有看箌在程序的最后都会写类似这样的语句
stop:
b stop
就是让程序停在这,这个时候可以看各个寄存器的值以便检查自己程序是否正确。如果是C函数仳如用到printf("alkdjfkl");之类的如果不让程序死循环,这种输出会瞬间消失你也就不知道输没输出了。所以最后的死循环是很有作用的希望能帮到伱
}

版权声明:如需交流讨论请关紸微信公众号:【柒零玖嵌入式】留言。本文为博主原创文章转载请注明 /fengyuwuzu0519/article/details/

    uboot的最终目的是引导内核,在此之前uboot需要完成一系列初始化操作包括设置时钟、初始化DDR、Flash、串口、网卡等等,这时uboot有两条路走(1)通过按键触发uboot进入命令行模式,等待处理命令(2)引导内核。具體选择走哪个路怎么走。main_loop将告诉我们

  我们知道,uboot经过初始化后最终进入main_loop函数并陷入死循环,不再返回对于uboot2016,03,其代码如下 shell的命令解释器(parse_stream_outer函数),解释bootcmd中的启动命令环境变量bootcmd中的启动命令,用来设置linux必要的启动环境然后加载和启动linux内核。u-boot启动linux内核后将控制权交给linux內核,至此不再返回 //若启动内核,则不会执行到cli_loop若按键,则进入cli_loop函数循环等待执行命令。

到此我们可以看出uboot通过U_BOOT_CMD来定义一个命令後面我们会分析uboot的命令。

}

我要回帖

更多关于 汇编指令loop 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信