嵌入式系统头文件具体配置~!

     如嵌入式移植中所介绍的一样,基本上需要修改三个文件OS_CFG.H,config,h和os_cpu.h。其他的文件一般用户可设置为默认。因此文件的设置方法如下:

     1.OS_CFG.H

        这个是操作系统配置文件,用户进行操作系统的剪裁定制就是靠更改这个文件实现的。一般需要设置如下几个参数:1).OS_MAX_EVENTS,在应用中的最大时间控制块的个数,包括信号量,油箱和消息队列的总和,因为每个信号量,油箱和消息队列都占用一个事件控制块,所以该项参数的最小值应为3。但在实际应用中要以备扩展时间用,因此设置的大一点,通常在实例中设置为8。                          2).OS_MAX_MEM_PART:定义系统中内存块的最大数目,如果不用内存控制,则设置为默认值即可,在实例中默认为模板默认值5。                    3).OS_MAX_TASKS:定义用户程序中可以使用的最多任务数,该值不能大于62。该值的设置应该比实际应用的任务数要大一点,这样在增加心得任务时就不需要修改这一项的值,但是不能比实际任务数大太多,这样回浪费宝贵的内存空间。比如,在实际中用了7个任务,该项定义为10。             4).OS_MAX_QS:定义系统中可以定义的消息队列的最大队列块的数目,在实例中用了1个消息队列,则该值最小设定为1,为了扩展兼容,在实例中设置为4。                          5).OS_LOWEST_PRIO:设定系统中要使用的最低任务的优先级。设定该值可以节省操作系统使用RAM的空间,任务的最低优先级和最大任务数没有直接关系。操作系统留了两个任务优先级OS_LOWEST_PRIO和OS_LOWEST_PRIO-1给空闲任务和统计任务,所以用户可以用的实际任务优先级的值是在0--OS_LOWEST_PRIO-2之间的值。比如该值设定为20,实际可用的优先级为0--18,其中优先级0--3为操作系统建议保留的级别,以备升级之用,则可以使用的优先级为4--18,实际应用中有7个任务。这样设置的目的是,在各个任务优先级之间彼此可以间隔,在插入新任务或使用互斥信号量时就不用调整其他任务的优先级了。                       6).OS_TICKS_PER_SEC:设定调用OSTimeTick( )函数的频率,也就是系统时钟的最小单位的设定,如果这个值设定的太大,则系统的实时性受到影响,如果设置的太小,则CPU会忙于时钟处理而增大开销。根据微处理器的不同,该值设置为10--100MS为宜,对应频率为10--100HZ。

   2.config.h

     这个文件中主要包括一些宏定义和文件包含操作,对于宏定义,使用者可以根据自己的兴趣将一些数据类型定义为自己习惯的标识符。在实际应用中,这一部分内容可以不动。这个文件的另一部分内容是定义文件包含,用户根据需要包含自己定义的头文件。最后一个部分是进行时钟配置,定义是否使用锁相环。

   3.os_cpu.h

   这个文件中主要定义与编译器无关的数据类型,这主要是为了系统移植用,因为操作系统为了增加可移植性,用了一些不合法的”数据类型“。着在任何编译器下都是错误的,因此操作系统移植就是对这些不合法的数据类型进行宏定义,定义为用户所用编译器所理解的类型。这部分操作在系统移植阶段已经做好了,用户可以不更改。还有一部分是与ARM7相关的类型,主要是一些软件类型的定义,用来处理函数的底层接口。这是移植操作时完成的操作,用户可以不更改。

你可能感兴趣的:(OS,嵌入式)