查看: 681|回复: 0
打印 上一主题 下一主题

RaysRTOS(光芒实时系统)

[复制链接]
跳转到指定楼层
沙发
发表于 2016-4-21 22:03:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先上51版本
keil3编译版本,89c52单片机运行,仿真proteus7.5sp3 点击此处下载 ourdev_567612UF5VUQ.rar(文件大小:59K) (原文件名:RaysRTOS-89C52keil.rar)
由于是优先级抢占式调度,建立了两个任务,占用ram稍微较大,flash占用还可以,占用情况如下:
Program Size: data=92.0 xdata=0 code=950
下面是系统函数声明
/*--------------------------------------------------------------------------------------+
|系统函数声明    |
+---------------------------------------------------------------------------------------*/
void RAYS_TaskCreate(void (*Task)(void),INT8U *Stack,INT8U t_Prio);//创建任务
void RAYS_Start(void); //系统启动函数
void RAYS_TaskResume(INT8U prio);   //任务恢复函数
void RAYS_TaskSuspend(INT8U prio); //任务挂起函数
void OSSched(void); //汇编调度函数
void RAYS_TimeDelay(INT16U ticks);  //任务延时函数
void Idle_Task(void);
void RAYS_Init(void); //系统初始化
void TickIntHook(void);  //系统节拍钩子函数



再上avr版本
用winavr20060421编译,ide选择的是Eclipse,也可以用winavr编译,仿真同样是proteus7.5sp3,调度在16兆只用10us(avrstudio软测)
avr-gcc编译器,Eclipse环境ourdev_567624QETN34.rar(文件大小:47K) (原文件名:RaysRTOS-Eclipse.rar)
avrstudio环境ourdev_567625AL5P0E.rar(文件大小:35K) (原文件名:RaysRTOS-avrstudioMega88.rar)
单片机型号分别测试了mega128 和mega8和mega88,都可以运行,但程序如果大于64k的话调度部分pc需要改动一下
由于是优先级抢占式调度,建立了3个任务,占用情况如下:

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

Data:        225 bytes  
(.data + .bss + .noinit)
默认优先级0s
/*--------------------------------------------------------------------------------------+
|系统函数声明    |
+---------------------------------------------------------------------------------------*/
void RAYS_TaskCreate(void (*Task)(void),INT8U *Stack,INT8U t_Prio);//创建任务
void RAYS_Start(void); //系统启动函数
void RAYS_TaskResume(INT8U prio);   //任务恢复函数
void RAYS_TaskSuspend(INT8U prio); //任务挂起函数
void OSSched(void); //汇编调度函数
void RAYS_TimeDelay(INT16U ticks);  //任务延时函数
void Idle_Task(void);
void RAYS_Init(void); //系统初始化
void TickIntHook(void);  //系统节拍钩子函数


最后来stm8s105c6版本,本人手上只有这个小小的discovery板子,100块买的,所以先拿它做的测试,很稳定!

(原文件名urdev_567250APXFN6.jpg)
编译器选择的是IAR,因为它里边支持c语言是用的模拟寄存器!!!!stvd好像用的是堆栈,导致在stvd上做系统几乎不可能
stm8工程,是stm8s105c6版本,仿真是硬件仿真,因为proteus不支持stm8: 点击此处下载 ourdev_567629MGG77S.rar(文件大小:44K) (原文件名:RaysRTOS-STM8IAR.rar)

flash和ram占用情况如下:
  941 bytes of readonly  code memory  
  132 bytes of readonly  data memory  
  499 bytes of readwrite data memory  
我感觉ram占用有点大,后来我编写了个什么都没有的main函数,ram占用是272B,所以本系统ram占用应该是499-272=227B
优化级别选则balance.
/*--------------------------------------------------------------------------------------+
|系统函数声明    |
+---------------------------------------------------------------------------------------*/
void RAYS_TaskCreate(void (*Task)(void),INT8U *Stack,INT8U t_Prio);//创建任务
void RAYS_Start(void); //系统启动函数
void RAYS_TaskResume(INT8U prio);   //任务恢复函数
void RAYS_TaskSuspend(INT8U prio); //任务挂起函数
void OSSched(void); //汇编调度函数
void RAYS_TimeDelay(INT16U ticks);  //任务延时函数
void Idle_Task(void);
void RAYS_Init(void); //系统初始化
void TickIntHook(void);  //系统节拍钩子函数


欢迎大家测试,我是新手,难免有很多bug,三种版本90%代码都一样,与cpu最相关的RaysRTOS_ASM文件差异较大,不过格式也一样.
我的qq 771992497
最后还想来个版本,就是lisuwei的那个版本的修改版,2440平台,因为它的那个版本没有初始化mmu,所以导致只能在nor里运行,这个修改版是在ram或者nand里边运行的,和正常的2440_test什么的程序一样,通过boot下载到nand 0x000地址或者ram的0x30000000地址都可以运行!!!
考虑到开发2440习惯,有人熟悉ads,有人喜欢keil4,所以我修改成了两个版本,都可以跑,希望大家测试
ads1.2版本工程ourdev_567630TCEFTQ.rar(文件大小:51K) (原文件名:2440os.rar)
keil4版本工程ourdev_567631AQ74MT.rar(文件大小:324K) (原文件名:2440os-rvmdk.rar)

最后再感谢lisuwei把我带入rtos大门,还要感谢上官兄,没他的代码参考我弄不出stm8汇编来。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入因仑

本版积分规则

快速回复 返回顶部 返回列表