本帖最后由 chujunzbdx 于 2016-4-6 21:41 编辑 1. 初始化外设,启动SYSBIOS。2.在图形化软件中,使用钩子函数设置线程指定及设定TCP服务器IP地址(图1
2016-04-06 21:40
``
2015-12-18 01:59
不错的一个文件,对于像学习DSPbios的童鞋有所帮助
2013-07-10 22:07
1.需要建立与硬件映射相对应的平台(即建立RTSC Platform )这个相当于是在裸机开发C6655时,每个工程需要建立的CMD文件的图形化配置。这个需要对相应的硬件进行map映射,建立硬件所需的RTSC Platform。2.建立RTSC CCS工程文件这个和裸机开发就一点不一样,要选择SYS/BIOS组件,以及在第一步中建立的平台。详细过程请参考创龙手册,这里不详细叙述。 3调试 通过CCS控制台输出(下面两句函数必须一起使用) System_printf("Creat the taskMain()\n");调试输出函数; System_flush();强制输出;4 SYS/BIOS————任务(动态创建) a.创建Task_Params taskParams;Task_Params_init(&taskParams);taskParams.stackSize = 512;taskParams.priority = 15;Task_create((Task_FuncPtr)myFxn, &taskParams, &eb); b.任务进程指派Void taskMain(UArg a0, UArg a1)5 SYS/BIOS————时钟 a.创建Clock_Params ClkParams;Clock_Params_init(&ClkParams); ClkParams.period = 3000; ClkParams.startFlag = TRUE; Clock_create(ClkMain, 5000, &ClkParams, NULL);b.时钟驱动 Void ClkMain(UArg arg)请参考附件
2016-03-30 15:03
这篇相对于18,是采用动态创建两个TASK任务线程。线程TASK1Task_Handle task; Error_Block eb; Error_init(&eb); Task_Params taskParams; Task_Params_init(&taskParams); taskParams.priority = 1; task = Task_create(taskMain,&taskParams, &eb); if(task == NULL) {System_printf("Task_create() failed!\n");BIOS_exit(0); }线程TASK2Task_Handle task1;Error_init(&eb);Task_Params_init(&taskParams); taskParams.priority = 2;task1 = Task_create(taskMain1,&taskParams, &eb);if(task1 == NULL) {System_printf("Task_create() failed!\n");BIOS_exit(0); }对应在创龙开发板上与18的帖子效果为一样。从帖子18与帖子19可以比较出动态和静态的创建不同。
2016-03-31 21:52
1软件中断 静态配置图1 静态配置LED1var swi0Params = new Swi.Params();swi0Params.instance.name = "Swi0";swi0Params.priority = 1;Program.global.LED = Swi.create("&LEDSwi", swi0Params);LED2var swi1Params = new Swi.Params();swi1Params.instance.name = "LED2";swi1Params.priority = 2;Program.global.LED2 = Swi.create("&LEDSwi1", swi1Params);2软件中断的触发使能 Swi_post(LED2);Swi_post(LED);3中断响应Void LEDSwi(UArg a0, UArg a1);Void LEDSwi1(UArg a0, UArg a1);
2016-04-05 09:51
外设视频教程2、3讲模型设计(实验平台28335)视频教程3、30讲SYSBIOS(TI鼎力推荐的操作系统)视频教程这73讲视频将让你快速全面的学习了解DSP C2000。
2017-09-06 10:04
常见的两种中断模式1.动态创建硬件中断Void HWIInit(Void){ Hwi_Handle hwi0; Hwi_Params hwiParams; Hwi_Params_init(&hwiParams);//按键中断号 hwiParams.eventId = 91; hwiParams.arg = 0;2.动态创建软件中断Void SWIInit(Void){ Swi_Params swiParams; Swi_Params_init(&swiParams); swiParams.priority = 1; swiParams.arg0 = 0; swiParams.arg1 = 0; swiParams.trigger = 0; swi0 = Swi_create(USER0KEYSwi, &swiParams, NULL);}常见的中断方式的实时性:一般为硬件中断>软件中断。对于不是很重要的中断可以采用硬件中断触发软件中断或者采用硬件中断通过信号量来触发任务。
2016-03-31 21:04
本帖最后由 chujunzbdx 于 2016-3-31 21:45 编辑 静态创建TASK需要在图形界面添加TASK线程,同时在TASK里添加实例,这里添加两个TASk分别为task1,task。 图1 图2 2个实例task对应上面两个task实例图形化操作后生成的脚本语言:var task0Params = new Task.Params();task0Params.instance.name = "task0";Program.global.task0 = Task.create("&taskMain", task0Params);var task1Params = new Task.Params();task1Params.instance.name = "task1";task1Params.priority = 2;Program.global.task1 = Task.create("&taskMain1", task1Params);在main 中对TASK需要两个对应的回调函数Void taskMain(UArg a0, UArg a1)和Void taskMain1(UArg a0, UArg a1)。这里两个TASK线程的优先级是不一样的,所以执行有先后。详细参考附件工程。
2016-03-31 21:37
1.动态创建SWI Swi_Handle swi0; Swi_Params swiParams; Swi_Params_init(&swiParams); swiParams.arg0 = 2; swiParams.arg1 = 0; swiParams.priority = 5; swiParams.trigger = 1; swi0 = Swi_create(LEDSwi, &swiParams, NULL); Swi_post(swi0);2.SWI软件触发使能Swi_post(swi0);3.中断处理函数 Void LEDSwi(UArg a0, UArg a1)一般软件中端(SWI)可以采用任务线程,在任务线程中触发软件中断。其余软件中断触发可以采用and,or或者dec等方式进行。
2016-04-05 09:47