找回密碼
         注冊(cè)會(huì)員
        搜索附件  

        RaySRTOS0.3版本.rar

         

        【開源】RaysRTOS(光芒實(shí)時(shí)系統(tǒng)),全搶占式優(yōu)先級(jí)調(diào)度,我寫了51,:

        RaySRTOS0.3版本 支持三種平臺(tái):51 AVR STM8
        較以前版本將RaySRTOS主文件和不同CPU平臺(tái)文件分開,形成了以下目錄:
        RaySRTOS(總體文件夾)
        |Kernel(文件夾)|RaySRTOS.c 系統(tǒng)平臺(tái)無(wú)關(guān)主文件
        | |RaySRTOS.h 系統(tǒng)平臺(tái)無(wú)關(guān)頭文件
        |
        |CPU(文件夾) |8051_KEIL(文件夾)|CPU.c 特定平臺(tái)CPU相關(guān)c文件
        | | |CPU_ASM.asm 特定平臺(tái)調(diào)度代碼
        | | |CPU_CFG.h 特定平臺(tái)數(shù)據(jù)定義以及系統(tǒng)配置
        | |
        | |AVR_GCC(文件夾) |......
        |
        |
        |
        |DEMO(文件夾) |各種平臺(tái)演示代碼工程

        該實(shí)時(shí)操作系統(tǒng)具備以下幾個(gè)優(yōu)點(diǎn):

        1:全搶占式優(yōu)先級(jí)調(diào)度
        2:小型化,適用于單片機(jī)

        51版本
        keil4編譯版本,89c52單片機(jī)運(yùn)行,仿真proteus7.5sp3
        由于是優(yōu)先級(jí)搶占式調(diào)度,建立了兩個(gè)任務(wù),占用ram稍微較大,flash占用還可以,占用情況如下:
        Program Size: data=92.0 xdata=0 code=950
        下面是系統(tǒng)函數(shù)聲明
        /*--------------------------------------------------------------------------------------+
        |系統(tǒng)函數(shù)聲明 |
        +---------------------------------------------------------------------------------------*/
        void RAYS_TaskCreate(void (*Task)(void),INT8U *Stack,INT8U t_Prio);//創(chuàng)建任務(wù)
        void RAYS_Start(void); //系統(tǒng)啟動(dòng)函數(shù)
        void RAYS_TaskResume(INT8U prio); //任務(wù)恢復(fù)函數(shù)
        void RAYS_TaskSuspend(INT8U prio); //任務(wù)掛起函數(shù)
        void OSSched(void); //匯編調(diào)度函數(shù)
        void RAYS_TimeDelay(INT16U ticks); //任務(wù)延時(shí)函數(shù)
        void Idle_Task(void);
        void RAYS_Init(void); //系統(tǒng)初始化
        void TickIntHook(void); //系統(tǒng)節(jié)拍鉤子函數(shù)



        avr版本
        用winavr20060421編譯,ide選擇的是avr studio,也可以用winavr編譯,仿真同樣是proteus7.5sp3,調(diào)度在16兆只用10us(avrstudio軟測(cè))
        單片機(jī)型號(hào)分別測(cè)試了mega128 和mega8和mega88,都可以運(yùn)行,但程序如果大于64k的話調(diào)度部分pc需要改動(dòng)一下
        由于是優(yōu)先級(jí)搶占式調(diào)度,建立了3個(gè)任務(wù),占用情況如下:

        Program: 1178 bytes
        (.text + .data + .bootloader)

        Data: 225 bytes
        (.data + .bss + .noinit)
        默認(rèn)優(yōu)先級(jí)0s
        /*--------------------------------------------------------------------------------------+
        |系統(tǒng)函數(shù)聲明 |
        +---------------------------------------------------------------------------------------*/
        void RAYS_TaskCreate(void (*Task)(void),INT8U *Stack,INT8U t_Prio);//創(chuàng)建任務(wù)
        void RAYS_Start(void); //系統(tǒng)啟動(dòng)函數(shù)
        void RAYS_TaskResume(INT8U prio); //任務(wù)恢復(fù)函數(shù)
        void RAYS_TaskSuspend(INT8U prio); //任務(wù)掛起函數(shù)
        void OSSched(void); //匯編調(diào)度函數(shù)
        void RAYS_TimeDelay(INT16U ticks); //任務(wù)延時(shí)函數(shù)
        void Idle_Task(void);
        void RAYS_Init(void); //系統(tǒng)初始化
        void TickIntHook(void); //系統(tǒng)節(jié)拍鉤子函數(shù)


        最后來(lái)stm8s105c6版本,本人手上只有這個(gè)小小的discovery板子,100塊買的,所以先拿它做的測(cè)試,很穩(wěn)定!

        編譯器選擇的是IAR,因?yàn)樗镞呏С謈語(yǔ)言是用的模擬寄存器!!!!stvd好像用的是堆棧,導(dǎo)致在stvd上做系統(tǒng)幾乎不可能
        stm8工程,是stm8s105c6版本,仿真是硬件仿真,因?yàn)閜roteus不支持stm8STM8IAR.rar)

        flash和ram占用情況如下:
        941 bytes of readonly code memory
        132 bytes of readonly data memory
        499 bytes of readwrite data memory
        我感覺ram占用有點(diǎn)大,后來(lái)我編寫了個(gè)什么都沒有的main函數(shù),ram占用是272B,所以本系統(tǒng)ram占用應(yīng)該是499-272=227B
        優(yōu)化級(jí)別選則balance.
        /*--------------------------------------------------------------------------------------+
        |系統(tǒng)函數(shù)聲明 |
        +---------------------------------------------------------------------------------------*/
        void RAYS_TaskCreate(void (*Task)(void),INT8U *Stack,INT8U t_Prio);//創(chuàng)建任務(wù)
        void RAYS_Start(void); //系統(tǒng)啟動(dòng)函數(shù)
        void RAYS_TaskResume(INT8U prio); //任務(wù)恢復(fù)函數(shù)
        void RAYS_TaskSuspend(INT8U prio); //任務(wù)掛起函數(shù)
        void OSSched(void); //匯編調(diào)度函數(shù)
        void RAYS_TimeDelay(INT16U ticks); //任務(wù)延時(shí)函數(shù)
        void Idle_Task(void);
        void RAYS_Init(void); //系統(tǒng)初始化
        void TickIntHook(void); //系統(tǒng)節(jié)拍鉤子函數(shù)


        歡迎大家測(cè)試,我是新手,難免有很多bug,三種版本90%代碼都一樣,與cpu最相關(guān)的RaysRTOS_ASM文件差異較大,不過(guò)格式也一樣.
        我的qq 771992497 大家多多測(cè)試,有問題及時(shí)反饋

        QQ|手機(jī)版|MCU資訊論壇 ( 京ICP備18035221號(hào)-2 )|網(wǎng)站地圖

        GMT+8, 2025-5-4 19:06 , Processed in 0.038944 second(s), 8 queries , Redis On.

        Powered by Discuz! X3.5

        © 2001-2025 Discuz! Team.

        返回頂部
        亚洲国产人成精品| 国产精品无码久久久久久| 国产精品视频免费观看| 999精品视频| 国产精品1024在线永久免费| 四虎国产精品永久地址入口| 乱色精品无码一区二区国产盗 | 国产色婷婷五月精品综合在线| 国产精品宾馆在线精品酒店| 国产精品va在线观看无码| 一区二区日韩国产精品| 亚洲日韩精品一区二区三区| 久久99精品久久久久久| 青草青草久热精品视频在线观看| 亚洲国产精品久久电影欧美| 国产99久久久国产精品~~牛 | 国内精品久久久人妻中文字幕| 国产高清国内精品福利99久久| 日韩毛片免费观看一区| 国产精品一区二区久久| 亚洲日韩中文在线精品第一| 国产精品自拍一区| 在线观看91精品国产网站| 国产精品影音先锋| 台湾中文综合娱乐网| 色花堂国产精品第一页| 男女猛烈无遮挡免费视频| 久久国产精品久久久| 亚洲精品国产va在线观看蜜芽| 精品麻豆丝袜高跟鞋AV| 国产乱人伦偷精品视频免观看| 午夜精品射精入后重之免费观看| 北条麻妃国产九九九精品视频 | 亚洲精品视频在线| 久久精品国1国二国三在| 99精品国产福利在线观看| 无码国产精品一区二区免费模式| 四虎国产精品永久地址49| 日本加勒比在线视频| 91国内揄拍国内精品情侣对白| 国产女人成人精品视频|