打印

这种事情我要支持一下,**

[复制链接]
2028|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
JUROON|  楼主 | 2009-3-3 13:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在业余时间,写了一个多任务内核,并整理出一套构建环境。
想把它作为自由软件根大家共享,也希望高手一起参与。

内容:
1、包括一组makefile脚本
2、一组软件工具
3、内核及硬件平台代码(目前只支持plc2210:arm)

内核特性:
1、支持最多32个优先级,支持时间片轮转,不限定任务数量
2、支持sem
3、支持mutex
4、支持queue
5、支持cond(类似ucOSII中的flag)



相关帖子

沙发
阿南| | 2009-3-3 22:24 | 只看该作者

支持,不过上传资料阿南也不熟悉,知道的兄弟帮下忙

使用特权

评论回复
板凳
JUROON|  楼主 | 2009-3-4 13:34 | 只看该作者

源代码下载

我在sourceForge上建立了项目,名称是JDSoE,使用svn管理源代码。

哪位感兴趣,可以用svn的客户端下载JDS的全部资料。
svn服务器:https://jdsoe.svn.sourceforge.net
JDS资料库:/svnroot/jdsoe
使用命令行:
svn co https://jdsoe.svn.sourceforge.net/svnroot/jdsoe jds
将在当前路径建立jds目录,并将资料下载至其中。
对于windows用户推荐使用tortoiseSVN作为客户端。

或者通过http://jdsoe.svn.sourceforge.net/viewvc/jdsoe/页面下载

如您愿意加入这个项目,可以与我联系。



相关链接:http://jdsoe.svn.sourceforge.net/viewvc/jdsoe/

使用特权

评论回复
地板
JUROON|  楼主 | 2009-3-5 22:59 | 只看该作者

自己顶自己

这里说的热闹,实际喜欢动手的看来没几个呀。

使用特权

评论回复
5
JUROON|  楼主 | 2009-3-5 23:28 | 只看该作者

说明

JDS简单介绍

1、JDS名称由来
    JDS的全称应当为JDSoE,是“JDS is a Developer Suit of Embedded system.”的简称。
    首字母J我倾向于将他解释为中国上古神话中火神“祝融”名字的第一个拼音字母,藉此希望自由软件在中国能够“星星之火以燎原”。
    当然JDS作为一个自由软件,对其名称的解释同样是自由的,您可以按您的意愿随意解释。

2、JDS目录组织
    JDS中包含多个子目录:
    DOCS:用于存放JDS的各种文档。
    hostBin:用于存放构建主机使用的软件工具
        MS:windwos主机的软件工具
        GNU:GNU主机的软件工具
    MAKE:用于存放makefile脚本
    SRC:用于存放JDS源代码
        vm:不同目标板源代码及配置脚本
        cm:多任务实时内核源代码
        其他:更多的组件(目前还未实现)
    PROJS:用于存放各个工程
        
3、建立您自己工程的简要说明
    建立一个新工程,最简单的方法是拷贝并修改已有的类似工程。
    对于每个发布的JDS版本,在PROJS目录中都会有一个测试工程,你可以将其拷贝并修改为您希望的名字保存在PROJS目录下。
    然后(为保持可移植性,文件名称需区别大小写字母):
    1、修改makefile
        a、通过赋值PROJECT_DIR为您的工程设置路径,注意目录分隔符应为“/”,如:“PROJECT_DIR = D:/work/project/JDS/PROJS/testApp”
        b、通过赋值PROJECT_NAME为您的工程设置名称,建议工程名称与目录名称一致,如:“PROJECT_NAME = testApp”
        c、通过赋值VM_NAME选择您使用的目标板,如:“VM_NAME = easyRAM213X”
        d、通过赋值USER_LIBS设置您自己的软件组件库,组件库的名称格式为“组件名称”+“Lib.a”,如:“USER_LIBS = mainLib.a uartLib.a testLib.a”
        e、通过赋值JDS_LIBS设置您需要的JDS组件库,组件库的名称格式为“组件名称”+“Lib.a”,如:“JDS_LIBS = cmLib.a”
    2、建立您自己的组件
           a、复制已有的软件组件(JDS组件或用户组件),到您自己的工程目录并修改为合适的名称
           b、在组件目录的SRC中添加源文件(删除原有文件),在include中添加组件对外的头文件(删除原有文件)
           c、修改组件makefile:设置组件名称(组件名称必须与组件目录名称一致),设置组件的目标文件(对应于各C或汇编文件)

4、构建您的工程
   首先进入JDS主目录,对于MS主机(目前还未提供对GNU主机的支持,主要原因是我还不熟悉GNU的arm编译器,但将来会以GNU主机作为JDS的主要使用平台)执行build.bat批处理程序,它将为您设置环境变量,同时启动一个控制台程序。
   通过控制台程序,您可以进入您的项目目录。在此执行:
   a、make clean清除之前的编译结果
   b、make 构建您的工程
   需要说明的是,在每个工程目录中除用户组件目录外另需要有3个目录用于存放构建的中间结果,现在的makefile脚本并不支持自动建立它们。所以在建立新的工程目录时您需要自己建立,并保证里面没有任何文件和目录。它们是:
   dep:存放您工程的依赖文件
   obj:存放您工程编译的目标文件
   lib:存放组件库文件
   另外:每个用户程序的入口都为startMain,原型为“void startMain(void)”,它由vmInit负责调用。您可以在此完成对JDS和用户组件的初始化,并开始您自己的处理逻辑。
   
