TI中文支持网
TI专业的中文技术问题搜集分享网站

如何将.text段从Flash加载到DSP28335片外扩展RAM中运行

我开发基于DSP28335+DSP/BIOS的程序,程序成功编译和链接后,将.out文件烧写到28335后,程序能正常运行。为了缩短程序运行时间,考虑到DSP28335的片内内存较小,我想把程序的.text段和.econst段从Flash加载到片外扩展RAM中运行,我参考了DSP28xxx_SectionCopy_nonBIOS.asm(SPRAAU8)和InitExtMemIf.asm( (David M. Alter)做了以下工作:
开始,在F28335_BIOS_flash.cmd定义了.text段和.econst段,
/*name PAGE 0:
ExtRAM origin:00100000 length:00080000
L67RAM origin:0000e000 length:00002000*/

.text : LOAD = FLASH_ABCDEFGH, PAGE = 0 /* Should be Flash */
RUN = ExtRAM, PAGE = 0 /* Must be CSM secured RAM */
LOAD_START(_text_loadstart),
LOAD_SIZE(_text_loadsize),
RUN_START(_text_runstart)

.econst : LOAD = FLASH_ABCDEFGH, PAGE = 0 /* Should be Flash */
RUN = ExtRAM, PAGE = 0 /* Must be CSM secured RAM */
LOAD_START(_econst_loadstart),
LOAD_SIZE(_econst_loadsize),
RUN_START(_econst_runstart)

然后,参考InitExtMemIf.asm(David M. Alter),初始化了片外扩展RAM
接着,在_c_int00之前,参考DSP28xxx_SectionCopy_nonBIOS.asm,将.text和.econst从Flash加载到片外扩展RAM中
MOVL XAR5,#_text_size ; Store Section Size in XAR5
SUBB XAR5,#1
MOVL ACC,@XAR5 ; Move Section Size to ACC
MOVL XAR6,#_text_loadstart ; Store Load Starting Address in XAR6
MOVL XAR7,#_text_runstart ; Store Run Address in XAR7
LCR copy

MOVL XAR5,#_econst_size ; Store Section Size in XAR5
SUBB XAR5,#1
MOVL ACC,@XAR5 ; Move Section Size to ACC
MOVL XAR6,#_econst_loadstart ; Store Load Starting Address in XAR6
MOVL XAR7,#_econst_runstart ; Store Run Address in XAR7
LCR copy

程序在CCS3.3中能够正常编译和链接,
In .map file, .text section is defined:

section page origin length input sections
——– —- ———- ———- —————-
.text 0 00300f0b 00000d66 RUN ADDR = 00100000
烧写到DSP28335中,程序不能正常加载运行

我把.text改成从DSP片内的L67SARAM加载后,.econst仍从片外扩展RAM中加载,程序编译链接后能够正常加载运行。
.text : LOAD = FLASH_ABCDEFGH, PAGE = 0 /* Should be Flash */
RUN = L67SARAM, PAGE = 0 /* Must be CSM secured RAM */
LOAD_START(_text_loadstart),
LOAD_SIZE(_text_loadsize),
RUN_START(_text_runstart)
.econst : LOAD = FLASH_ABCDEFGH, PAGE = 0 /* Should be Flash */
RUN = ExtRAM, PAGE = 0 /* Must be CSM secured RAM */
LOAD_START(_econst_loadstart),
LOAD_SIZE(_econst_loadsize),
RUN_START(_econst_runstart)

但我的程序只编写了部分,如果完成整个程序,DSP28335片内RAM不能满足所有程序.text的加载,怎样解决将.text段从Flash加载到DSP28335片外扩展RAM中运行?

Susan Yang:您是想将程序搬到RAM内?

您需要初始化flash,然后不要把.text这么定义复制到RAM中。只把需要的函数复制到RAM就可以了,类似iniflash的用法。还有其他段也不要乱改,如.cinit。

另外您可以参考下之前的帖子

e2echina.ti.com/…/76541

我开发基于DSP28335+DSP/BIOS的程序,程序成功编译和链接后,将.out文件烧写到28335后,程序能正常运行。为了缩短程序运行时间,考虑到DSP28335的片内内存较小,我想把程序的.text段和.econst段从Flash加载到片外扩展RAM中运行,我参考了DSP28xxx_SectionCopy_nonBIOS.asm(SPRAAU8)和InitExtMemIf.asm( (David M. Alter)做了以下工作:
开始,在F28335_BIOS_flash.cmd定义了.text段和.econst段,
/*name PAGE 0:
ExtRAM origin:00100000 length:00080000
L67RAM origin:0000e000 length:00002000*/

.text : LOAD = FLASH_ABCDEFGH, PAGE = 0 /* Should be Flash */
RUN = ExtRAM, PAGE = 0 /* Must be CSM secured RAM */
LOAD_START(_text_loadstart),
LOAD_SIZE(_text_loadsize),
RUN_START(_text_runstart)

.econst : LOAD = FLASH_ABCDEFGH, PAGE = 0 /* Should be Flash */
RUN = ExtRAM, PAGE = 0 /* Must be CSM secured RAM */
LOAD_START(_econst_loadstart),
LOAD_SIZE(_econst_loadsize),
RUN_START(_econst_runstart)

然后,参考InitExtMemIf.asm(David M. Alter),初始化了片外扩展RAM
接着,在_c_int00之前,参考DSP28xxx_SectionCopy_nonBIOS.asm,将.text和.econst从Flash加载到片外扩展RAM中
MOVL XAR5,#_text_size ; Store Section Size in XAR5
SUBB XAR5,#1
MOVL ACC,@XAR5 ; Move Section Size to ACC
MOVL XAR6,#_text_loadstart ; Store Load Starting Address in XAR6
MOVL XAR7,#_text_runstart ; Store Run Address in XAR7
LCR copy

MOVL XAR5,#_econst_size ; Store Section Size in XAR5
SUBB XAR5,#1
MOVL ACC,@XAR5 ; Move Section Size to ACC
MOVL XAR6,#_econst_loadstart ; Store Load Starting Address in XAR6
MOVL XAR7,#_econst_runstart ; Store Run Address in XAR7
LCR copy

程序在CCS3.3中能够正常编译和链接,
In .map file, .text section is defined:

section page origin length input sections
——– —- ———- ———- —————-
.text 0 00300f0b 00000d66 RUN ADDR = 00100000
烧写到DSP28335中,程序不能正常加载运行

我把.text改成从DSP片内的L67SARAM加载后,.econst仍从片外扩展RAM中加载,程序编译链接后能够正常加载运行。
.text : LOAD = FLASH_ABCDEFGH, PAGE = 0 /* Should be Flash */
RUN = L67SARAM, PAGE = 0 /* Must be CSM secured RAM */
LOAD_START(_text_loadstart),
LOAD_SIZE(_text_loadsize),
RUN_START(_text_runstart)
.econst : LOAD = FLASH_ABCDEFGH, PAGE = 0 /* Should be Flash */
RUN = ExtRAM, PAGE = 0 /* Must be CSM secured RAM */
LOAD_START(_econst_loadstart),
LOAD_SIZE(_econst_loadsize),
RUN_START(_econst_runstart)

但我的程序只编写了部分,如果完成整个程序,DSP28335片内RAM不能满足所有程序.text的加载,怎样解决将.text段从Flash加载到DSP28335片外扩展RAM中运行?

QuanXing Liu:

回复 Susan Yang:

你给答案回答了将.text段从Flash加载到DSP28335片内RAM中运行,谢谢。但我又碰到了将.text段从Flash加载到DSP28335片外扩展RAM中,程序无法加载运行的情况,麻烦看一下帖子,帮忙解决一下。

我开发基于DSP28335+DSP/BIOS的程序,程序成功编译和链接后,将.out文件烧写到28335后,程序能正常运行。为了缩短程序运行时间,考虑到DSP28335的片内内存较小,我想把程序的.text段和.econst段从Flash加载到片外扩展RAM中运行,我参考了DSP28xxx_SectionCopy_nonBIOS.asm(SPRAAU8)和InitExtMemIf.asm( (David M. Alter)做了以下工作:
开始,在F28335_BIOS_flash.cmd定义了.text段和.econst段,
/*name PAGE 0:
ExtRAM origin:00100000 length:00080000
L67RAM origin:0000e000 length:00002000*/

.text : LOAD = FLASH_ABCDEFGH, PAGE = 0 /* Should be Flash */
RUN = ExtRAM, PAGE = 0 /* Must be CSM secured RAM */
LOAD_START(_text_loadstart),
LOAD_SIZE(_text_loadsize),
RUN_START(_text_runstart)

.econst : LOAD = FLASH_ABCDEFGH, PAGE = 0 /* Should be Flash */
RUN = ExtRAM, PAGE = 0 /* Must be CSM secured RAM */
LOAD_START(_econst_loadstart),
LOAD_SIZE(_econst_loadsize),
RUN_START(_econst_runstart)

然后,参考InitExtMemIf.asm(David M. Alter),初始化了片外扩展RAM
接着,在_c_int00之前,参考DSP28xxx_SectionCopy_nonBIOS.asm,将.text和.econst从Flash加载到片外扩展RAM中
MOVL XAR5,#_text_size ; Store Section Size in XAR5
SUBB XAR5,#1
MOVL ACC,@XAR5 ; Move Section Size to ACC
MOVL XAR6,#_text_loadstart ; Store Load Starting Address in XAR6
MOVL XAR7,#_text_runstart ; Store Run Address in XAR7
LCR copy

MOVL XAR5,#_econst_size ; Store Section Size in XAR5
SUBB XAR5,#1
MOVL ACC,@XAR5 ; Move Section Size to ACC
MOVL XAR6,#_econst_loadstart ; Store Load Starting Address in XAR6
MOVL XAR7,#_econst_runstart ; Store Run Address in XAR7
LCR copy

程序在CCS3.3中能够正常编译和链接,
In .map file, .text section is defined:

section page origin length input sections
——– —- ———- ———- —————-
.text 0 00300f0b 00000d66 RUN ADDR = 00100000
烧写到DSP28335中,程序不能正常加载运行

我把.text改成从DSP片内的L67SARAM加载后,.econst仍从片外扩展RAM中加载,程序编译链接后能够正常加载运行。
.text : LOAD = FLASH_ABCDEFGH, PAGE = 0 /* Should be Flash */
RUN = L67SARAM, PAGE = 0 /* Must be CSM secured RAM */
LOAD_START(_text_loadstart),
LOAD_SIZE(_text_loadsize),
RUN_START(_text_runstart)
.econst : LOAD = FLASH_ABCDEFGH, PAGE = 0 /* Should be Flash */
RUN = ExtRAM, PAGE = 0 /* Must be CSM secured RAM */
LOAD_START(_econst_loadstart),
LOAD_SIZE(_econst_loadsize),
RUN_START(_econst_runstart)

但我的程序只编写了部分,如果完成整个程序,DSP28335片内RAM不能满足所有程序.text的加载,怎样解决将.text段从Flash加载到DSP28335片外扩展RAM中运行?

Susan Yang:

回复 QuanXing Liu:

您是否在程序中执行memcpy将代码从flash复制到外部RAM?如下

memcpy(&text_runstart, &text_loadstart, (Uint32)&text_loadsize);

我开发基于DSP28335+DSP/BIOS的程序,程序成功编译和链接后,将.out文件烧写到28335后,程序能正常运行。为了缩短程序运行时间,考虑到DSP28335的片内内存较小,我想把程序的.text段和.econst段从Flash加载到片外扩展RAM中运行,我参考了DSP28xxx_SectionCopy_nonBIOS.asm(SPRAAU8)和InitExtMemIf.asm( (David M. Alter)做了以下工作:
开始,在F28335_BIOS_flash.cmd定义了.text段和.econst段,
/*name PAGE 0:
ExtRAM origin:00100000 length:00080000
L67RAM origin:0000e000 length:00002000*/

.text : LOAD = FLASH_ABCDEFGH, PAGE = 0 /* Should be Flash */
RUN = ExtRAM, PAGE = 0 /* Must be CSM secured RAM */
LOAD_START(_text_loadstart),
LOAD_SIZE(_text_loadsize),
RUN_START(_text_runstart)

.econst : LOAD = FLASH_ABCDEFGH, PAGE = 0 /* Should be Flash */
RUN = ExtRAM, PAGE = 0 /* Must be CSM secured RAM */
LOAD_START(_econst_loadstart),
LOAD_SIZE(_econst_loadsize),
RUN_START(_econst_runstart)

然后,参考InitExtMemIf.asm(David M. Alter),初始化了片外扩展RAM
接着,在_c_int00之前,参考DSP28xxx_SectionCopy_nonBIOS.asm,将.text和.econst从Flash加载到片外扩展RAM中
MOVL XAR5,#_text_size ; Store Section Size in XAR5
SUBB XAR5,#1
MOVL ACC,@XAR5 ; Move Section Size to ACC
MOVL XAR6,#_text_loadstart ; Store Load Starting Address in XAR6
MOVL XAR7,#_text_runstart ; Store Run Address in XAR7
LCR copy

MOVL XAR5,#_econst_size ; Store Section Size in XAR5
SUBB XAR5,#1
MOVL ACC,@XAR5 ; Move Section Size to ACC
MOVL XAR6,#_econst_loadstart ; Store Load Starting Address in XAR6
MOVL XAR7,#_econst_runstart ; Store Run Address in XAR7
LCR copy

程序在CCS3.3中能够正常编译和链接,
In .map file, .text section is defined:

section page origin length input sections
——– —- ———- ———- —————-
.text 0 00300f0b 00000d66 RUN ADDR = 00100000
烧写到DSP28335中,程序不能正常加载运行

我把.text改成从DSP片内的L67SARAM加载后,.econst仍从片外扩展RAM中加载,程序编译链接后能够正常加载运行。
.text : LOAD = FLASH_ABCDEFGH, PAGE = 0 /* Should be Flash */
RUN = L67SARAM, PAGE = 0 /* Must be CSM secured RAM */
LOAD_START(_text_loadstart),
LOAD_SIZE(_text_loadsize),
RUN_START(_text_runstart)
.econst : LOAD = FLASH_ABCDEFGH, PAGE = 0 /* Should be Flash */
RUN = ExtRAM, PAGE = 0 /* Must be CSM secured RAM */
LOAD_START(_econst_loadstart),
LOAD_SIZE(_econst_loadsize),
RUN_START(_econst_runstart)

但我的程序只编写了部分,如果完成整个程序,DSP28335片内RAM不能满足所有程序.text的加载,怎样解决将.text段从Flash加载到DSP28335片外扩展RAM中运行?

Susan Yang:

回复 QuanXing Liu:

我看您在 e2e.ti.com/…/804789 也发了帖子

我开发基于DSP28335+DSP/BIOS的程序,程序成功编译和链接后,将.out文件烧写到28335后,程序能正常运行。为了缩短程序运行时间,考虑到DSP28335的片内内存较小,我想把程序的.text段和.econst段从Flash加载到片外扩展RAM中运行,我参考了DSP28xxx_SectionCopy_nonBIOS.asm(SPRAAU8)和InitExtMemIf.asm( (David M. Alter)做了以下工作:
开始,在F28335_BIOS_flash.cmd定义了.text段和.econst段,
/*name PAGE 0:
ExtRAM origin:00100000 length:00080000
L67RAM origin:0000e000 length:00002000*/

.text : LOAD = FLASH_ABCDEFGH, PAGE = 0 /* Should be Flash */
RUN = ExtRAM, PAGE = 0 /* Must be CSM secured RAM */
LOAD_START(_text_loadstart),
LOAD_SIZE(_text_loadsize),
RUN_START(_text_runstart)

.econst : LOAD = FLASH_ABCDEFGH, PAGE = 0 /* Should be Flash */
RUN = ExtRAM, PAGE = 0 /* Must be CSM secured RAM */
LOAD_START(_econst_loadstart),
LOAD_SIZE(_econst_loadsize),
RUN_START(_econst_runstart)

然后,参考InitExtMemIf.asm(David M. Alter),初始化了片外扩展RAM
接着,在_c_int00之前,参考DSP28xxx_SectionCopy_nonBIOS.asm,将.text和.econst从Flash加载到片外扩展RAM中
MOVL XAR5,#_text_size ; Store Section Size in XAR5
SUBB XAR5,#1
MOVL ACC,@XAR5 ; Move Section Size to ACC
MOVL XAR6,#_text_loadstart ; Store Load Starting Address in XAR6
MOVL XAR7,#_text_runstart ; Store Run Address in XAR7
LCR copy

MOVL XAR5,#_econst_size ; Store Section Size in XAR5
SUBB XAR5,#1
MOVL ACC,@XAR5 ; Move Section Size to ACC
MOVL XAR6,#_econst_loadstart ; Store Load Starting Address in XAR6
MOVL XAR7,#_econst_runstart ; Store Run Address in XAR7
LCR copy

程序在CCS3.3中能够正常编译和链接,
In .map file, .text section is defined:

section page origin length input sections
——– —- ———- ———- —————-
.text 0 00300f0b 00000d66 RUN ADDR = 00100000
烧写到DSP28335中,程序不能正常加载运行

我把.text改成从DSP片内的L67SARAM加载后,.econst仍从片外扩展RAM中加载,程序编译链接后能够正常加载运行。
.text : LOAD = FLASH_ABCDEFGH, PAGE = 0 /* Should be Flash */
RUN = L67SARAM, PAGE = 0 /* Must be CSM secured RAM */
LOAD_START(_text_loadstart),
LOAD_SIZE(_text_loadsize),
RUN_START(_text_runstart)
.econst : LOAD = FLASH_ABCDEFGH, PAGE = 0 /* Should be Flash */
RUN = ExtRAM, PAGE = 0 /* Must be CSM secured RAM */
LOAD_START(_econst_loadstart),
LOAD_SIZE(_econst_loadsize),
RUN_START(_econst_runstart)

但我的程序只编写了部分,如果完成整个程序,DSP28335片内RAM不能满足所有程序.text的加载,怎样解决将.text段从Flash加载到DSP28335片外扩展RAM中运行?

QuanXing Liu:

回复 Susan Yang:

是的,因为回的帖子没有解决问题,并且没有进一步更新,我就试着用中文发了一下。

我开发基于DSP28335+DSP/BIOS的程序,程序成功编译和链接后,将.out文件烧写到28335后,程序能正常运行。为了缩短程序运行时间,考虑到DSP28335的片内内存较小,我想把程序的.text段和.econst段从Flash加载到片外扩展RAM中运行,我参考了DSP28xxx_SectionCopy_nonBIOS.asm(SPRAAU8)和InitExtMemIf.asm( (David M. Alter)做了以下工作:
开始,在F28335_BIOS_flash.cmd定义了.text段和.econst段,
/*name PAGE 0:
ExtRAM origin:00100000 length:00080000
L67RAM origin:0000e000 length:00002000*/

.text : LOAD = FLASH_ABCDEFGH, PAGE = 0 /* Should be Flash */
RUN = ExtRAM, PAGE = 0 /* Must be CSM secured RAM */
LOAD_START(_text_loadstart),
LOAD_SIZE(_text_loadsize),
RUN_START(_text_runstart)

.econst : LOAD = FLASH_ABCDEFGH, PAGE = 0 /* Should be Flash */
RUN = ExtRAM, PAGE = 0 /* Must be CSM secured RAM */
LOAD_START(_econst_loadstart),
LOAD_SIZE(_econst_loadsize),
RUN_START(_econst_runstart)

然后,参考InitExtMemIf.asm(David M. Alter),初始化了片外扩展RAM
接着,在_c_int00之前,参考DSP28xxx_SectionCopy_nonBIOS.asm,将.text和.econst从Flash加载到片外扩展RAM中
MOVL XAR5,#_text_size ; Store Section Size in XAR5
SUBB XAR5,#1
MOVL ACC,@XAR5 ; Move Section Size to ACC
MOVL XAR6,#_text_loadstart ; Store Load Starting Address in XAR6
MOVL XAR7,#_text_runstart ; Store Run Address in XAR7
LCR copy

MOVL XAR5,#_econst_size ; Store Section Size in XAR5
SUBB XAR5,#1
MOVL ACC,@XAR5 ; Move Section Size to ACC
MOVL XAR6,#_econst_loadstart ; Store Load Starting Address in XAR6
MOVL XAR7,#_econst_runstart ; Store Run Address in XAR7
LCR copy

程序在CCS3.3中能够正常编译和链接,
In .map file, .text section is defined:

section page origin length input sections
——– —- ———- ———- —————-
.text 0 00300f0b 00000d66 RUN ADDR = 00100000
烧写到DSP28335中,程序不能正常加载运行

我把.text改成从DSP片内的L67SARAM加载后,.econst仍从片外扩展RAM中加载,程序编译链接后能够正常加载运行。
.text : LOAD = FLASH_ABCDEFGH, PAGE = 0 /* Should be Flash */
RUN = L67SARAM, PAGE = 0 /* Must be CSM secured RAM */
LOAD_START(_text_loadstart),
LOAD_SIZE(_text_loadsize),
RUN_START(_text_runstart)
.econst : LOAD = FLASH_ABCDEFGH, PAGE = 0 /* Should be Flash */
RUN = ExtRAM, PAGE = 0 /* Must be CSM secured RAM */
LOAD_START(_econst_loadstart),
LOAD_SIZE(_econst_loadsize),
RUN_START(_econst_runstart)

但我的程序只编写了部分,如果完成整个程序,DSP28335片内RAM不能满足所有程序.text的加载,怎样解决将.text段从Flash加载到DSP28335片外扩展RAM中运行?

QuanXing Liu:

回复 早安咬Fan:

谢谢你的解答。我本意是想提高程序的运行速度,我的程序主要是矩阵计算,由于程序比较大,无法完全加载到内部RAM中,才想到把程序特别是.text段从Flash加载到外部RAM中来运行速度。但正如你所说,外扩 RAM 里执行初始化 外扩 RAM 的程序是悖论。理论上将程序全部从Flash加载到内部RAM中能提高运行速度,但F28335的内部内存只有34K,能够给我一些好的建议,怎么有效提高整个程序的速度。

我开发基于DSP28335+DSP/BIOS的程序,程序成功编译和链接后,将.out文件烧写到28335后,程序能正常运行。为了缩短程序运行时间,考虑到DSP28335的片内内存较小,我想把程序的.text段和.econst段从Flash加载到片外扩展RAM中运行,我参考了DSP28xxx_SectionCopy_nonBIOS.asm(SPRAAU8)和InitExtMemIf.asm( (David M. Alter)做了以下工作:
开始,在F28335_BIOS_flash.cmd定义了.text段和.econst段,
/*name PAGE 0:
ExtRAM origin:00100000 length:00080000
L67RAM origin:0000e000 length:00002000*/

.text : LOAD = FLASH_ABCDEFGH, PAGE = 0 /* Should be Flash */
RUN = ExtRAM, PAGE = 0 /* Must be CSM secured RAM */
LOAD_START(_text_loadstart),
LOAD_SIZE(_text_loadsize),
RUN_START(_text_runstart)

.econst : LOAD = FLASH_ABCDEFGH, PAGE = 0 /* Should be Flash */
RUN = ExtRAM, PAGE = 0 /* Must be CSM secured RAM */
LOAD_START(_econst_loadstart),
LOAD_SIZE(_econst_loadsize),
RUN_START(_econst_runstart)

然后,参考InitExtMemIf.asm(David M. Alter),初始化了片外扩展RAM
接着,在_c_int00之前,参考DSP28xxx_SectionCopy_nonBIOS.asm,将.text和.econst从Flash加载到片外扩展RAM中
MOVL XAR5,#_text_size ; Store Section Size in XAR5
SUBB XAR5,#1
MOVL ACC,@XAR5 ; Move Section Size to ACC
MOVL XAR6,#_text_loadstart ; Store Load Starting Address in XAR6
MOVL XAR7,#_text_runstart ; Store Run Address in XAR7
LCR copy

MOVL XAR5,#_econst_size ; Store Section Size in XAR5
SUBB XAR5,#1
MOVL ACC,@XAR5 ; Move Section Size to ACC
MOVL XAR6,#_econst_loadstart ; Store Load Starting Address in XAR6
MOVL XAR7,#_econst_runstart ; Store Run Address in XAR7
LCR copy

程序在CCS3.3中能够正常编译和链接,
In .map file, .text section is defined:

section page origin length input sections
——– —- ———- ———- —————-
.text 0 00300f0b 00000d66 RUN ADDR = 00100000
烧写到DSP28335中,程序不能正常加载运行

我把.text改成从DSP片内的L67SARAM加载后,.econst仍从片外扩展RAM中加载,程序编译链接后能够正常加载运行。
.text : LOAD = FLASH_ABCDEFGH, PAGE = 0 /* Should be Flash */
RUN = L67SARAM, PAGE = 0 /* Must be CSM secured RAM */
LOAD_START(_text_loadstart),
LOAD_SIZE(_text_loadsize),
RUN_START(_text_runstart)
.econst : LOAD = FLASH_ABCDEFGH, PAGE = 0 /* Should be Flash */
RUN = ExtRAM, PAGE = 0 /* Must be CSM secured RAM */
LOAD_START(_econst_loadstart),
LOAD_SIZE(_econst_loadsize),
RUN_START(_econst_runstart)

但我的程序只编写了部分,如果完成整个程序,DSP28335片内RAM不能满足所有程序.text的加载,怎样解决将.text段从Flash加载到DSP28335片外扩展RAM中运行?

QuanXing Liu:

回复 早安咬Fan:

XU FAN:

      谢谢你的回复,还是有2个问题想请教。

     1.我试过简单办法,但关键函数还是太大,内部 RAM太小放不下,所以想找你学习一下复杂方法,能否提供一个例子供我好好研究一下。

     2.还有一个问题,我查了一下资料,F28335的外部RAM速度比较慢,请看下图,比片内Flash还慢,不知道有什么办法提高F28335外部RAM的读写速度,也不知道C6000外部RAM速度怎么样?

赞(0)
未经允许不得转载:TI中文支持网 » 如何将.text段从Flash加载到DSP28335片外扩展RAM中运行
分享到: 更多 (0)