页次: 1
主要改动:
1. 从XBOOT剥离出来基本ARCH和Machine的boot代码以及Makefile
2. 修改了mksunx tool,解决了文件小于0x3C00时的BROM checksum错误。
3. 修改link文件增加bootloader section,修改start.S自动计算启动代码长度,这样只加载bootloader到RAM,加快启动
3. 把UART0 TX/RX改为GPIOE1 and GPIOE0, 方便调试Todo:
1. 增加GPIO,PWM和中断支持,已经有网友实现了,准备加进来
2. 从XBOOT主线同步最新启动代码,主线已经增加了MMU支持(打开I、DCache),并且对启动代码优化了速度用法:
1. 首先编译mksunxi:make mktool 或者 cd tools/mksunxi && make
2. 编译firmware.bin: make
3. 烧到SPI flash:make write我遇到的最大的坑是,原来BROM里填的固定加载0x3C00长度,而我的minimal代码总共才1xxx bytes,导致checksum错误。后来用官方的mksunxiboot工具,虽然可以识别BROM但是,一跳到DRAM执行main就reset。一看代码,有个DRAM检查0x5C位置的信息,不知道为什么要检查这个,但估计是mksunxiboot没处理这个导致DRAM没有初始化好。最后还是用xboot的mksunxi改了下终于好了。
另外发现SRAM代码跑得很慢,加载几k代码到RAM用了1xxms,虽然是3M的clock但是发现有很多间隔;后来copy SPI全部代码到DRAM,50M时钟也用了几MS,也有很多等待,平均只有1/3的有效速度。XBOOT似乎发现这个问题,有了更新,我准备试一试。
请问keil5中如何设置BROM程序的实际大小啊,我填固定长度比实际代码大,checksun每次都不一样
xidaole 说:After Build Run #2 Tools\mksunxi Objects\@L.bin
试过,删除bin后,重新成功生成f1c100s.bin文件。还有改用 flashtospi 文件,编译通过后,再点下载,能成功下载;重启F1C100s板子,还是进入fel模式(电脑显示驱动)。
下载msvcr120d.dll放到Tools里面,再编译,重新生成的f1c100s.bin下载到spiflash就能正常运行了。msvcr120d.zip
刚试了下,看到了bootloader size=1800,应该是可以了,明天下载试下,谢谢
页次: 1