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

查看: 10706|回复: 5

[STM32F429] 【原创】【STM32F429开发日志】通过修改.sct文件自动分配SDRAM变量

[复制链接]

50

主题

193

回帖

0

蝴蝶豆

金牌会员

最后登录
2020-7-23
发表于 2014-6-24 16:21:37 | 显示全部楼层 |阅读模式
 
第一步,打开SDRAM例程,SDRAM的起始地址为: 0xD000000, 分配RAM1大小为4M字节。
编译SDRAM例程,会生成一个.sct文件。
  SDRAM AREAS设置.png
图1 使用Keil存储器分配图设置SDRAM的起始位置和大小
 
第二步, 取消选择Use Memory Layout from Target Dialog,手动编辑FMC_SDRAM.sct文件
不再使用Keil的存储器分配图,而是使用其生成的.sct文件.png
图2  不再使用Keil的存储器设置对话框
 
手动修改.sct文件.png
图3  .sct文件修改前后对比
 
 
第三步,SDRAM变量声明
/* ADDRESS: 0x0D0000000  SIZE: 0x400000  */
#pragma arm section rwdata = "SD_RAM1", zidata = "SD_RAM1"
__IO uint8_t USART1_Rx_Buffer[0x10000]; // 0x10000: 64K
__IO uint16_t USART1_Rx_Count;
#pragma arm section rwdata
 
/* ADDRESS: 0xD0400000  SIZE: 0x400000   */
__IO uint8_t USART1_Rx_Buffer2[0x10000] __attribute__ ((at(0xD0400000))); // 0x10000: 64K
 
第四步,对示例代码进行硬件仿真测试,在观察串口查看变量的位置和内容。
  for (counter = 0x00; counter < IS42S16400J_SIZE; counter++)
  {
    *(__IO uint8_t*) (SDRAM_BANK_ADDR + counter) = (uint8_t)0x0;
  }
 
  for(counter = 0; counter < 0x10000; ++counter){
    USART1_Rx_Buffer[counter] = 0x03;
  }
 
  for (counter = 0x00; counter < IS42S16400J_SIZE; counter++)
  {
    *(__IO uint8_t*) (SDRAM_BANK_ADDR + 0x400000 + counter) = (uint8_t)0x0;
  }
  for(counter = 0; counter < 0x10000; ++counter){
    USART1_Rx_Buffer2[counter] = 0x02;
  }
  
 
 
回复

使用道具 举报

0

主题

12

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2014-12-4 18:23:01 | 显示全部楼层
你好,能上传工程文件看下吗?
回复 支持 反对

使用道具 举报

50

主题

193

回帖

0

蝴蝶豆

金牌会员

最后登录
2020-7-23
 楼主| 发表于 2014-12-10 10:47:00 | 显示全部楼层
有版本限制的,MDK-ARM编译器比较奇怪,有的版本支持某个.sct文件,有的版本就不支持,如果不是做bootlaoder之类的,不建议修改.sct文件,推荐用GCC编译器。
回复 支持 反对

使用道具 举报

0

主题

11

回帖

0

蝴蝶豆

新手上路

最后登录
2016-4-18
发表于 2015-11-19 14:55:33 | 显示全部楼层
你好,能上传工程文件看下吗?
回复 支持 反对

使用道具 举报

15

主题

930

回帖

29

蝴蝶豆

金牌会员

最后登录
2020-8-17
发表于 2015-11-20 08:58:03 | 显示全部楼层
又多学到一种手段。
赞,LZ
回复 支持 反对

使用道具 举报

39

主题

934

回帖

45

蝴蝶豆

论坛元老

最后登录
2020-6-18
发表于 2016-5-17 16:10:52 | 显示全部楼层
学习了,收藏下,兴许以后可以用到~
回复 支持 反对

使用道具 举报

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