环境:pdk3.0
采用如下方式编译uboot
1)make O=sees-nor CROSS_COMPILE=arm-linux-gnueabihf- ARCH=arm am335x_evm_nor_defconfig
make O=sees-nor CROSS_COMPILE=arm-linux-gnueabihf- ARCH=arm
2) make O=boots-nor CROSS_COMPILE=arm-linux-gnueabihf- ARCH=arm am335x_evm_norboot_defconfig
make O=boots-nor CROSS_COMPILE=arm-linux-gnueabihf- ARCH=arm
通过1)生成MLO,u-boot.img 放入sd作为临时启动,并把2)生成的u-boot.bin,拷贝至nor flash中,方法如下:
U-Boot # mmc rescan
U-Boot # fatload mmc 0 0x82000000 u-boot.bin
U-Boot # protect off all
U-Boot # erase all
U-Boot # cp.b 0x82000000 0x08000000 0x60000
U-Boot # protect on all
执行完,上述命令,选择nor flash启动,则,串口无打印?
请问哪位大神遇到过类似问题
Steven Liu1:
是在你自己的板子上面,还是EVM板上?
那个启动模式的选择,确认是走到NOR flash这一步了吗?排查一下有没有可能模式设置的问题或者是走入了NOR启动前的模式中。
Shine:
回复 Steven Liu1:
sysboot管脚是否选择了XIP boot模式?
郑州–大胜:
回复 Steven Liu1:
您好,用的是自己的板子,启动模式选择的是NOR flash XIP模式,测试发现最终程序停在了如下部分:
08000120 <prefetch_abort>: 8000120: e51fd0e8 ldr sp, [pc, #-232] ; 8000040 <IRQ_STACK_START_IN> 8000124: e58de000 str lr, [sp] 8000128: e14fe000 mrs lr, SPSR 800012c: e58de004 str lr, [sp, #4] 8000130: e3a0d013 mov sp, #19 8000134: e169f00d msr SPSR_fc, sp 8000138: e1a0e00f mov lr, pc 800013c: e1b0f00e movs pc, lr 8000140: e24dd048 sub sp, sp, #72 ; 0x48
出错位置点为:配置gpio
08001a2c <configure_module_pin_mux>: 8001a2c: e3500000 cmp r0, #0 8001a30: 12800004 addne r0, r0, #4 8001a34: 1a000000 bne 8001a3c <configure_module_pin_mux+0x10> 8001a38: e12fff1e bx lr 8001a3c: e2800008 add r0, r0, #8 8001a40: e15030fc ldrsh r3, [r0, #-12] 8001a44: e3730001 cmn r3, #1 8001a48: 15102008 ldrne r2, [r0, #-8] 8001a4c: 12833311 addne r3, r3, #1140850688 ; 0x44000000 8001a50: 128338e1 addne r3, r3, #14745600 ; 0xe10000 8001a54: 15832000 strne r2, [r3] 【调试过程中可能出错的位置点】 8001a58: 1afffff7 bne 8001a3c <configure_module_pin_mux+0x10> 8001a5c: e12fff1e bx lr
以上为u-boot.bin 反汇编结果,请问你们之前是怎么做的?? 能用使用nor flash 启动
Jian Zhou:
回复 郑州–大胜:
感觉你烧写的命令和这个帖子还有出入:
http://processors.wiki.ti.com/index.php/Linux_Core_U-Boot_User%27s_Guide#Using_NOR