最新实验二DSPBIOS同步对象实验.docx
- 文档编号:2422959
- 上传时间:2022-10-29
- 格式:DOCX
- 页数:13
- 大小:517.54KB
最新实验二DSPBIOS同步对象实验.docx
《最新实验二DSPBIOS同步对象实验.docx》由会员分享,可在线阅读,更多相关《最新实验二DSPBIOS同步对象实验.docx(13页珍藏版)》请在冰豆网上搜索。
最新实验二DSPBIOS同步对象实验
实验二:
DSP_BIOS同步对象实验
实验2:
CCS中DSP/BIOS操作实验
一、实验项目与目的
学习DSP/BIOS中线程task、旗语、邮箱的使用方法,同时进一步练习C语言编程及调试。
二、实验设备
计算机,CC3.3版软件
三、实验内容与步骤
1.配置CCS软件
在桌面上打开,按照图1所示配置。
然后点击“Save&Quit”按钮后退出CCS设置工具,启动CCS。
图1CCS配置界面
2.建立带有DSP/BIOS的项目文件
(1)在桌面上有一个名为tsktest.c的文件,也就是我们实验的源程序文件。
(2)双击桌面上的图标,启动CCS。
(3)在Project菜单下点击New,在出现的项目创建窗口中输入项目文件名称。
名称任意,例如“tsktest”。
如图2所示:
\
图2建立工程
4)把源程序tsktest.c拷贝到当前工程的目录下,然后再加入到工程中,如图3所示:
图3把tsktest.c加入工程中
5)在项目文件查看窗口中打开“+”号展开下面的文件,然后双击文件tsktest.c,在主窗口(右半窗口)显示相应文件的源程序,出现图4,此时可以浏览并检查源程序。
图4浏览源程序和工程
3.向工程中加入DSP/BIOS配置文件
该工程是一个任务、邮箱、旗语的综合测试例程,任务测试部分为3个函数taskA/taskB/taskC,其代码一样。
为方便理解,故放在这3个函数中。
voidtaskA(Argid_arg)
{
Intid=ArgToInt(id_arg);
Inti;
LOG_printf(&trace,"Task%dBeginWorking...",id);
for(i=0;i { LOG_printf(&trace,"LoopNum=%d: TaskID=%d",i,id); TSK_yield(); } LOG_printf(&trace,"Task%dDONE",id); } 这三个函数每个都是一个单独的任务,所以需要在DSP/BIOS环境中运行,下面新建并加入DSP/BIOS配置文件。 1)向工程中加入DSP/BIOS系统,步骤为点击菜单“File->New->DSP/BIOSconfiguration”,如图5所示: 图5新建DSP/BIOS配置文件 出现图6。 图6选择合适的芯片型号图7保存tsktest.tcf 2)点击保存图标,把文件保存为tsktest.tcf,图7所示。 3)用和 图8把tsktest.tcf加入工程 加入后的工程如图9所示,DSP/BIOSConfig下面有了内容,也就是tsktest.tcf: 图9加入DSP/BIOS后的工程 4)修改HEAP的配置,在MEM上面右键,然后“Properties”(图),弹出内存的属性配置,如图10和11所示: 图10修改MEM的属性 然后选中NoDynamicMemortHeaps后,确定即可。 图11修改MEM属性 4.静态建立任务 接下来对DSP/BIOS进行配置,加入三个线程task0/task1/task2,分别用来调用taskA/taskB/taskC三个函数。 这三个函数功能是在日志中写入运行状态,用来演示线程是同时、并行运行的。 在工程中双击tsktest.tcf文件,打开BIOS配置界面。 然后点开”scheduling”,新建一个任务(task),如图12所示: 图12建立任务 然后按照同样的方法分别建立task1、task2,最后如图13所示。 图13建立3个任务task0/task1/task2 修改任务的属性,在task0上点右键,然后选择“属性”,按照图14所示填写内容,它调用函数taskA,第一个参数0作为初始值传入函数taskA中。 图14设置task0的属性 再分别设置task1、task2的属性,其调用的函数分别是taskB和taskC;传入的参数分别是1和2。 5.静态建立信号量 建立信号量sem,如图15所示: 图15建立信号量sem 5.静态建立邮箱 1)在DSP/BIOS中建立了一个邮箱mbx(图16所示),大小为24字节,长度是2,用来存放结构体数据。 图16建立邮箱并设置 2)再为邮箱建立任务线程,分别是读线程taskMbx1和邮箱写线程taskMbx2(图17所示),用来读写邮箱,分别调用函数mbxReader和mbxWriter。 图17邮箱测试线程 3)在DSP/BIOS中建立了旗语sem,旗语测试采用线程triggerSem,调用函数tskSem,如图18所示。 图18建立旗语测试线程 4)除此之外,为方便调试和跟踪程序,在DSP/BIOS中建立了LOG对象trace,用来显示消息,如图19所示。 图19建立LOG对象trace 到此就完成了对象的创建,开始编译程序,点击图标进行编译。 此时会报错,再把文件tsktestcfg.cmd加入工程后重新编译即可。 6.运行程序,观察结果 (1)测试和观察线程 1)编译程序,点击图标,编译成功后,点击File/LoadProgram…,显示图20所示界面。 图20载入程序 2)点击Debug菜单,选择tsktest.out文件后点击按钮“打开”,加载程序。 3)点击菜单DSP/BIOS下的messagelog菜单(图21)。 图21messageLog菜单 弹出图7所示界面,显示出messagelog窗口 图22messagelog窗口 4)单击工具条中的按钮或按F5键,或选择Debug→Run,开始运行程序。 等待一会儿后,在messagelog中显示图8所示信息,表示了task0、task1、task2的执行情况。 图23messageLog信息 该信息表明,task0/task1/task2先后启动,同时运行。 图24清除所有LOG消息 5)在messageLog窗口中点鼠标右键,在弹出窗口中选择Clear,清除所有消息。 6)tsktest.c中,双击变量g_trigger,使之变成全选状态,然后右键,在弹出的菜单中选择AddWatchWindow(图25)。 图25增加变量g_trigger进入观察窗口 显示图26所示界面。 图26观察g_trigger变量的值 7)点击Value0,然后把0修改成1;再右键在弹出的菜单中点击Refresh(图27)。 图27更新WatchWindow 在Log窗口中出现mbx发送和接收的日志,表明已经触发了旗语,从而完成一次邮箱发送和读取操作。 可以重复这个过程,能够看到mbx的id号一直在增加。 四、实验说明 本实验是从建立工程开始,熟悉这个过程后,也可以直接打开文件夹中的工程,从第6步开始运行程序。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 实验 DSPBIOS 同步 对象
![提示](https://static.bdocx.com/images/bang_tan.gif)