新闻中心

EEPW首页 > 嵌入式系统 > 牛人业话 > FSMC使用之外扩RAM的妙用

FSMC使用之外扩RAM的妙用

——
作者:liklon时间:2013-10-23来源:电子产品世界收藏

  LDR R0,= 0x00001011 ;选择存储类型S,地址数据不复用,总线宽度16位,写使能,并启动存储器块

本文引用地址:http://www.eepw.com.cn/article/182411.htm

  LDR R1,= 0xA0000010

  STR R0,[R1] ;对控制寄存器配置完成

  LDR R0,= 0x00000200 ;根据外部S芯片的时序配置时序寄存器

  LDR R1,= 0xA0000014

  STR R0,[R1] ;时序寄存器配置结束

  有了对的配置代码,最后一步就是修改的启动文件以及编译软件的设置,具体如何操作咱继续往后看。

  启动文件与编译软件配置

  最后一步就是对启动文件进行修改以及对编译软件进行配置。现在需要把片内的全部作为栈来使用,所以在启动文件中要完成栈顶地址的设置以及长度的设置。并在启动文件中完成对的配置。

  DATA_IN_ExtSRAM EQU 1 ;方便以后修改所用

  Stack_Size EQU 0x00000400 ;定义栈的大小

  AREA STACK, NOINIT, READWRITE, ALIGN=3

  Stack_Mem SPACE Stack_Size

  IF DATA_IN_ExtSRAM == 1 ;重点从这里开始

  __initial_sp EQU 0X20000000 + Stack_Size ;设置栈顶地址,是向下生长 ;的所以这么设置

  ELSE

  __initial_sp

  ENDIF

  第一处修改完成,主要完成了对栈顶的设置。下面开始第二处:

  Reset_Handler PROC

  EXPORT Reset_Handler [WEAK]

  IF DATA_IN_ExtSRAM == 1 ;方便以后修改

  ;此处添加上面对配置的代码

  ENDIF ;修改结束

  IMPORT __main

  IMPORT SystemInit

  LDR R0, =SystemInit

  BLX R0

  LDR R0, =__main

  BX R0

  ENDP

  第二处修改完成,主要是加入了对FSMC配置的代码。到此启动代码的修改部分就结束了,下面对编译软件进行设置。在设置之前我们回头看看第一部分对FSMC的介绍,可以看出现在RAM的首地址为0x68000000,因为我们是通过Bank1的第三区控制的所以首地址是0x68000000。了解了这个我们就开始设置编译软件:

  到此为止所有工作都完工了,可以给UCGUI的存储设备分配70K字节的空间都毫无压力。最后提醒一点,记得将Use MicroLIB 选上。

存储器相关文章:存储器原理



上一页 1 2 下一页

关键词: STM32 FSMC RAM

评论


相关推荐

技术专区

关闭