⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 在AVR单片机上使用的一款RTOS
💻 C
字号:
#include <stdio.h>
#include <stdlib.h>
#include <glib.h>

#include "iConfig.h"
#include "kernel/os.h"
#include "kernel/thread.h"

#include "src/tests/itests.h"

#include "src/tests/queue_test.h"

void prvThreadEx(void *);

#define NUM_OF_PRTOC	3

int main(int argc, char *argv[])
{
printf ("starting OS Example\r\n");


int i;
/*
	for (i = 0;i < NUM_OF_PRTOC;i++)	{
		ithread_create(NULL,prvThreadEx,(void *) i, 
		iRTOS_MINIMAL_STACK_SIZE, 1+1,0);
	}
	*/

	/**create tests*/
	itest_create ();
//queue_tests_create (2);
//proto_net_test_create(1);
	iRTOS_scheduler_start();

printf ("\r\n");

return 0;
}
GenItem test_list_item;
GenListIterator resource=&test_list_item;
extern volatile iTCB *thisTCB;

// void prvThreadEx(void * some )
// {
// int i;
// 
// 	printf ("\r\n");
// 	for (i = 0;i < 5;i++){
// 		printf ("\r\nthread OS Example !%u!%u",(int)some,i);
// 		GTimeVal tmp_time;
// 		
// 		g_get_current_time (&tmp_time);
// 		printf ("\r\n Time %u:%u",tmp_time.tv_sec,tmp_time.tv_usec);
// 		thread_yield ();
// 		thread_wait (((int)some+1)*1000,0);
// //		g_usleep (1000*300);
// 		//ithread_wait_on (NULL,2*1000,0);
// 		//ithread_wait_on (resource,-5,0);
// 	}
// 	if (1 == 1) {
// //			ithread_wait_on (NULL,6*1000,0);
// 	}
// 	if ((int)some == 1) {
// 		printf ("\r\nWaint %X",thisTCB);
// 		printf ("\r\nWaint ret %X",thread_wait_on (resource,-5,0));
// 		
// 	}
// 	if ((int)some == 0) {
// 		printf ("\r\nSignal %X",thisTCB);
// 		printf ("\r\nSignal ret%X",thread_signal (resource));
// 	}
// 	printf ("\r\ndeleting %X",thisTCB);
// 	ithread_delete (NULL);
// }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -