پاسخ : سیستم عامل بی درنگ RTX برای ARM7/9 و Cortex-M
مثال خیلی خوبی بود. چشم و گوشمون باز شد!
مثال خیلی خوبی بود. چشم و گوشمون باز شد!
[left][font=arial]#include <AT91SAM7X256.h> #include <rtl.h> #include <stdio.h> #include "usart.h" #include "board.h" #include "spi.h" #include "sd_spi.h" #define BOAR_CLK 48000000 char buferID1[20]; char buferID2[20]; char buf[]="\r\nTASK1\n\r"; char buf1[]="TASK2\n\r"; unsigned char data[20] = "Mohsen Joudi\n\r"; unsigned char bufmmc[30]; OS_TID tsk_ID1, tsk_ID2; __task void task_init(void); __task void task1(void); __task void task2(void); __task void MMC(void); void blink1(void); void blink2(void); int main() { init_usart(); spiInit(); USART_WriteBuffer(USART0,"Test RTX USART MCC\n\r",sizeof("Test RTX USART MMC\n\r")); if(sdCardInit() == 1) { if(sdWriteBlock(1000,data) == 1) { USART_WriteBuffer(USART0,"ok MMC",sizeof("ok MMC")); } else { USART_WriteBuffer(USART0,"not init",sizeof("not init")); } } else {USART_WriteBuffer(USART0,"error",sizeof("error"));} os_sys_init(task_init); while(1){} return 0; } __task void task_init(void) { //initialization ports for led *AT91C_PIOB_PER = (1 << 0) | (1 << 1); *AT91C_PIOB_OER = (1 << 0) | (1 << 1); *AT91C_PIOB_OWER = (1 << 0) | (1 << 1); tsk_ID1 = os_tsk_create(task1, 1); //priority:1 tsk_ID2 = os_tsk_create(task2, 1); //priority:1 os_tsk_create(MMC, 1); //priority:1 sprintf(buferID1,"ID1: %d\n\r", tsk_ID1); sprintf(buferID2,"ID2: %d\n\r", tsk_ID2); os_tsk_delete_self(); //necessary } __task void task1(void) { int i = 0; while(1){ for (i = 0; i < 0x8ffff; i++);//process blink1(); } } __task void task2(void) { int i = 0; while(1){ for (i = 0; i < 0x8ffff; i++);//process blink2(); } } __task void MMC(void) { int i; while(1){ os_dly_wait(50); sdReadBlock(1000,bufmmc); USART_Write(USART0,'\r',0); for(i=0 ; i < 20 ;i++) USART_Write(USART0,bufmmc[i],0); } } void blink1(void) { *AT91C_PIOB_ODSR ^= (1 << 0); USART_WriteBuffer(USART0,buferID1,sizeof(buferID1)); } void blink2(void) { *AT91C_PIOB_ODSR ^= (1 << 1); USART_WriteBuffer(USART0,buferID2,sizeof(buferID2)); }[/font][/left]
دیدگاه