main()函数:只用来初始化,与VC中的区别是main函数并不是一个主线程中的函数。
在DSP中的BIOS,其线程中的线程函数一般都会写成死循环,和单片机有点类似。
DM642工作的函数执行顺序:
1、 初始化一些对应型号DSP的信息。初始化DM642上面的寄存器。
函数为dm642init();
包含了evmdm642_256M。没有包含evmdm642_vacapparamsPAL
2、 也是初始化需要使用的硬件外围的信息。
比如Vport口,需要使用VideoInit()和VideoStart().初始化视频信息。
(视频输入两种方式:
一种Vport口,输入模拟信号,用SAA7115芯片采样成数字信号。此时需要VideoInit()和VideoStart().
一种是EMIF,用FPGA与DSP通信,此时就不再需要用VideoInit()和VideoStart();)
函数为main();
3、 此时设置根据TSK-Task Manager中设置的线程优先级及线程函数来决定执行的函数的先后顺序。
函数为优先级高的函数
比如在我们的程序中有如下三个线程:
NetWork_Main设置的优先级对应为5
task_Check_Command设置的优先级是-1
tskNetworkTx设置的优先级是-1
TSK_idle的优先级被系统固定为0。
这里我们可以看到NetWork_Main线程中的函数肯定是优先执行。一般情况下会在NetWork_Main把优先级为-1的用函数TSK_setpri()更改为高于0的优先级。这样就可以执行原本是-1的线程中的函数,而不是被挂起。
这样做是为了,一开始就让NetWork_Main先执行,相当于先建立连接和做一些下面执行所需要的工作。
据贝贝童鞋的原话,CCS中粉红 {MOD}的函数名是指自己写的函数,即自己添加的函数。而没有变 {MOD}的那些黑 {MOD}的函数名则是系统自带的函数,或者自带的库函数。