DSP编程技巧之答疑解惑
00, length = 0x008000 /* on-chip FLASH */
FLASHE : origin = 0x318000, length = 0x008000 /* on-chip FLASH */
...
}
合并之后的Flash区间为:
MEMORY
{
//
// Sectors E and F merged into one in the MEMORY description
//
...
FLASH : origin = 0x310000, length = 0x010000 /* on-chip FLASH F FLASH E */
...
}
方法二:反其道行之,把段分配到多个Flash模块中,与问答36的方法二是一致的,例如:
SECTIONS
{
.text: { *(.text) } >> FLASHE| FLASHH
}
4、 在cmd文件中,可以把相邻的SARAM模块组合为一个整体的区间吗?
答案是可以的,方法与Flash组合的方法一样。
虽然这样做是完全没有问题的,但需要牢记SARAM模块都是单个机器周期内只能访问一次的,所以为了优化程序的性能,最好把代码给分区到不同的物理SARAM模块中,这样可以减少大量读/写操作中的资源冲突。
5、对于DSP/BIOS的工程,如何了解链接的信息?
DSP/BIOS 的配置工具生成一个cmd文件,规定如何连接所有 DSP/BIOS 生成的程序段,并且默认链接至所有 C/C++ 语言编译程序生成的程序段。 当从 RAM 运行程序时,可能只需要这一个cmd文件就够了。但在当从Flash中执行时,很有可能需要生成且连接一个或多个自定义的程序段。
此外,任何配置片载Flash控制寄存器(例如,Flash等待状态)的代码不能从Flash执行。我们也许需要从 RAM(而非Flash)中运行特定时间关键函数来大幅提升性能。 必须创建一个自定义cmd来处理这些我们定义的程序段。可以参考Running an Application from Internal Flash Memory on the TMS320F28xx DSP这个文档,其示例代码在http://www.ti.com/general/docs/l ... 58fileType=zip。
需要注意的是,这些文档和程序与新版本的CCS中所包含SYS/BIOS并不是完全兼容的。此外,如果我们想使用第三方的操作系统,例如VxWorks、us/OS、INTEGRITY等,则要根据这些RTOS的特点进行内存的分配与管理。
- 在采用FPGA设计DSP系统中仿真的重要性 (06-21)
- 基于 DSP Builder的FIR滤波器的设计与实现(06-21)
- 达芬奇数字媒体片上系统的架构和Linux启动过程(06-02)
- FPGA的DSP性能揭秘(06-16)
- 用CPLD实现DSP与PLX9054之间的连接(07-23)
- DSP+FPGA结构在雷达模拟系统中的应用(01-02)