由于要做矢量字库,使得F429的内部空间不够用,所以希望使用板载的外部SDRAM作为系统堆栈。前期的工作如下所述。已经将8MB开始的1MB用做LCD的显存,代码如下:
[mw_shl_code=applescript,true]/*SDRAM起始地址;存储空间2的起始地址*/
#define SDRAM_BANK_ADDR ((uint32_t)0xD0000000)
/* emWin动态内存首地址 */
#define SDRAM_APP_BUF (SDRAM_BANK_ADDR + 1 * 1024 * 1024)[/mw_shl_code]
将8MB中间的6MB用作emwin的动态内存,代码如下:
[mw_shl_code=applescript,true]#define EX_SRAM 1/*1 used extern sram, 0 used internal sram */
#if EX_SRAM
#define GUI_NUMBYTES (1024 * 1024 * 6)
#else[/mw_shl_code]
希望是将最后的1MB用做系统堆栈,在‘STM32F4xx_StdPeriph_Driver’中将以下代码1修改为代码2:
[mw_shl_code=applescript,true]//代码1
Heap_Size EQU 0x00010000
AREA HEAP, NOINIT, READWRITE, ALIGN=3
__heap_base
Heap_Mem SPACE Heap_Size
__heap_limit
PRESERVE8
THUMB
//代码2
Heap_Size EQU 0x00100000
AREA HEAP, NOINIT, READWRITE, ALIGN=3
__heap_base EQU 0xD0700000
Heap_Mem SPACE Heap_Size
__heap_limit EQU 0xD07FFFFF
PRESERVE8
THUMB[/mw_shl_code]
理论上讲应该是能实现的,但是只要修改了堆栈,程序就进入harddefault,完全懵逼。
不知道有没有大侠知道这个要怎么解决呢?先谢过!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>