继续更新。Micrium公司写了一本ucos-3的书,书上有4个demo,我把第三个拿来跑了跑。
据我的理解,这个任务是分别测量内核对象(包括信号量、任务内建信号量、消息队列、任务内建消息队列、互斥型信号量、事件标志组)
在任务内传递的时间和两个任务之间传递的时间。下面对源码做个简要的说明。
定义了一个结构体,里边有两个指向函数的指针。
typedef struct test { void (*Tx)(CPU_INT08U ix);
void (*Rx)(CPU_INT08U ix);
} APP_TEST;
下面定义了一个结构体数组,并且为每一个成员赋予所指向的函数的指针,这样就构成了上图的AppTestTbl[]。
注意,每一个成员都指向一个函数,也就是函数名。
static APP_TEST AppTestTbl[] = {
{AppTestTx_Sem1, AppTestRx_Sem1 }, // 0
{AppTestTx_Sem2, AppTestRx_Sem2 }, // 1
{AppTestTx_TaskSem1, AppTestRx_TaskSem1}, // 2
{AppTestTx_TaskSem2, AppTestRx_TaskSem2}, // 3
{AppTestTx_Q1, AppTestRx_Q1 }, // 4
{AppTestTx_Q2, AppTestRx_Q2 }, // 5
{AppTestTx_TaskQ1, AppTestRx_TaskQ1 }, // 6
{AppTestTx_TaskQ2, AppTestRx_TaskQ2 }, // 7
{AppTestTx_Mutex1, AppTestRx_Mutex1 }, // 8
{AppTestTx_Flag1, AppTestRx_Flag1 }, // 9
{AppTestTx_Flag2, AppTestRx_Flag2 }, // 10
{0, 0 }
};
不知大家是否有兴趣。我先把uc-probe的一些调试信息展示出来。
正式版需要购买,我用的是试用版,许多功能受到限制,不过还是能看到一些调试信息。
令我感到困惑的是CPU Usage竟然达到了98%。
uc-probe还可以通过拖拽控件创建图形界面(最后一张图),以显示某个变量的值,非常直观。
但是由于没有购买正式版,这个功能暂时不可用。
|