您的位置:首页 > 其它

回答朋友的问题(关于 RTEMS 的知识储备)

2011-05-02 15:07 253 查看
(原创文章,欢迎转载,请注明出处)



最近有朋友问我,学习 rtems 需要什么样的知识储备。

1.RTEMS 属于 RTOS 的一种,而 RTOS 又是操作系统的一个分支。所以,首先您得具备操作系统相关的知识
。对调度、同步、内存管理、磁盘管理等等有一定的理论认识。

2.RTEMS 是 C 语言编写而成的,使用了不少C和数据结构的技巧,代码不是很好理解。除了对数据结构熟悉外,还需要对C语言指针有非常深刻的理解
。这块不仅仅要具备这方面的知识,还要多写代码
,否则,真的是太难了。

3.RTEMS 不像 windows、linux,有非常友好的开发环境,开发环境和使用环境是一致的。rtems 开发环境和使用环境是不一样的。需要使用交叉工具链,GNU的工具链是 rtems 的标准工具链,其他工具链就虽然可以使用,但是需要付出非常大的移植代价,基本上不用考虑。所以,对GNU的工具链有一个良好的认识
,是非常必要的。如 gcc 的嵌入式汇编,与Intel的汇编差别较大,属于 AT&T 的格式;gcc 支持的编译命令;ld 的脚本编写;autotools的使用等等。

4.RTEMS 大部分是以嵌入式系统和目标硬件配合起来的,所以,对目标硬件必须了解,特被是目标 CPU
。当然,如果不理解并不影响对高层编程的理解。如果需要深入的学习,仅仅一个平台的处理器知识还不够,还需要不同架构的处理器,相互对比,体会 RTOS 在底层的实现对高层的影响。
对于初学者,可能限制于各方面的因素,只选择一个平台,先把操作系统弄熟,然后再对比其他平台,才能掌握精髓。

5.RTEMS 是个知识的大熔炉,发展这么多年,含有很多有价值的模块。 这些模块理解起来不仅需要本身这块专业的知识,还需要和 RTOS 特点结合起来理解。如 TCP/IP,虽然是 BSD 网络在 rtems 下的移植,但多了一些 RTOS 下的特有的变化。文件系统、IO管理等等更是如此。所以,TCP/IP协议族、文件系统、posix、itron、图形界面等知识,最好能有。

基本知识就需要这么多了。我总是刻意强调基础知识的扎实,扎实的基础知识可以使得学习曲线变得平缓,好的学习方法也会降低学习难度。所以,更重要的是,自己有一套行之有效的学习方法,和认识客观事物的方法。



(原创文章,欢迎转载,请注明出处)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: