پاسخ : سیستم عامل بی درنگ 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]

دیدگاه