KDocs 研发资料库
  • 手表穿戴技术应用文档入口汇总
  • JL707N穿戴客述问题FAQ
  • 彩屏仓 硬件开发指南 与 量产作业流程规范
  • 彩屏仓 AC98N和JL701烧录升级注意事项
  • JL707 硬件开发资料
  • JL707 手表硬件设计注意事项 总结
  • 穿戴生产烧录OTA和key文件添加使用说明
  • JL707N-入门到进阶开发指导文档
  • 彩屏仓982相关
  • 彩屏仓耳机介绍
  • 杰理701_707双屏demo介绍
  • 707电子吧唧开发资料
  • GPIO相关
  • UART串口相关
  • SPI相关
  • nandflash相关
  • norflash相关
  • IIC相关
  • PWM相关
  • SD卡相关
  • 定时器TIMER
  • 文件系统接口设计说明文档
  • 音视频录像开发流程
  • rdec编码器
  • 穿戴功耗数据标准
  • 手表蓝牙开发文档
  • 701蓝牙PAN联网demo
  • BLE开发使用说明
  • 701手表2.0.0版本SDK EQ在线调试和离线调试方法 V1.1
  • JL707 手表喇叭输出声音大小评估方法 V1.0
  • JL707 手表音频EQ调试方法 V1.0
  • AC707N 手表通话写卡 软件配置方法
  • 录音功能
  • 701手表2.X.X系列SDK调试EQ配置方法及音频调试技巧V1.1
  • 701手表104版本SDK EQ在线调试和离线调试方法 V1.1
  • mic2dac示例
  • P11 SensorHub相关
  • 手表升级操作文档
  • AC707NGPU
  • DBI模块介绍
  • GPU模块介绍
  • 701N屏幕驱动配置说明
  • 701N_UI编辑工具用户手册
  • 支付宝资料
  • 支付宝硬件接入资料
  • 支付宝乘车码接入资料
  • CAT1 接入文档
  • 701N_WATCH_CAT1开发说明
  • Findmy功能
  • music模式相关
  • 707电池曲线
  • 707N内置FLASH挂载FAT文件系统251112_v1.2
  • AC707N_本地视频播放demo(AVI-MJPEG-PCM)
  • 光波导屏幕调试
  • 耳机研发和生产流程 指南
  • 707-NandFlash 代码和UI资源独立烧录方案
  • 彩屏仓时间同步补丁
  • 彩屏仓抖音点赞移植
  • 707LVGLv8双屏开发
  • 707N蓝牙互传图传demo
  • AVIPCM数据流接入AIVOICE
  • Flash分区操作demo
  • 手表发射问题
  • 701_707 双备份升级DEMO
  • 707_乘车码刷码失败问题_共性

707 psram使用说明

📎 原始文档:https://www.kdocs.cn/l/cfecSEWArhO6 707 psram使用说明
701 psram 常见接口,同样适用于707 sdk 701 PSRAM 常见接口.otl

  1. 使能和供电配置

(1)使能

sdk配置中打开 TCFG_PSRAM_DEV_ENABLE或在JLstudio 配置 ,容量根据实际大小,内封psram 一般为2MB,可以在JLstudio里面配置。
image

image

(2)供电脚配置

AC7074A7S带psram的芯片使用pb5供电,其他芯片使用fspg2供电;
注意检查供电口是否被复用。
如果供电方式不对,或供电口被复用导致供电异常,上电将触发ASSERT(psram_id !=0) 断言
image

  1. 低功耗

(1)进入低功耗

Psram 申请的buf均释放时,低功耗psram掉电;
若psram存在数据,则进入stanby模式,额外增加约50uA左右的功耗(不同PSRAM、不同温度情况下功耗有差异);
image

  1. 退出低功耗 通过malloc_psram接口申请内存时,若psram处于低功耗状态(power_down/stanby),则psram将退出低功耗。
    直接读/写/操作psram地址段,不能使psram退出低功耗

  2. 使用注意事项

  3. cache与nocache Cache地址段0x08000000~(0x08000000+psram size)
    No cache地址的0x04000000~(0x04000000+psram size)
    地址转换接口
    void *psram_cache_2_nocache(void *p);
    void *psram_nocache_2_cache(void *p);
    原则上,nocache段的数据与cache段数据是对应的,
    即地址0x08000000的数据与0x04000000的数据对应到同一个物理存储。
    Cpu读/写psram数据,必须cache地址段访问。
    Dma/gpu/dbi可以通过cache地址段和nocache地址段访问数据。
    通过nocache访问时减少数据cache时间,读取速度会快一些。

如果一段数据需要被cache和nocache段交叉读写时,需要做好cache同步,避免cache数据与外存数据不一致导致数据异常。
可以通过下述两个接口将数据同步回外存(psram)。
void psram_flush_cache(void *begin, u32 len);
将数据同步到外存,下一次访问cache数据时不需要重新load。
一般用于cache数据写入后,nocache操作前。将数据从cache同步回物理介质。避免nocache操作访问到未被更新的数据。(同步到外存会有时间开销)
void psram_flush_invaild_cache(void *begin, u32 len);
将所有数据同步到psram,并使cache数据失效,下一次访问时,将重新从psram中load数据到cache;
nocache地址段操作前,调用该接口先同步数据到外存,并使数据失效。Nocache操作后,再进行cache操作时,数据会从物理介质中重新加载到cache。

  1. psram写入优化 ①数据写入sram的速度快于写入psram;
    ②nocache数据不需要经过cache,读写速度快于cache数据;
    ③dma可与cpu并行拷贝数据且dma支持访问nocache数据;
    基于上述三点,可以将数据(分块)写入sram,再经dma加载到psram上。优化psram写入。

  2. 碎片问题 Psram不带mmu管理,存在内存碎片导致申请不到大块内存的风险,特别是在多页面特效的场景下。

(4) 时钟配置

开发板使用外置psram 时钟,跑96Mhz (顶板外挂考虑降频) 。 内封的psram 如7072s ,7074A7S等跑144M
#define TCFG_PSRAM_INIT_CLK (144* 1000000) //144Mhz

  1. JLUI变量存psram 在lib_jlui_config.c中,可以指定模块优先使用psram

image

  1. 页面合成到psram image

image

image

  1. 从psram推屏 image

7.变量,数组 定义在psram

1、放入 .psram_data 段(已初始化的数据):attribute((section(".psram_data"))) u32 nandflash_g_capacity = 0;
2、放入 .psram_bss 段(未初始化的数据):attribute((section(".psram_bss"))) u32 psram_var;
3、放入 .psram_noinit 段(不需要初始化的数据):attribute((section(".psram_noinit"))) u32 psram_noinit_var;
这样测试,应该在 0x8000000 之后
image