找回密碼
         注冊(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.

        返回頂部
        jizz国产精品| 日本精品视频在线观看| 色先锋影音5566| 免费人成黄页网站在线观看| 99精品欧美一区二区三区| 97久久精品无码一区二区天美| 无码国产亚洲日韩国精品视频一区二区三区| 久久人人超碰精品CAOPOREN| 国产专区日韩精品欧美色| 87国产私拍福利精品视频| 国产成人精品高清在线观看99| 精品一区二区三区免费毛片爱 | 精品国产一级在线观看| 九九精品成人免费国产片| 国产精品jizz视频| 国产精品免费久久| 59pao在线视频国产| 色资源二区在线视频| 色欧美性video视频| 伊人久久综合精品无码AV专区| 亚洲精品成人在线| 精品久久久久久无码中文字幕一区| 国产精品国产三级在线专区| 91精品国产综合久久精品| 岛国精品一区免费视频在线观看 | 亚洲国产第一站精品蜜芽| 韩国免费a级毛片| 国产精品电影网| 欧美人与动牲交a欧美精品| 久久久久无码精品国产app| 黑人巨大精品欧美一区二区| 精品国产青草久久久久福利| 精品欧美| 久久亚洲欧美国产精品| 国产亚洲精品a在线无码| avtt天堂网久久精品| 九九99精品久久久久久| 国产国拍亚洲精品福利| 日本精品一区二区久久久| 色狠狠狠色噜噜噜综合网| 亚洲AV无码成人网站久久精品大 |