DSP5509的XF实验-第一篇

1. 使用大道科技的EASY-DSP5509开发板,测试第一个例程,DSP_easy5509Code-Easy5509EX01_XFXF

2. 直接编译,报出错误,在Problems窗口错误指示

Description Resource Path Location Type
#16004 file "E:/Debug/Easy5509/EX01_XF/Debug/XF.obj" has a XF 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_easy5509Code-Easy5509EX08_USB ts55x.lib,编译通过,但是用CCS安装目录下的编译不通过

4. 创建一个ccxml文件

5. 进入debug模式,发现连接不上,报个错误,后来发现这个板子有启动模式,改到USB模式,烧写成功。

6. 分析下硬件,XF这个引脚什么用途?

XF(External flag output)的作用:  在多处理器结构中,利用 XF向其它处理器发送信号; 或者被用作通用输出脚。  

实验内容:  测试 XF 引脚信号    “SSBX  XF”指令将 XF 脚输出置为高电平,“RSBX  XF”则将 XF输出置低。

7. 看下代码,调用汇编指令 asm("cmd"); 比较简单

 1 main()
 2 {
 3     CLK_init();                    // 初始化DSP运行时钟                
 4     while(1)
 5     {           
 6             asm(" SSBX XF");         // 
 7             Delay(256);            // 延时        
 8             asm(" RSBX XF");        // 
 9             Delay(256);            // 延时
10     }
11 }

8. 时钟初始化函数,直接向时钟配置寄存器写值,难道没函数库的吗?

1 void CLK_init()
2 {
3    ioport unsigned int *clkmd;
4    clkmd=(unsigned int *)0x1c00;  //地址
5    *clkmd =0x21f3;    // 晶振12Hz,9Hz=0x21f3;// 144MHz=0x2613
6 }

9. 问题总结,csl和rts函数库的API说明文档在哪里?DSP5509为啥要用外部EEPROM下载程序,内部没空间?

10. C55xxCSL.exe芯片支持库应该是要安装的,找到它的API文档TMS320C55x Chip Support Library API Reference Guide (Rev. J).pdf,不过RTS的还没找到

11. CMD文件,感觉比较重要,暂时还看不懂

 1 -w
 2 -stack 500
 3 -sysstack 500
 4 -l rts55x.lib
 5 
 6 MEMORY 
 7 {
 8     DARAM:    o=0x100,    l=0x7f00
 9     VECT :  o=0x8000,    l=0x100
10     DARAM2: o=0x8100,    l=0x7f00
11     SARAM:  o=0x10000,    l=0x30000
12     SDRAM:    o=0x40000,    l=0x3e0000
13 }
14 
15 SECTIONS
16 {
17     .text:    {} > DARAM 
18     .vectors: {} > VECT 
19     .trcinit: {} > DARAM 
20     .gblinit: {} > DARAM 
21      frt:     {} > DARAM 
22     .cinit:   {} > DARAM 
23     .pinit:   {} > DARAM 
24     .sysinit: {} > DARAM 
25     .bss:     {} > DARAM2 
26     .far:     {} > DARAM2 
27     .const:   {} > DARAM2 
28     .switch:  {} > DARAM2 
29     .sysmem:  {} > DARAM2 
30     .cio:     {} > DARAM2 
31     .MEM$obj: {} > DARAM2 
32     .sysheap: {} > DARAM2 
33     .sysstack {} > DARAM2 
34     .stack:   {} > DARAM2
35 }
原文地址:https://www.cnblogs.com/429512065qhq/p/8119819.html