打印

stm32外接sram详细配置(基于MDK)

[复制链接]
2010|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sky007tao|  楼主 | 2013-1-29 09:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 sky007tao 于 2013-2-1 15:01 编辑

  此配置实用st的官方例程,sram使用的区块为bank1,bank1的首地址为0x60000000尾地址为0x6fffffff,分为4个64M的区块。

其中:

Bank1_SRAM1_ADDR = 0x60000000;

Bank1_SRAM2_ADDR = 0x64000000;

Bank1_SRAM3_ADDR = 0x68000000;

Bank1_SRAM4_ADDR = 0x6c000000;

分别对应NE1,NE2,NE3,NE4四个片选,相应的IO口应按需要更改配置(下面有官方的例程,里面有详细代码)。

    如果想把变量分配到外部SRAM需要配置“Target Options ” ,选择RAM1前的“default”,后面start添0x68000000,“size”添0x80000,此处配置为Bank1_SRAM3的配置。

    但此时编译后运行会进入“HardFault_Handler()”函数的死循环,原因是配置了外部SRAM后变量会自动分配到外部SRAM但是代码中某些变量在SRAM初始化之前被编译,导致上述错误。

    可以通过将SRAM初始化之前编译的“**.c”和“**.s”文件的“Meorry Assignment”定义到内部RAM的方法来解决。操作方法是:右击该“**.c”选择“option for Flie "**.c"”,将“zero Initialized Data”和“other Data”定义到IRAM[0x20000000-0x20000FFFF]。






沙发
sky007tao|  楼主 | 2013-1-29 09:38 | 只看该作者
本帖最后由 sky007tao 于 2013-2-1 15:01 编辑

例程代码在此处,需要请下载~请多支持

SRAM.rar

12.05 KB

使用特权

评论回复
板凳
ghostzjl| | 2013-11-7 18:29 | 只看该作者
代码和上面说的不符

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

10

帖子

0

粉丝