久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

RTX的使用---搭建RTX運(yùn)行的環(huán)境

 guitarhua 2012-09-24
【程序】RTX的使用---搭建RTX運(yùn)行的環(huán)境
文章來(lái)源:EDN博客 作者:E_arm 訪問(wèn)次數(shù):350 

--------------------------------------------------------------------------------

文章導(dǎo)讀:本程序?yàn)镽TX的使用---搭建RTX運(yùn)行的環(huán)境
 
  
    使用RTX之前,,先對(duì)系統(tǒng)運(yùn)行的大概流程進(jìn)行簡(jiǎn)單的說(shuō)明。第一步要做的是先配置運(yùn)行的環(huán)境,在MDK中配置運(yùn)行環(huán)境很簡(jiǎn)單,,加入啟動(dòng)匯編代碼后,配置好系統(tǒng)時(shí)鐘,,然后對(duì)RTX的一些參數(shù)進(jìn)行配置就可以了,。然后啟動(dòng)內(nèi)核,啟動(dòng)內(nèi)核會(huì)創(chuàng)建一個(gè)進(jìn)程,??梢栽谶@個(gè)進(jìn)程里創(chuàng)建多個(gè)進(jìn)程并刪除自己。這樣多個(gè)任務(wù)就可以按時(shí)間片輪詢執(zhí)行了,。至于進(jìn)程間的通信可以通過(guò)時(shí)間標(biāo)志,、信號(hào)量、互斥量,、信箱來(lái)實(shí)現(xiàn),。
    這里先舉例說(shuō)明RTX內(nèi)核的啟動(dòng)和使用。進(jìn)程間的通信后續(xù)會(huì)加上,。
1,、新建工程,加入啟動(dòng)匯編;

2,、加入RTX_Config.c文件,,對(duì)操作系統(tǒng)進(jìn)行配置?;A(chǔ)配置包括任務(wù),、堆棧大小、堆棧檢查,、硬件時(shí)鐘,、多任務(wù)輪轉(zhuǎn)、空閑任務(wù),、用戶定時(shí)器的配置,,高級(jí)配置包括硬件資源需求和配置宏。默認(rèn)的配置系統(tǒng)就能很好的工作,,如果要優(yōu)化堆棧的使用就需要進(jìn)行一些配置了,。

任務(wù):
#define OS_TASKCNT     6            /*處于活動(dòng)狀態(tài)的最大任務(wù)數(shù)*/
#define OS_PRIVCNT     0            /*是否可以用戶自定義任務(wù)*/

堆棧:
#define OS_STKSIZE     50            /*默認(rèn)的堆棧大小*/
#define OS_STKCHECK    1            /*激活堆棧檢查*/

#define OS_RUNPRIV     0            /*是否運(yùn)行所有的任務(wù)在特權(quán)模式*/

用戶定時(shí)器:
#define OS_TIMERCNT    0            /*指定的用戶定時(shí)器數(shù)目*/

硬件時(shí)鐘:
#define OS_CLOCK       72000000        /*為選定的時(shí)鐘指定輸入時(shí)鐘的頻率*/
#define OS_TICK        10000        /*指定時(shí)間脈沖間隔,單位us*/

多任務(wù)輪轉(zhuǎn)
#define OS_ROBIN       1            /*是否激活多任務(wù)輪轉(zhuǎn)*/
#define OS_ROBINTOUT   5            /*標(biāo)識(shí)當(dāng)前運(yùn)行任務(wù)的時(shí)間片,,當(dāng)前時(shí)間片用完,,當(dāng)前運(yùn)行任務(wù)被終止,下一個(gè)任務(wù)被重新開(kāi)始*/

說(shuō)明: ARM處理器共支持7種處理器模式,,其中包括:用戶模式,、系統(tǒng)模式、管理模式,、中止模式,、未定義模式、中斷模式,、快速中斷模式,。其中管理、中止,、未定義,、中斷、快速中斷歸屬于異常模式,。而異常和系統(tǒng)歸屬于特權(quán)模式,。

3、在C文件中包含頭文件#include <RTL.h>就可以使用RTX的庫(kù)函數(shù),,啟動(dòng)內(nèi)核了,。下面舉例說(shuō)明。
#include <RTL.h>

OS_TID phase_A;                      /* 分配任務(wù)ID號(hào): phase_A*/
OS_TID phase_B;                      /* 分配任務(wù)ID號(hào): phase_B*/

static U64 stack[800/8];          /*自定義的堆棧大小*/

__task void init(void);             
__task void phase_A(void);      /* 進(jìn)程函數(shù)的聲明*/
__task void phase_B(void) ;
 

int main (void)
{                     
      SYS_Init ();                   /* 初始化系統(tǒng)的時(shí)鐘*/
    os_sys_init (init);            /* 按照默認(rèn)的配置初始化第一個(gè)進(jìn)程*/
}

/*第一個(gè)進(jìn)程:創(chuàng)建新的線程并刪除自己*/
__task void init (void) 
{
    phase_A = os_tsk_create (task_A,  0);      /* 使用默認(rèn)的配置創(chuàng)建一個(gè)進(jìn)程*/
       phase_A = os_tsk_create_user (task_B,0,&stack,sizeof(stack));  /*使用自定義的堆棧創(chuàng)建進(jìn)程*/
       os_tsk_delete_self ();                 /*刪除自己*/
}

__task void task_A(void) 
{
    /*編寫(xiě)用戶代碼*/
}
__task void task_B(void)
{
        /*編寫(xiě)用戶代碼*/

本文來(lái)自: 高校自動(dòng)化網(wǎng)(Www.) 詳細(xì)出處參考(轉(zhuǎn)載請(qǐng)保留本鏈接):http://www./html/MCS51/5537_2.html

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多