F1C100s,如何能从正常运行状态切换到FEL模式?
跑的xboot,在已经运行起来了的状态下,调用start.S里的return_to_fel,没用。程序进入了不正常的状态。
离线
从这里 http://sunxi.org/FEL 的信息来看,似乎跳转到0xFFFF0020执行就是进FEL模式了,简单得难以置信。明天到公司试试。
离线
阶段性成果:目前能够在正常运行状态切换到FEL了,可以读写内存什么的。但是还无法通过sunxi-fel操作SPI Flash。
// xboot代码里把IRQ MASK全置1了,至少需要把USB-OTG(bit 26)置0才能进FEL。
write32(0x01C20400 + 0x30, 0);
// Control Register bit 13,使用高地址向量表
arm32_write_p15_c1(arm32_read_p15_c1() | (1 << 13));
// 跳转到FEL
asm("BX %0" : : "r"(0xFFFF0020));
最近编辑记录 Quotation (2019-01-19 16:04:54)
离线
就是说USB可以识别FEL设备,但是不能操作flash?
是不是spi外设时钟等没有配置好?
是,sunxi-fel writel/readl等命令都可以用,flash相关的命令不可用。
猜测是某些寄存器需要重置为初始状态,FEL不会做太多检查、初始化的动作。如果代码里已经初始化了SPI,可能需要恢复原状。
离线
不行诶,早就试过reset SPI、还有恢复SPI相关的一些寄存器,没成功。
离线