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

        返回頂部
        精品人妻久久久久久888| 国产精品日韩欧美久久综合| 国产区精品福利在线观看精品| 国产精品自产拍在线18禁| 久久精品18| 亚洲欧美日韩精品专区| 少妇人妻无码精品视频app| 成人区人妻精品一区二区不卡视频| 久久精品嫩草影院| 精品熟女少妇aⅴ免费久久| 好硬好湿好爽再深一点动态图片 | 亚洲sss综合天堂久久久| 久久精品麻豆日日躁夜夜躁| 国产香蕉精品视频在| 久久久久久亚洲精品无码| 亚洲精品成人网站在线观看| 久久久久久久99精品免费观看| 无码欧精品亚洲日韩一区夜夜嗨| 久久九九精品99国产精品| 91精品久久久久久无码| 区亚洲欧美一级久久精品亚洲精品成人网久久久久 | 人妻精品久久久久中文字幕一冢本| 国产精品福利片免费看 | 最新国产美女肝交视频播放 | 久久久精品一区二区三区| 亚洲国产主播精品极品网红 | 精品欧美激情在线看| 亚洲精品无码久久久久久| 一区二区三区精品| 一本一本久久a久久精品综合麻豆| 国产人妖乱国产精品人妖| 精品国产热久久久福利| 亚洲处破女AV日韩精品| 91亚洲国产成人久久精品| 五月天激情小说网| 桃花岛精品亚洲国产成人| 免费无遮挡禁18污污网站| 国产精品VIDEOSSEX久久发布| 四虎国产成人永久精品免费| 国产亚洲精品拍拍拍拍拍| 久久精品无码午夜福利理论片|