樹莓派μC/OSII移植

made by Rk

本文由浙江大學《嵌入式系統》課程提供強力支持。

感謝翁愷老師 @翁愷BA5AG

/*************************************************************/

實驗要求:

移植uC/OS II到RPi上,實現兩個任務的調度。這兩個任務能輪流點亮LED,並通過串口發送消息表明自己正在運行

下載源碼

在下面網址下載助教給的源代碼
http://pan.baidu.com/share/link?shareid=454963&uk=1409658586

修正錯誤

a)makefile文件

由於操作系統等原因,源代碼中有許多錯誤。

將此處第一行改爲本地交叉編譯環境的gcc編譯器所在目錄;
將第二行修改爲./h,表示本目錄h文件夾。

b)註釋問題

startup.s中,註釋符號錯誤:
將其中類似註釋均修改爲彙編文件中的@


還有OS_Cpu_a.s中的註釋。

c)大小寫問題

在includes.h中include了ucos/os_cfg文件,但是實際文件爲大寫,修改文件名爲includes.h中一致。

d)makefile文件名

make過程提示沒有文件,其實是makefile中最後文件名多了一個點

e)編寫LCD燈閃爍代碼:
其中板載燈的GPIO編號爲16,所以需要1<<16操作。
#include "uart.h"
#include "ucos/includes.h"

#define GPSET0 0x2020001C
#define GPCLR0 0x20200028

extern void PUT32 (unsigned int , unsigned int);
extern unsigned int GET32(unsigned int);

void userApp2(void * args)
{
	while(1)
	{
		PUT32(GPCLR0, 1<<16);
		OSTimeDly(100);
		uart_string("in userApp2");
		OSTimeDly(100);
	}
}

void userApp1(void * args)
{
	while(1)
	{
		uart_string("in userApp1");
		OSTimeDly(100);
		PUT32(GPSET0, 1<<16);
		OSTimeDly(100);
	}
}

實驗成功,ACT燈閃爍狀態穩定。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章