Firefly开源社区

标题: 内存分配规则如何修改 [打印本页]

作者: sonnyling    时间: 2015-8-25 16:48
标题: 内存分配规则如何修改
请问一下哪位大神:
我这边移植一个GUI, ke_malloc() 5KB的堆空间时,直接堵塞在ke_malloc() 里了,
怀疑是堆空间分配不够所致。
尝试修改sct,需要相关内存映射描述文档,请问一下这个在哪边能找到??

原始sct如下:
LR_ROM1 0x10000000 0xCDB0
{
    APP_CODE 0x10000000 0xCDB0
    {
        *.o (RESET, +First)
        startup.o (+RO)
        *(InRoot$$Sections)
        .ANY (+RO)
        .ANY (+RW +ZI)
    }
}

作者: FireBLE_blue    时间: 2015-8-26 09:43
ble_heap 的大小配置在app_config.h 下

static uint8_t ble_heap[BLE_HEAP_SIZE];

/// Size of the heap
#if (BLE_CENTRAL || BLE_PERIPHERAL)
    /// some heap must be reserved for attribute database
    #if (BLE_ATTS || BLE_ATTC)
        #define GAP_DB_SIZE         (232)
        #define GATT_DB_SIZE        (60)
        #define BLE_DB_SIZE         (GAP_DB_SIZE+GATT_DB_SIZE+QPPS_DB_SIZE+OTAS_DB_SIZE+HTPT_DB_SIZE+PXPR_DB_SIZE+FMPT_DB_SIZE+DISS_DB_SIZE+ BLPS_DB_SIZE+TIPS_DB_SIZE+HRPS_DB_SIZE+HOGPD_DB_SIZE+SCPPS_DB_SIZE+BASS_DB_SIZE+GLPS_DB_SIZE+RSCPS_DB_SIZE+PASPS_DB_SIZE+CSCPS_DB_SIZE+ANPS_DB_SIZE)
    #else
        #define BLE_DB_SIZE         (0)
    #endif /* (BLE_ATTS || BLE_ATTC) */

    #define BLE_HEAP_SIZE           (BLE_DB_SIZE + 512 + 256 * BLE_CONNECTION_MAX)
#else
    #define BLE_HEAP_SIZE           (800)
#endif /* #if (BLE_CENTRAL || BLE_PERIPHERAL) */

作者: sonnyling    时间: 2015-8-26 16:30
FireBLE_blue 发表于 2015-8-26 09:43
ble_heap 的大小配置在app_config.h 下

static uint8_t ble_heap;

按照您的方法,问题已解决, 谢谢大神。
作者: feiyi26    时间: 2016-12-16 08:36
LR_ROM1 0x10000000 0xCDB0
{
    APP_CODE 0x10000000 0xCDB0
    {
        *.o (RESET, +First)
        startup.o (+RO)
        *(InRoot$$Sections)
        .ANY (+RO)
        .ANY (+RW +ZI)
    }
}


我的代码超过64KB(我用的9022 外挂256K flash) ,而这里定义的空间大小仅为52K,我尝试修改0XCDB0 ,但是keil编译能过,跑不起来!
作者: feiyi26    时间: 2016-12-16 08:37
请问外挂flash的,需要在那里修改空间大小。




欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/) Powered by Discuz! X3.1