rtems开发注意事项

1.无内存保护:

对于x86体系架构和其他cpu架构,rtems没有采用虚拟内存管理,也没用分段保护机制,所以rtems是没有提供内存保护机制,这样的好处在于实现简单,当然也存在很大的安全问题,应用程序中的一个错误内存操作都可能使得整个系统崩溃,但是考虑到嵌入式系统运行的程序相对确定,所以缺点还是没有那么致命。

2.基于优先级的调度:

rtems是一个完全基于优先级调度的实施操作系统,一共有255个优先级,每个优先级上可以运行多个任务(线程),同一个优先级上的任务可以指定FIFO和时间片轮转的调度策略。

3.可移植性:

rtems具有很好的可移植性,大部分代码都是c语言实现的,与体系结构无关,在许多不同的体系结构都可以编译执行,和体系结构相关的部分主要是在:

/c/src/lib/libcpu

/c/src/lib/libbsp

/cpukit/score/cpu

这样可以把体系结构相关的代码从内核代码树中分离出来,为移植提供很大的方便。


4.c运行库

newlib是一个用于嵌入式系统的开放源代码的c语言程序库,可移植到很多cpu结构上,目前由red hat维护,目前newlib主要在io和文件访问(open、close、read、write、lseek、fcntl、link、unlink、rename)、获得当前系统的日期和时间,各类型的任务管理函数(fork、getpid、kill、wait、_exit)等。但由于rtems本身不支持进场,导致它不像linux的程序广泛使用的glibc完善和全面。


5.并发和同步:

RTEMS是支持多任务的可抢占的硬实时操作系统,所以共享问题要保证不出竞争条件。可用以下手法:

1.屏蔽中断

2.禁止调度

3.信号量


内核需要在不同情况下采用不同的同步机制来保证并发访问

你可能感兴趣的:(RTEMS,rtems开发)