From 0b8f9396c9eff65d6fa36cc56259bf54f16a9443 Mon Sep 17 00:00:00 2001 From: Marti Bolivar Date: Tue, 13 Sep 2011 05:18:48 -0400 Subject: fsmc: Half-ass job to get the docs done. --- source/fsmc.rst | 35 +++++++++++++++++++++++++++-------- 1 file changed, 27 insertions(+), 8 deletions(-) (limited to 'source') diff --git a/source/fsmc.rst b/source/fsmc.rst index dfd4916..c8f0125 100644 --- a/source/fsmc.rst +++ b/source/fsmc.rst @@ -4,11 +4,30 @@ FSMC ==== The Flexible Static Memory Controller (FSMC) is a peripheral which an -be configured to control a variety of external memory chips. For -example, it is used on the Maple Native to control the built-in SRAM -chip. - -.. TODO [0.0.12] Add info on: -.. -.. - Address, data, chip-select etc. pins -.. - Memory bank organization +be configured to control a variety of external memory chips. + +Normally, any variables in your program will be allocated space in RAM +(notable exceptions are variables marked with ``const`` or +:ref:`__FLASH__ `). Without the FSMC, this +space is limited to the amount that comes built-in to the chip's +*internal* SRAM. + +The addition of the FSMC peripheral allows addtional memory to be +used. For example, it is used on the Maple Native to interface with +the board's built-in external SRAM chip. However, this extra memory +comes at a cost: the FSMC uses a fairly large number of GPIOs. + +The FSMC peripheral is currently only available on the Maple Native. +On that board, we have broken out a wide variety of the FSMC lines, so +that experienced users can add additional external memory chips to +suit their own applications' purposes. + +.. TODO Find some tutorials on SRAM or write one on FSMC, specifically +.. ones that cover: address, data, chip-select etc. pins, memory bank +.. organization + +Recommended Reading +------------------- + +- Wikipedia article on `SRAM `_ +- :ref:`ST RM0008 ` chapter on FSMC. -- cgit v1.2.3