最近开始入坑F1C100s,在坑网蹭了诸多前辈的使用经验,本着能够继续蹭经验的目的,贡献一下使用DMA加速spiflash启动的代码
基于 https://gitee.com/tiny200s/lv7_rtthread_f1c100s.git (https://whycan.com/t_4942.html)的代码,编译出来的程序大约2.6M,把芒果派换上spiflash之后,启动时间大约需要6s,强迫症表示不能忍。
仔细阅读f1c100s_spl里的代码,跟xboot里的也是一样的,都是直读spiflash,每次64字节,
中间浪费的时间不少。最后决定用DMA读取spi,每次128K字节。不得不吐槽一下,
全志的手册真是节省,不参考别人的代码都很难读懂。
改成DMA读取spiflash后,基本就是秒起了。
f1c100s_spl.zip
参考各位大神的代码:
https://whycan.com/t_1514.html
https://whycan.com/t_4209.html
离线
这个好 一直觉得启动慢是个问题
离线
这个修改之后。开机时间能到多少呢
离线
没有仔细测,摁下reset,大约1-2s的样子
离线
没有仔细测,摁下reset,大约1-2s的样子
请教楼主,uboot有没有办法改 ^_^
离线
uboot代码有点复杂,我改dma的时候还想参考来着,看看也是直读spiflash就没继续研究了
我这只是抛砖引玉,期待别的大神能够改过去
airpumpkin 说:没有仔细测,摁下reset,大约1-2s的样子
请教楼主,uboot有没有办法改 ^_^
离线
我记得当时玩xboot的时候3MB也没有6秒这么慢,2~3秒的样子
离线
可能测试起止时间标准不一样
我用手机秒表测的,从摁下reset开始,到rtthread的debug串口输出显示启动结束,6s多一点点
实际的视觉体验是屏幕从开始变花到刷新显示,也差不多要这么多时间
我记得当时玩xboot的时候3MB也没有6秒这么慢,2~3秒的样子
离线
666.楼主可以直接在原来的基础上打个补丁就行,把补丁发布出来。
离线
学习下,,,不错
离线
..\Driver\Source\sys_spi.c(334): error: #852: expression must be a pointer to a complete object type rxbuf += bytes_cnt;
请教一下你这里编译的时候报错了咋解决呀
离线
好东西,虽然我对现在的速度要求不高,1M多的代码也就1-2秒。
离线
启动速度可以这么快?太牛了,学习
离线
3.6m的bin文件 使用dma启动速度约2秒 不用dma需要8秒的样子 点赞
离线
到现在都不太清楚SPL是啥,是uboot里面重定向前的那一部分吗,但是看公司里又是spl来加载uboot
离线
多谢楼主,正好在调spi和dma,一直没调通
离线
这是启动到linux,还是boot?
离线
询问下是否能在1s内快速启动
离线