5、目前支持的vm
ARM
    lpc2210        采用lpc2210主处理器的一款简单开发板,由张珂制作,可以联系我或张珂获取原理图及相关资料。目前JDS中的所有源代码都是在其上进行调试的。
    easyRAM2131    周立功的一款arm开发板,使用芯片为lpc2131。对于lpc213X系列其他芯片,需要适当调整scatter和vmBoot.s,以符合其地址空间分配。
    对于使用arm主芯片的目标板,您应当在编译主机上安装有ads12。

使用特权

评论回复
6
backupyan| | 2009-3-6 10:13 | 只看该作者

支持!

使用特权

评论回复
7
juroon| | 2009-3-6 18:21 | 只看该作者

to armecos

首先感谢老兄能够看了说明.

    现在JSD比较简单,因为如果我一个人把它做到十全十美可能得几年几十年,中途也就废掉了.当初决定写这个东西的其实没什么目标,只是看了一些开源的程序感觉自己也可以做一个.没事的时候还可以做些小东西,后来觉得一个人太没意思,希望有人交流一下.说实在的,在中国做技术挺孤单的.现在,我对它也没有什么功利的期望,最多就是交几个朋友,找找技术交流的感觉,对rtos了解再深入些.当然了,如果能做出点成绩就更好.

另外,关于您提得建议.
    现在,JDS把所有的编译结果都放在自己的工程里,包括obj和lib文件.
每个工程都放在Proj目录下,至少包括:
 obj:存放编译目标文件
 lib:存放个组件库文件
 dep:存放所有依赖文件
还包括用户的库(与JDS的组织各式一样):
 只有源代码头文件和一个makefile(如果通用性较强,直接mv到SRC就成为JDS组件),编译结果不会出现在这里.
    
    我没有建立单独的库树,而是为每个工程建立一个的目的是:JDS中的组件应该是可配置的(通过预编译),但是不同工程的配置不一定相同,因此编译的出库很难共享,所以就直接放在自己的工程里.而且我也不想把库或目标文件作为JDS的一部分,或者说任何人编译出的库和目标文件都是自己的和JDS无关.

再次感谢,我单位上网不太方便回复不快请见谅.:)

使用特权

评论回复
8
juroon| | 2009-3-9 10:50 | 只看该作者

自己接着顶自己

要不然没人顶

使用特权

评论回复
9
juroon| | 2009-3-10 18:42 | 只看该作者

顶顶更健康

每日一顶

使用特权

评论回复
10
sssbang| | 2009-3-11 16:59 | 只看该作者

支持一下,不过我建议还是在现成操作系统上改

操作系统多如牛毛,功能大体上差不多,为什么要重复人家的劳动呢?仅仅为了设计一个操作系统而设计,我觉得不值得。站在人家的肩膀上把现有的系统更推进一步才是充分利用人类智慧啊。

使用特权

评论回复
11
sssbang| | 2009-3-11 17:01 | 只看该作者

armecos

ecos系统可以在at91sam7x256上跑吗?占用多少资源?开发环境是怎么样的?免费吗?

使用特权

评论回复
12
JUROON|  楼主 | 2009-3-18 13:15 | 只看该作者

回复楼上

ecos是可配置的,占用资源情况要看你使用多少组件。
你说的cpu我不知道是不是有现成的移植,但ecos肯定是可以用的,ecos有免费和开源两个版本。不过人家比较有专业精神,免费版也有人维护和更新,就是确实技术支持,相对收费版稳定性可能有所欠缺(但也非常非常非常稳定,短板就是具体移植时带入的不稳定,但那也不是ecos的问题)。

我工作这么多年,用过不少RTOS。感触最深的是,大家在用的时候一般只知其然不知其所以然。比如,互斥为什么提供优先级继承?等等。这种情况下,大家用的稀里糊涂,rtos原有的稳定性也没法弥补应用程序的无数漏洞。

我就是想做一个足够简单的东西,任何人都能简单入手,了解多任务的基础,了解IDE后面的build思想。JDS不是用来做工程的,就是用来玩的(至少现在),玩着玩着新手们明白了,高手们我就不知道会怎么样了(不过谁敢说自己是高手?凭借什么?)。

玩玩,也没人愿意?天天有人喊“请高手帮忙”,你就愿意天天喊下去?指望被人指点成高手?算了吧。

使用特权

评论回复
13
gateway| | 2009-3-21 12:10 | 只看该作者

支持

一直使用别人的成熟的嵌入式操作系统,有机会还是希望参与开发一个的操作系统。

使用特权

评论回复
14
zyjmlz| | 2009-3-22 19:09 | 只看该作者

这种事情我要支持一下,**

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

25

帖子

0

粉丝