1. 使用大道科技的EASY-DSP5509开发板,测试第一个例程,DSP_easy5509\Code-Easy5509\EX01_XF\XF
2. 直接编译,报出错误,在Problems窗口错误指示
Description Resource Path Location Type
#16004 file "E:/Debug/Easy5509/EX01_XF/Debug/XF.obj" has aXF C/C++ Problem
在console窗口报出的错误如下:
fatal error #16004: file "E:/Debug/Easy5509/EX01_XF/Debug/XF.obj" has a
Tag_Memory_Model attribute value of "1" that is different than one
previously seen ("2"); combining incompatible files
其中DSP5000系列,有2个库,运行时支持库rts5xxx.lib和芯片支持库csl5xxx.lib,网上的说法,上面的库是老版本的名字,需要用新版本的
3. 找到原来工程,在其他工程拷贝一个到 DSP_easy5509\Code-Easy5509\EX08_USB\rts55x.lib,编译通过,但是用CCS安装目录下的编译不通过
4. 创建一个ccxml文件
5. 进入debug模式,发现连接不上,报个错误,后来发现这个板子有启动模式,改到USB模式,烧写成功。
6. 分析下硬件,XF这个引脚什么用途?
XF(External flag output)的作用: 在多处理器结构中,利用 XF向其它处理器发送信号; 或者被用作通用输出脚。
实验内容: 测试 XF 引脚信号 “SSBX XF”指令将 XF 脚输出置为高电平,“RSBX XF”则将 XF输出置低。
7. 看下代码,调用汇编指令 asm("cmd"); 比较简单
main()
{
CLK_init(); // 初始化DSP运行时钟
while()
{
asm(" SSBX XF"); //
Delay(); // 延时
asm(" RSBX XF"); //
Delay(); // 延时
}
}
8. 时钟初始化函数,直接向时钟配置寄存器写值,难道没函数库的吗?
void CLK_init()
{
ioport unsigned int *clkmd;
clkmd=(unsigned int *)0x1c00; //地址
*clkmd =0x21f3; // 晶振12Hz,9Hz=0x21f3;// 144MHz=0x2613
}
9. 问题总结,csl和rts函数库的API说明文档在哪里?DSP5509为啥要用外部EEPROM下载程序,内部没空间?
10. C55xxCSL.exe芯片支持库应该是要安装的,找到它的API文档TMS320C55x Chip Support Library API Reference Guide (Rev. J).pdf,不过RTS的还没找到
11. CMD文件,感觉比较重要,暂时还看不懂
-w
-stack
-sysstack
-l rts55x.lib MEMORY
{
DARAM: o=0x100, l=0x7f00
VECT : o=0x8000, l=0x100
DARAM2: o=0x8100, l=0x7f00
SARAM: o=0x10000, l=0x30000
SDRAM: o=0x40000, l=0x3e0000
} SECTIONS
{
.text: {} > DARAM
.vectors: {} > VECT
.trcinit: {} > DARAM
.gblinit: {} > DARAM
frt: {} > DARAM
.cinit: {} > DARAM
.pinit: {} > DARAM
.sysinit: {} > DARAM
.bss: {} > DARAM2
.far: {} > DARAM2
.const: {} > DARAM2
.switch: {} > DARAM2
.sysmem: {} > DARAM2
.cio: {} > DARAM2
.MEM$obj: {} > DARAM2
.sysheap: {} > DARAM2
.sysstack {} > DARAM2
.stack: {} > DARAM2
}