你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

stm32f4 discovery SDRAM例程FMC_SDRAM_DataMemory问题

[复制链接]
wu1169668869 提问时间:2015-7-28 15:27 /
在F4系列的固件库里面看到这个例程
stm32f4_dsp_stdperiph_lib\Project\STM32F4xx_StdPeriph_Examples\FMC\FMC_SDRAM_DataMemory
在readme里面看到介绍:
This example shows how to use the MT48LC2M3B2B5-7E SDRAM mounted on
STM324x9I-EVAL RevB as data memory (including heap and stack).

不是discovery板子上用的那个SDRAM芯片,使用discovery板子自带例程:
STM32F429I-Discovery_FW_V1.0.1\Projects\Peripheral_Examples\FMC_SDRAM     中的初始化方式
  /* SDRAM Initialization */  
  SDRAM_Init();

  /* FMC SDRAM GPIOs Configuration */
  SDRAM_GPIOConfig();

  /* Disable write protection */
  FMC_SDRAMWriteProtectionConfig(FMC_Bank2_SDRAM,DISABLE);

将上述代码添加到template工程system_stm32f4xx.c的初始化函数
void SystemInit(void)中的
#if defined(DATA_IN_ExtSRAM) || defined(DATA_IN_ExtSDRAM)
  SystemInit_ExtMemCtl();
#endif /* DATA_IN_ExtSRAM || DATA_IN_ExtSDRAM */

代码段的下方

根据readme中所说需要把所有相同文件替换,看了一下几个文件都没做改动就没做修改,
环境用的keil,在readme中有如下:
<li> MDK-ARM
    - in Project->Options for Linker window, uncheck the option "Use Memory Layout
      from Target Dialog". You can then import the scatter file dedicated for this
      example.
    - uncomment "#define DATA_IN_ExtSDRAM " in the "system_stm32f4xx.c" file           

第一点需要导入一个scatter file,但是工程好像没有给出。。。

第二点的效果应该和自己导入那两个初始化一样?吧。。。

没玩过这么深入,还请有经验的帮帮忙~~多谢多谢

收藏 评论10 发布时间:2015-7-28 15:27

举报

10个回答
wu1169668869 回答时间:2015-7-28 15:42:57
据说初始化完就可以和SRAM一样来使用SDRAM了,有用过SRAM的或者哪里能找到例程。。。
creep 回答时间:2015-7-28 15:46:57
本帖最后由 creep 于 2015-7-28 16:01 编辑

把工程编译重编译会自动生成scatter file文件,要去掉勾选的"Use Memory Layout   from Target Dialog"选项。
wu1169668869 回答时间:2015-7-28 16:10:52
creep 发表于 2015-7-28 15:46
把工程编译重编译会自动生成scatter file文件,要去掉勾选的"Use Memory Layout   from Target Dialog"选项 ...

恩恩,可以看到sct文件,需要做什么修改吗还是直接可以用了
有什么帖子可以参考一下吗
creep 回答时间:2015-7-28 16:17:51
wu1169668869 发表于 2015-7-28 16:10
恩恩,可以看到sct文件,需要做什么修改吗还是直接可以用了
有什么帖子可以参考一下吗 ...

应该需要修改,将SDRAM的地址添加到里面,仿照sram的格式!!
有个类似的设置帖子可以看看:【STM32F303开发】+ 使用片内的CCMRAM缩短代码执行时间
wu1169668869 回答时间:2015-7-28 16:21:56
creep 发表于 2015-7-28 16:17
应该需要修改,将SDRAM的地址添加到里面,仿照sram的格式!!
有个类似的设置帖子可以看看:【STM32F303 ...

多谢多谢~
突然发现不能把函数放到SystemInit函数里面让startup调用…还要用寄存器改写
yanhaijian 回答时间:2015-7-28 19:56:17
要注意启动代码中要用的数据不能放置到外部SDRAM中。
wu1169668869 回答时间:2015-7-28 20:20:32
yanhaijian 发表于 2015-7-28 19:56
要注意启动代码中要用的数据不能放置到外部SDRAM中。

现在好像就遇到这种问题
我的sct文件现在是这样的:
; *************************************************************
; *** Scatter-Loading Description File generated by uVision ***
; *************************************************************

LR_IROM1 0x08000000 0x00200000  {    ; load region size_region
  ER_IROM1 0x08000000 0x00200000  {  ; load address = execution address
   *.o (RESET, +First)
   *(InRoot$$Sections)
   .ANY (+RO)
  }
  RW_IRAM1 0x20000000 0x00030000  {  ; RW data
   .ANY (+RW +ZI)
  }
  RW_ESDRAM1 0xd0000000 0x000400000{ ; RW data
   .ANY (+RW +ZI)
  }
}
最后一个ESDRAM1是discovery外挂的SDRAM,main函数中的数据现在可以定义到我要的大小,但是一执行到FMC开时钟就进默认中断了
继续看keil的帮助中…
wu1169668869 回答时间:2015-7-28 20:23:28
现在都是停在这一句
/*-- FMC Configuration ------------------------------------------------------*/
  /* Enable the FMC interface clock */
  //RCC->AHB3ENR |= 0x00000001;
        RCC->AHB3ENR |= RCC_AHB3Periph_FMC;
wu1169668869 回答时间:2015-7-29 00:39:59
还是没能解决
12下一页

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版