导航

    全志在线开发者论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 在线文档
    • 社区主页

    R128S2的内存不够用了

    A Series
    2
    2
    1163
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • H
      haaland LV 6 最后由 编辑

      在集成自身应用接口后,内存仅剩余不到3M

      以下是free命令查看后的内存分布

      lpsram Heap:
      
          Total Size :  3746704 Bytes    ( 3658 KB)
      
                Free :  2891536 Bytes    ( 2823 KB)
      
            Min Free :  2778336 Bytes    ( 2713 KB)
      

      在SDK根目录下输入kmap命令,可以知道当前运行在psram上的代码量,有2.5M保存在了psram上。

      |===========================================================================|
      | TOTAL (bytes)                            | 2544907  | 1222989  | 2545435  |
      | MEM LIMIT                                | 6291456  | 16777216 | 16777216 |
      | MEM LEFT                                 | 3746549  | 15554227 | 14231781 |
      |===========================================================================|
      

      系统上电,包括已经创建的任务,消耗了大约700K内存,综合起来一共消耗了大约3.2M内存。

      1 条回复 最后回复 回复 引用 分享 0
      • livpo
        livpo LV 6 最后由 编辑

        R128支持nor-flash,代码可以放在xip运行,保存在xip的方法可以看到对应工程下的xip.lds.S。

        或者可以将dsp占用的8Mhpsram转移部分给C906使用,在dsp代码量不大的情况下,例如把dsp的内存裁剪到4M后,参照以下步骤把4M hpsram分给C906

        打开C906的menuconfig
        1)使能CONFIG_HEAP_MULTIPLE宏,令C906可以同时使用多个内存堆;
        2)使能CONFIG_DEFAULT_LPSRAM_HEAP,CONFIG_LPSRAM_HEAP 宏,配置默认内存堆为lpsram;
        3)使能CONFIG_LPSRAM_HEAP_DYNAMIC_ADDR宏,意思是lpsram的内存是动态分布的;
        4)配置CONFIG_LPSRAM_HEAP_SIZE的大小是0x600000,因为前面2M给M33使用,所以剩下6M;
        5)使能CONFIG_HPSRAM_HEAP宏,使能HPSRAM
        6)配置CONFIG_HPSRAM_HEAP_START_ADDR为0xc400000,0xc000000是Hpsram的开始地址,前面4M已经分配给dsp使用;
        7)配置CONFIG_HPSRAM_HEAP_SIZE为0x400000,意思是可以用的hpsram大小是4M。

        其中LPSRAM和HPSRAM的配置也可以考虑互换。

        1 条回复 最后回复 回复 引用 分享 0
        • 1 / 1
        • First post
          Last post

        Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号

        行为准则 | 用户协议 | 隐私权政策