配置自己的UC/OS―II操作系统
注:对于ARM7系列CPU,OS_STK为32位。
2 与通信功能有关的数据结构
1.OS_MAX_EVENTS
l 作用:设置程序中可以具有事件控制块的最大数量。
l 说明事件控制块数量即程序设计中信号量,邮箱和消息队列的个数。
l 举例:若程序中定义了一个邮箱,一个消息队列和一个互斥信号量。则此时OS_MAX_EVENTS的最小值为3.
注:如果使用zlg提供的模版时,建议OS_MAX_EVENTS设置最小为8(因为zlg的模板中可能也用到了一些事件控制块)
2.OS_MAX_MEM_PART
l 作用:设置系统中内存块的最大数目。
l 说明:如果不用内存控制,则设置为默认值即可
l 举例:在zlg模板中OS_MAX_MEM_PART为5
注:如果应用程序要使用动态内存,那么内存控制块的配置常数OS_MAX_MEM_PARTS最小应该设置为2.
为了使编译器能够对系统的内存管理函数进行编译,常量OS_MEM_EN也要设置为1。
3.OS_MAX_QS
l 作用:设置系统中具有消息队列的最大数目
l 说明:如果程序中要使用消息队列,那么OS_MAX_QS最小应该设置为2。为了使编译器能够对系统的管理消息队列的函数进行编译,常量0S_Q_EN也要同时设置为1。
l 举例:若在程序中定义了一个消息队列,则该值最小设定为1.
4.OS_MAX_FLAGS:
l 作用:设定事件标志组的最大数目
l 说明:若定义了事件标志组,还要定义定义事件标志组包含的标志位数(只能是8位,16位或32位)
l 举例:定义16位的事件标志组
typedef INT16U 0S_FLAGS
2 其它参数
1.OS_TICK_PER_SEC:
l 作用:设置调用OSTimeTick()函数的频率,即时钟最小单位的设定。
l 说明:如果这个值设定得太大,则系统的实时性会受到影响;如果这个值设定的太小,则CPU会忙于时钟处理而增大开销。
注:根据微处理器的不同,该值设置为10~100ms的周期为宜,对应频率为10~100HZ。
评论