ameba-sram sdram

ameba-sram sdram

<-ameba-overview

*如有任何工程问题,请填写工程单,并发正式邮件,问题解决速度可提高10%。


--》

ameba1 SRAM 512KB, 系统每次复位后会将code从Flash拉取到SRAM再执行;

amebaZ SRAM 256KB,具备XIP,系统每次复位后直接从Flash执行。

目前有2MB SDRAM的只有两个型号:8195A和8711AM


--》计算SDRAM使用情况:

参考该文件:application.map




--》SDK与内存相关默认配置:

1、默认heap为60K,上限值为124KB(4.0c),查看该处数值:configTOTAL_HEAP_SIZE

2、默认使用的freertos的heap_5.c

3、修改ameba1和amebaZ内存配置如下:

此处的0x301b5000是首地址,因为8195A 有2M SDRAM,地址范围在0x3000000~0x301FFFFF

当需要的SDRAM heap加大时,一定要修改首地址。

#if (defined CONFIG_PLATFORM_8195A)
HeapRegion_t xHeapRegions[] =
{
    { (uint8_t*)0x10002300, 0x3D00 },    // Image1 recycle heap
    { ucHeap, sizeof(ucHeap) },         // Defines a block from ucHeap
#if 0
    { (uint8_t*)0x301b5000, 300*1024 }, // SDRAM heap
#endif        
    { NULL, 0 }                             // Terminates the array.
};
#elif (defined CONFIG_PLATFORM_8711B)
#include "rtl8710b_boot.h"
extern BOOT_EXPORT_SYMB_TABLE boot_export_symbol;
HeapRegion_t xHeapRegions[] =
{
    { 0, 0},    // Image1 reserved ,length will be corrected in pvPortMalloc()
    { ucHeap, sizeof(ucHeap) },     // Defines a block from ucHeap
#if (CONFIG_ENABLE_RDP == 0)    
    { (uint8_t*)0x1003f000, 0x1000},    // RDP reserved
#endif    
    { NULL, 0 }                     // Terminates the array.

};


4、推荐heap分配函数:

pvPortMalloc

vPortFree

或者:

RtlMalloc
RtlMfree




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值