1、修正了yosys不能加载的init.tcl的问题,同时更新yosys版本到0.52。

2、新增支持的boot_mode模式:flash_rodata

为充分利用内存的高带宽,传统的 flash 模式会在程序运行时将常量数据从 Flash 加载到 SRAM。这种方式虽然提升了运行时性能,但也带来了更高的内存占用。

引入的 flash_rodata 模式允许开发者选择将常量数据始终保留在 Flash 中,不再复制到 SRAM。这样可以节省 SRAM 空间,但相应地会带来一定的性能损耗,适用于对性能要求不高但内存资源紧张的场景。

设置示例: board_build.boot_mode = flash_rodata

3、支持多种模式的用户自定义 Linker 脚本

系统支持通过文件名后缀符号来控制自定义 Linker 脚本与默认系统脚本的合并方式。支持的后缀有:@、+、-,其中无后缀等同于 +。

后缀含义:

  • 后缀 – :完全替换模式,不再调用系统提供的默认脚本,使用用户指定的脚本完全替代。
  • 后缀 @ :优先覆盖模式,用户自定义脚本插入在系统 section 定义之前,可以替换已有定义。
  • 后缀 + :追加模式(默认),用户脚本插入在系统 section 定义之后,不能覆盖系统已有定义,可用于新增的 section 定义。
  • 无后缀:等同于 +,为追加模式。

设置示例:

  • 多脚本指定示例: board_build.ldscript = first.ld@, second.ld@, last.ld+
  • 特定数据示例:将特定源文件中的常量数据保留在 Flash 中

为了避免将部分常量数据从Flash加载入SRAM,可通过自定义linker脚本将其绑定至Flash区域。

设置方法:board_build.ldscript = user.ld@

user.ld 内容示例: 将audio_data.c中的常量数据保留在 Flash 中:

SECTIONS

{

 .rodata.flash : ALIGN(4) {

*audio_data.o(.rodata*);

 . = ALIGN(4);

} >FLASH

}

AG32 最新 SDK 下载链接:

https://pan.baidu.com/s/17bp-zAnsYRuVMRTSSVHN5A&pwd=12ej

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注