基于VC仿真的操作系统以及协议栈的模拟好处是很多的,众所周知在VC 上仿真应用程序是相当容易的,debug 等更是支持的非常的完美,而且有广大的用户群体,所以基于VC 的仿真是一个很切实际的事情。
VC 的版本选择最终考虑了vs 2010 或者更高的环境,比如vs 2012, 这样做的好处是跨平台。Winxp 和win 7 等都兼容。
操作系统是一个纯软件的结合体,如果要让一个操作系统在具体的芯片上跑起来,只需要一个驱动,即系统定时器.
读者感兴趣的可以下载:
下载之后打开main.c
看到如下代码:
int main(int argc, char * argv[])
{
VCInit();
start_vc_timer(1000 / RAW_TICKS_PER_SECOND);
raw_os_init();
//queue_size_test();
//queue_test2();
task_test();
//mem_test();
//flag_test();
//timer_test();
//sem_test();
//mutex_test();
//queue_test2_mqueue();
//posix_test();
//interrupt_mode_test();
//stm_test();
//rf_test();
//protothread_test();
//multi_pend_test();
//task_0_test();
//work_queue_test();
//rbtree_test();
//bit_search_test();
//zero_interrupt_test();
//idle_event_test();
//idle_schedule_test();
raw_os_start();
return 0;
}
可以看到有很多的单元测试例子,比如
queue_size_test,queue_test2, 测试的时候一次只打开一个例子,本文的例子打开的是:
task_test,其他例子读者感兴趣的可以自己打开调试运行。
单元测试是测试raw os 的一个强有力的手段,事实上所有对raw os 的api 的验证全部是在VC上完成的,很多人帮忙移植了其它的芯片平台,比如2440, cortex-m3 等等。
综合测试的例子也是需要的,raw os 支持在VC 上仿真lwip 整个网络协议栈,这里不再表述,有兴趣的可以官网下载并测试。