DSP/BIOS学习笔记——1.LOG
转自:http://hi.baidu.com/yorkbluedream/item/133921871812f728100ef3bf
软件环境CCS2.20.0 C6000
操作步骤:
1.Setup CCS里选择C64xx Cycle Accurate Sim
2.打开CCS,在Myprojects目录下,新建一个工程,名字为LOGtest
3.新建File->New->DSP/BIOS Configuration,选择C64xx.CDB,使用这个作为模块
4.在DSP/BIOS图形配置界面上在Instrumentation中,在LOG下,右键Insert LOG,重命名为trace.
5.保存DSP/BIOS配置文件为LOGtest.CDB,保存在Myprojects/LOGtest目录下。同时会自动生成
LOGtestcfg.h, (在CBD中使用的模块的定义文件)
LOGtestcfg.cmd,(CMD文件)
LOGtestcfg.s62,(API调用汇编代码)
LOGtestcfg_c.c,(CSL的初始化代码)
文件。
6.将LOGtest.CDB添加到工程中,此时CCS会自动添加LOGtestcfg.s62,LOGtestcfg_c.c文件
7.执行Project->Scan all file dependencies命令,会在Include下自动添加包含的文件。
8.执行Project->Add file to project,将cmd文件添加进工程。
9.File->New->Source File,保存为main.c,在其中输入以下代码
#include "LOGtestcfg.h"
Void main(Void)
{
LOG_printf(&trace,"LOGtest program start!\n");
return;
}
10.执行Project->Add file to project,将main.c文件添加进工程。
11.Build工程
12.File->Load program,选择DSP/BIOS->Message Log,打开LOG的窗口,确定Log name为trace
13.Debug->Go Main
14.F10单步执行。可以看到在LOG窗口输出
DSP/BIOS学习笔记——2.SWI
转自:http://hi.baidu.com/yorkbluedream/item/20d9f8361b64dd332e0f81bd
软件环境CCS2.20.0 C6000
操作步骤:
1.Setup CCS里选择C64xx Cycle Accurate Sim
2.打开CCS,在Myprojects目录下,新建一个工程,名字为SWItest
3.新建File->New->DSP/BIOS Configuration,选择C64xx.CDB,使用这个作为模块
4.在DSP/BIOS图形配置界面上在Instrumentation中,在LOG下,右键Insert LOG,重命名为trace.
5.在DSP/BIOS图形配置界面上在Scheduling目录下,SWI选项下右键Insert SWI,新建SWI0,并设置如下:
functiono:_swiFXN0
priority:1
其余默认。
如此再新建SWI1,属性设置如下:
functiono:_swiFXN1
priority:2
5.保存DSP/BIOS配置文件为SWItest.CDB,保存在Myprojects/SWItest目录下。同时会自动生成
SWItestcfg.h, (在CBD中使用的模块的定义文件)
SWItestcfg.cmd,(CMD文件)
SWItestcfg.s62,(API调用汇编代码)
SWItestcfg_c.c,(CSL的初始化代码)
文件。
6.将SWItest.CDB添加到工程中,此时CCS会自动添加SWItestcfg.s62,SWItestcfg_c.c文件
7.执行Project->Scan all file dependencies命令,会在Include下自动添加包含的文件。
8.执行Project->Add file to project,将cmd文件添加进工程。
9.File->New->Source File,保存为main.c,在其中输入以下代码
#include "SWItestcfg.h"
Void swiFXN0(Void);
Void swiFXN1(Void);
Void main(Int argc, Char *argv[])
{
LOG_printf(&trace,"SWItest started!\n");
LOG_printf(&trace,"Main posts SWI0!\n");
SWI_post(&SWI0);
LOG_printf(&trace,"Main done!\n");
}
Void swiFXN0(Void)
{
LOG_printf(&trace,"swiFxn0 posts SWI1!\n");
SWI_post(&SWI1);
LOG_printf(&trace,"SWI0 done!\n");
}
Void swiFXN1(Void)
{
LOG_printf(&trace,"SWI1 done!\n");
}
10.执行Project->Add file to project,将main.c文件添加进工程。
11.Build工程
12.File->Load program,选择DSP/BIOS->Message Log,打开LOG的窗口,确定Log name为trace
13.Debug->Go Main
14.F10单步执行。可以看到在LOG窗口输出
0 SWItest started!
1 Main posts SWI0!
2 Main done!
3 swiFXN0 posts SWI1!
4 SWI1 done!
5 SWI0 done!
由LOG的输出可以看出,main()函数执行完成后,开始执行BIOS_start,才开始按优先级检测HWI,SWI,TSK的执行