如何使用CSK6的PSRAM内存资源

本文详细介绍了CSK6平台如何使用PSRAM内存,包括PSRAM内存的配置、动态与静态内存的申请、释放及查询,以及如何通过编译结果和SHELL命令查询内存使用情况。
摘要由CSDN通过智能技术生成

CSK6 PSRAM 内存空间使用方法

概述

CSK6内置1MB SRAM,8MB PSRAM和 8MB Flash,其中部分 CSK6 型号 支持外置Flash ,CSK6 的系统默认运行在 SRAM 上。

由于 CSK6 是采用多核异构的架构,DSP 和 MCU都需要使用到 SRAM 的内存资源,那么就需要对内存空间进行合理分配,因此在CSK6系统中,我们给 DSP 预分配了 680K 的内存空间,给 MCU预分配了 320K 的内存空间。在实际项目开发中,往往会遇到 SRAM 内存紧张的情况,此时就需要将一部分程序或者是内存的申请放到 PSRAM 上,以解决内存不足的问题。

本章节通过示例讲解 PSRAM 内存空间的使用方法,包括 PSRAM 静态内存申请、PSRAM 动态内存申请、PSRAM 内存使用情况等内容。

CSK6 PSRAM 内存分配

在这里插入图片描述

从CSK6 的存储器分布图可以看到,PSRAM 的起始地址是 30000000~307f0000,总共8M 的空间,由于DSP 和 MCU都可能会使用到 PSRAM 的内存资源,所以 PSRAM 内存空间需要约定并通过起始地址来划分区域,下面我们来看CSK6 SDK 设备树 dts 文件中 PSRAM 内存空间的分配,以csk6011a_nano 板型为例:

&psram0 {
   
        reg = <0x30000000 DT_SIZE_M(8)>;
        #address-cells = <1>;
        #size-cells = <1>;

        /*psram for cp core slot: 6MB */
        psram_cp: psram_cp@30000000 {
   
                compatible = "listenai,csk6-psram-partition";
                reg = <0x30000000 0x600000>;
                status = "okay";
        };

        /*psram for ap core slot: 1MB */
        psram_ap: psram_ap@30600000 {
   
                compatible = "zephyr,memory-region",
                             "listenai,csk6-psram-partition";
                reg = <0x30600000 0x100000>;
                status = "okay";
                zephyr,memory-region = "PSRAMAP";
        };

        /*psram for ap share with cp slot: 512KB */
        psram_share: psram_share@30700000 {
   
                compatible = "listenai,csk6-psram-partition";
                reg = <0x30700000 0x80000>;
                status = "okay";
        };
};

PSRAM 配置说明:

配置项 说明 偏移地址 大小长度 转换大小
psram_cp DSP 预分配内存 0x30000000 0x600000 6MB
psram_ap MCU 预分配内存 0x30600000 0x100000 1M
psram_share DSP 和 MCU通讯的共享内存 0x30700000 0x80000 0.5M

从配置中可以看到,系统给 DSP 分配了6M 的内存空间,给 MCU 预分配了1M的内存空间,给DSP 和 MCU通讯的共享内存预分配了512K 内存空间,该配置是根据系统 DSP 核和 MCU核实际使用需求来分配,在实际项目中往往需要调整,假设实际项目中 DSP 和MCU 实际的使用需求为 DSP 4M,MCU 3M,那么我们可以在应用项目的boards/csk6011a_nano.overlay 中将 PSRAM 的内存配置做如下调整:

/* 删除掉系统dts默认配置的参数 */
/delete-node/ &psram_ap;
/delete-node/ &psram_cp;
/delete-node/ &psram_share;

/* 重新配置psram的内存分配 */
&psram0 {
   
        reg = <0x30000000 DT_SIZE_M(8)>
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值