分类:
2010-10-21 22:45:10
最近除了做Linux方面的开发和分析以外,也接触一了一下Vxworks和Rtems,两者的代码都写的非常精炼,具体还没进行仔细分析,另外试 着将Rtems移植到ADS开发环境下来,虽然Rtems是使用GCC工具来开发的,而且对newlib c库联系的紧密,目前已经将内核,块模块,FAT文件系统移植过来,但发现要移植其下面的BSD TCP/IP到ADS缺碰到不少问题,目前还没完成。现在分析一下rtems系统文件分布。我使用的4.9.1版本,在主目录下有这几个主要目录:
C:该目录下有体系结构和具体开发板有关的代码,在c/src/lib目录下,libBSP为板级支持包,libCPU 与CPU有关的代码
cpukit :rtems的主要目录。在改目录下score为系统的核心代码,rtems为提供给用户使用的内核函数代码,sapi为系统初始化调用代码和设备驱动模 型都这里面了;libblock为块设备块和块缓冲区;fs文件系统代码;libcsupport为支持newlib C库中有关I/O和内存管理代码,也是部分posix代码的实现,其实在libblock和fs中已经使用了newlib库和libcsupport中的 部分实现;libnetworking该部分为TCP/IP的实现代码。posix为POSIX接口中与线程和线程通信,同步,时钟有关的代码。
testsuites测试代码
另外要说说Rtems代码的命令规则:所有内部使用函数都以“_”开始,而给用户使用的接口函数都已rtems_开始。