查看: 2960|回复: 0

【STM32F746试用】跟着小狂玩F7之在下载程序到外部FLASH

[复制链接]
  • TA的每日心情
    无聊
    2017-3-12 00:04
  • 签到天数: 62 天

    连续签到: 1 天

    [LV.6]常住居民II

    发表于 2016-9-18 09:10:14 | 显示全部楼层 |阅读模式
    分享到:
        今天的帖子呢,打算讲一讲F7的flash,众所周知FLASH在一个单片机里占据重要的地位,F7的程序也是存入到FLASH中的,F7内部具有1MB的存储空间,还是那句话对于一般的应用足够了,你的程序要是能写1MB那么大,说明功夫可以,哈哈,但是1MB的存储空间对于想做出绚丽多彩的界面,绚丽多彩的功能,这个1MB还是比较局限的,哈哈,但是不用怕,我们得F7外部外接了一个镁光16MB的FLASH,这个对于我们来说太急需了16MB,那可是大写的B啊换算成小写的b那可是128Mb,哈哈,不在这惊叹了,有了这16M的FLASH,我们还怕啥存储空间不够等等状况啊。还可以存储更多的外部数据,那可是相当的划算啊,再加上我们可以外扩FMC的NOR FLASH,我们就可以存储更多的图片以及更多的内容。闲话也说完了,直接介绍我们今天要做的事情,其实今天要做的跟程序没有关系,我们得主要目的就是把我们得程序通过Keil下载到外部FLASH,然后可以拷贝到内部的ROM中执行。我们先看先看一下电路。


        使用的是镁光生产的128Mb的SPI FLASH芯片,采用的是4位数据线模式,提高了传输的速度,在程序中使用SPI FLASH 有三种模式,第一种是间接模式,所有的操作都使用QUADAPI寄存器,第二种方式是状态轮询模式,外部FLASH,通过状态FLASH的设置可以产生中断,或者定时的读取状态寄存器。第三种方式是地址映射模式,映射到单片机内部地址空间,来当做内部的flash使用,其实要是想让程序在外部flash中执行的话可以使用第三种模式。看一下地址映射。外部最高支持256MB的FLASH ,小伙伴们可以想象一下,这是个什么概念。


        SPIflash的起始地址为0X90000000。预备工作准备完成,下面直接完成我们今天的内容,其实很简单,就是在keil5中点一点就可以啦。看图,biubiu,走起。


        修改rom的起始地址,0x90000000,大小为16MB。


        第一个是下载的flash执行的起始地址,以及内存尺寸,另外默认的尺寸是0x1000,对于默认的flm文件是没有问题的,但是对于外部的flash的flm文件是不够大的,所以更改一下为0xFFFC,第二个为FLM文件,就是选择正确的flash烧写文件,以后要是更改其他的flash芯片这个东西要自己修改,mdk5中有他的源码,我这有个百度的连接,论坛应该支持,我先放上,要是不支持的话,我在删除,有侵犯版权问题的,也通知我及时删除,谢谢。
        连接上的内容主要讲解了如何生成自己的flm文件。
         这里解释一下什么叫flm文件,flm文件里面定义了FLASH的基本操作,以及信息,就是如何初始化,删除,操作,拷贝程序的,按照教程上的说明一般都能看懂的。有了这个以后就可以开心的往flash中下载东西了,哈哈。
        看一下我们得执行结果


        可以看到我们成功的吧程序下载到了外部的flash中,然后程序也正常的运行了。
        今天的帖子没有将实际的程序内容,主要是想让大家了解STM32是怎么下载程序,并把程序放到内部的RAM中执行的,对于初学者肯能会有点懵,小狂还是想说的是,小狂对F7的试用并不打算从基础的教程出发,就是想测试测试F7到底有多牛逼,哈哈。下一篇帖子做什么还没想好,待小狂仔细思考,哈哈。
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-4-19 22:27 , Processed in 0.115679 second(s), 17 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.