本帖最后由 MCHPMPU 于 2019-3-12 10:22 编辑
最近有许多小伙伴刚刚接触Microchip的小伙伴本来信来电咨询,为什么用SAM-BA烧录到SAMA5D2系列的板子的外部flash(QSPI flash,SPI flash,亦或者NAND flash)的启动程序不自动执行呢?只有孤零零的RomBoot的串口打印输出。
其实自查起来很简单:
1. 可能SAM-BA烧录的时候命令用错了。因为是启动代码,所以烧录的时候-c参数要用 "writeboot".例如:
sam-ba -p usb -b sama5d2-xplained-a qspiflash -c writeboot:sama5d2_xplained-dataflashboot-uboot-3.8.7.bin
2. 如果上述命令无误的话,请检查备份寄存器和fuse的启动配置,是否使能了该NVM。例如:
sam-ba -p serial -bsama5d2-xplained -a bootconfig -c readcfg:bscr
sam-ba -p serial -bsama5d2-xplained -a bootconfig -c readcfg:fuse
或者通过该修改该寄存器来使能启动NVM,例如:
sam-ba -p usb -b sama5d2-xplained-a bootconfig -c writecfg:bscr:4 -c writecfg:bureg0:QSPI0_IOSET3,QSPI1_disabled,SPI0_disabled,SPI1_disabled,NFC_disabled,SDMMC0_disabled,SDMMC1_disabled,UART1_IOSET1,JTAG_IOSET1,EXT_MEM_BOOT
当然这些都是根据实际需求来设置参数的。
特别提醒:如果没有特殊需求,请放过fuse位的烧写,让它静静的存在!因为这个操作同样可以设置启动NVM,可是这个保险丝只能编程一次,如果写死了,就不能更改了哦。所以无严格需求,还是仅仅做bscr的设置就好!
|