当PGOS的x86版本正式发布了0.9.0Beta之后,我们重新启动了尘封已久的Sunplus移植计划,现在我们正式宣布PGOS for Sunplus unSP(TM) 0.9.0 Realse !!下面我们来看看新版本带来了些什么变化:
API方面:重写所有API,如果您熟悉原来的PGOS For Sunplus,那么很遗憾,从这个版本开始,我们重新编写了整个内核,所以,API的名称也做了调整,本版本的PGOS将不在提供对过去版本的支持。
任务调度方面:可以通过配置文件,PGOS将正式支持以下两种调度模式:1)优先级的抢先调度 2)优先级的时间片抢先调度
IPC方面:消息新增加对BLOCK模式与NON-BLOCK模式的支持;新增对信号量的全面支持,并可通过配置文件选择任务等待队列生成算法,可选包括FIFO与PRI
最大的改进在于完全支持驱动程序模型,支持包括CALLBACK,HARDWARE,SERVICE等再内的多种驱动程序,并提供完整消息拦截函数支持。
欢迎下载试用,欢迎反馈您的使用报告。
此外,本版本的PGOS许可证策略做出调整,将不再以GPL为许可证,目前我们的策略是:以教学为目的,可以免费使用。但以商业为目的,则需要购买许可证。
我们的联系方式是 xcxin@sec.ac.cn
请下载:
[upload=rar]viewFile.asp?ID=1419[/upload]不错!能写出自己的操作系统真的很令人佩服!
尤其是同时支持抢占式和轮片式的任务调度模式
很好,祝你们更好。
我看看你们的源码。
还是顶一下吧。。。希望大家支持,现在的PGOS支持许多高级的特性,尤其是驱动程序支持,现在你可以做出非常专业的程序了。总之,我个人认为,除了在对特定硬件的支持上,PGOS可能少逊于MiniOS,其他所有方面,PGOS都已经超过MiniOS。。。。。
下一步的开发计划:
1) 基于PGOS的Driver环境,开发出设备无关的IO驱动程序
2)努力提供for sunplus的各项硬件驱动程序
3)完成一个实际的系统的开发范例
我读你们的白皮书的时候!有一种说不出的兴奋!
虽然还不知道,那个是什么东西!
我现在继续往下读,争取今天搞定!
中午饭先不吃了!
不错,有意思~
希望可以多开发出一些有用的模块~~~
/*
PGOS Example Programme
Chap2 . Task Switch Example
Author : prostar
E-mail : xinxiaoc@china.com.cn
*/
#include "pgos_all.h"
void task1() ;
void task2() ;
INT16U stk1[64] ;
INT16U stk2[64] ;
int main()
{
pgos_init() ;
CreateTask( task1,(void *)0,&stk1[63],2 ) ;
CreateTask( task2,(void *)0,&stk2[63],1 ) ;
pgos_init_timer() ;
pgos_start() ;
return 0 ;
}
void task1()
{
INT16U i,j;
Set_IOA_Dir(0xffff);
Set_IOA_Attrib(0xffff);
Set_IOA_Data(0x0000);
while(1)
{
i=(INT16U)Get_IOA_Data();
i^=0xff00;
Set_IOA_Data(i);
// for(j=0;j<0x10;j++);
SleepTask( 1,3 ) ;
}
}
void task2()
{
INT16U i,j;
Set_IOB_Dir(0xffff);
Set_IOB_Attrib(0xffff);
Set_IOB_Data(0x0000);
while(1)
{
i=(INT16U)Get_IOA_Data();
i^=0xff00;
Set_IOB_Data(i);
//for(j=0;j<0x10;j++);
SleepTask( 2,2 ) ;
}
}
这是我下午做的!不知道怎么编译没错,但是软件仿真时,出现illegal address:[2C1111],运行不了呀!
怎么回事,是不是我的思路有错误?还是什么?
你好像在呀 !
你来看看吧!
请换用最新版的PGOS。。。此外,你没有clear watchdog
是不是昨天发的那个?
我下了!现在就是那个 !
就是几个头文件,和函数吧!
我在清狗试试!
是最新的!
那最新的白皮书在那里能下载?
很急呀 !
我是下午才看到的!
以前没接触过嵌入式这个词,编的的程序,和自己理解的不知道对不对!
身边的人还没有搞过这个,所以现在有很多事情请教!
再次谢谢你的回复!
最新版尚无白皮书,正在编写。
代码里附带的main.c就是一个例子
强烈要求置顶!
呵呵!此等好贴,怎么能忍心让它沉下去呢!!!
等会!coolqiangz!!置顶!
不错
赞一个
Error L0080: The external symbol "_malloc" has not a public definition.
Error L0080: The external symbol "_malloc" has not a public definition.
Error L0080: The external symbol "_malloc" has not a public definition.
Error L0080: The external symbol "_printf" has not a public definition.
Error L0080: The external symbol "_malloc" has not a public definition.
Error L0080: The external symbol "_free" has not a public definition.
这是怎么回事啊,各位高手