emWin使用外部SRAM的方法
转载请注明地址:http://blog.csdn.net/zsy2020314/article/details/9313093
我用的是stm32,加了1MB的外部SRAM,在使用emWin的时候,将一部分内存分配给emWin使用。其实方法很简单,传入SRAM数据总线地址即可,数据位宽我采用16bit,因为使用的SRAM是16bit的,这样做比较合适。如果是在ARM9及以上的平台上使用,依葫芦画瓢的把DDRAM的物理地址传入emWin即可,不过地址位宽一般是32位的,大小由自己决定。
- /*********************************************************************
- * SEGGER Microcontroller GmbH & Co. KG *
- * Solutions for real time microcontroller applications *
- **********************************************************************
- * *
- * (c) 1996 - 2013 SEGGER Microcontroller GmbH & Co. KG *
- * *
- * Internet: www.segger.com Support: support@segger.com *
- * *
- **********************************************************************
- ** emWin V5.18 - Graphical user interface for embedded applications **
- All Intellectual Property rights in the Software belongs to SEGGER.
- emWin is protected by international copyright laws. Knowledge of the
- source code may not be used to write a similar product. This file may
- only be used in accordance with the following terms:
- The software has been licensed to NXP Semiconductors USA, Inc. whose
- registered office is situated at 411 E. Plumeria Drive, San Jose,
- CA 95134, USA solely for the purposes of creating libraries for
- NXPs M0, M3/M4 and ARM7/9 processor-based devices, sublicensed and
- distributed under the terms and conditions of the NXP End User License
- Agreement.
- Full source code is available at: www.segger.com
- We appreciate your understanding and fairness.
- ----------------------------------------------------------------------
- File : GUIConf.c
- Purpose : Display controller initialization
- ---------------------------END-OF-HEADER------------------------------
- */
- #include "GUI.h"
- #include "SRAM_Driver.h"
- /*********************************************************************
- *
- * Defines
- *
- **********************************************************************
- */
- //
- // Define the available number of bytes available for the GUI
- //
- #define Bank1_SRAM3_ADDR ((u32)0x68000000)
- #define GUI_NUMBYTES (1024*700)
- //
- // Define the average block size
- //
- #define GUI_BLOCKSIZE 0x80
- /*********************************************************************
- *
- * Public code
- *
- **********************************************************************
- */
- /*********************************************************************
- *
- * GUI_X_Config
- *
- * Purpose:
- * Called during the initialization process in order to set up the
- * available memory for the GUI.
- */
- void GUI_X_Config(void) {
- //
- // 16 bit aligned memory area
- //
- volatile U16* aMemory = (volatile U16*)(Bank1_SRAM3_ADDR);
- //
- // Assign memory to emWin
- //
- GUI_ALLOC_AssignMemory((void*)aMemory, GUI_NUMBYTES);
- GUI_ALLOC_SetAvBlockSize(GUI_BLOCKSIZE);
- //
- // Set default font
- //
- GUI_SetDefaultFont(GUI_FONT_6X8);
- }
- /*************************** End of file ****************************/