关于Uboot自启动的问题方案解决

  • Post author:
  • Post category:其他





本文主要针对于在


Uboot


下如何设置自启动的问题






一:


Uboot


原先的环境变量贴出:




=> print



bootcmd=mmc dev2;mmc dev 2 ;if mmc rescan; then if run loadbootscript; then runbootscript; else if run loadimage; then run mmcboot; else runnetboot; fi; fi; else run netboot;fi




二:需要自启动的代码


:



setenv fdt_file zImage-imx6sx-sdb-m4.dtb



fatload mmc 2:1 0x80000000 XCU.bin



dcache flush



cp.b 0x80000000 0x7F8000 0x8000



dcache flush



setenv mmcargs “setenv bootargs uart_from_oscconsole=${console},${baudrate} root=${mmcroot}”



bootaux 0x7F8000




三:


uboot


环境变量设置




=> setenv fdt_filezImage-imx6sx-sdb-m4.dtb



=>setenv mmcargs “setenvbootargs uart_from_osc console=${console},${baudrate}root=${mmcroot}”



=>setenv bootrtos “fatloadmmc 2:1 0x80000000 XCU.bin;dcache flush;cp.b 0x80000000 0x7F80000x8000;dcache flush;bootaux 0x7F8000”



=> setenv bootcmd “mmcdev 2;mmc dev 2 ;run bootrtos ; if mmc rescan; then if runloadbootscript; then run bootscript; else if run loadimage; thenrun mmcboot; else run netboot; fi; fi; else run netboot;fi”



=> saveenv




三:重新进入


Uboot



=> print



bootcmd=mmc dev 2;mmc dev 2 ;run bootrtos ;if mmc rescan; thenif run loadbootscript; then run bootscript; else if run loadimage;then run mmcboot; else run netboot; fi; fi; else run netboot;fi



bootrtos = fatloadmmc 2:1 0x80000000 XCU.bin;dcache flush;cp.b 0x80000000 0x7F80000x8000;dcache flush;bootaux 0x7F8000




四:重启(不进入


uboot


环境)








RTOS


端的信息打印出来看是否启动






解释:由于未连接


CAN


数据发送设备,所以其


Send_len





0


,但是说明其已经启动





关于


Bootcmd


的相关信息可以从百度获取,在这主要说明其开机后默认是执行


Bootcmd


命令的。





思路是:将所有的命令保存到一个环境变量中(这里是


bootrtos


),然后通过


run


命令执行这个环境变量(


runbootrtos


)看是否能够执行,若能执行说明


OK


,若不能命令出错;然后将


run


命令集合也添加到


bootcmd


中,注意这里的


ifelse


语句。开机重启


OK



版权声明:本文为qq_27977257原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。