[资料] 汇编版SPI FLASH读取
1258 查看
12 回复
 楼主 | 发布于 2018-08-08 | 只看楼主
分享到:

SPI FLASH读取的汇编实现,注意这个工程只能用KEIL4汇编,KEIL5会报错,我也没弄明白为啥。

单片机为stm32f103c8t6 ,SPI FLASH用的是W25Q16挂在SPI2上。


为何要弄这么个玩意,起因是某一天翻硬盘的时候发现了曾经HACK PSP时候的一些程序资料,我们将一段很短的引导代码放在了存档文件里面,然后HACK掉游戏加载存档的过程让游戏加载这段很短的引导代码,这个引导代码负责加载另一个庞大的程序(HBL)以运行自制的应用软件。

我们也可以仿造这个过程在单片机上实现,首先放一段非常小的代码在FLASH的第一个Page,这个程序负责从SPI FLASH中加载Bootloader程序到SRAM里面,然后跳转到SRAM运行。

这样做有的好处是Bootloader程序不多占用FLASH空间,可以实现更强大的Bootloader程序而不必过多考虑要用几个page的Flash(毕竟BootLoader多用一点FLASH,真正的应用程序就少了一点FLASH可用),只需要考虑SRAM怎么分配。


=========================分割线=====================================

程序中有些别扭的地方:

1、为了不使用内存单元,一个子函数调用完了就返回,子函数不调用其他函数。所有的参数传递采用寄存器传递,CM3的寄存器足够用。

2、83 84 85 86几行程序负责跳转到SRAM的位置,我还不确定这几行代码能不能行。


PS:感谢OPENEDV论坛提供的STM32汇编模板工程。

本帖有更多资源,需 登录 才可以下载,没有帐号?立即 注册

(0 ) (0 )
回复 举报

楼主 | 回复于 2018-08-08 沙发

下一步开始写BootLoader,估计还需要几天时间。毕竟业余时间也不多。
(0 )
评论 (0) 举报

回复于 2018-08-09 2#

底层大神 向你学习
(0 )
评论 (0) 举报

回复于 2018-08-09 3#

多谢分享!!!
(0 )
评论 (0) 举报

回复于 2018-08-09 4#

多谢分享!!!
(0 )
评论 (0) 举报

回复于 2018-08-11 5#

谢谢分享!!!!!!!!!!!
(0 )
评论 (0) 举报

回复于 2018-08-11 6#

牛逼呀,这个高大上。
(0 )
评论 (0) 举报

回复于 2018-08-17 7#

看看
(0 )
评论 (0) 举报

回复于 2019-03-11 8#

多谢分享!!!
(0 )
评论 (0) 举报

回复于 2019-03-16 9#

谢谢分享
(0 )
评论 (0) 举报

回复于 2019-03-16 10#

支持下,谢谢分享!
(0 )
评论 (0) 举报
发表回复
0/3000





举报

请选择举报类别

  • 广告垃圾
  • 违规内容
  • 恶意灌水
  • 重复发帖

全部板块

返回顶部