原创 Ucos学习-信号量+互斥量+内存管理

2009-3-11 09:53 3130 1 1 分类: MCU/ 嵌入式

1信号量:semaphore,它可以有很多值,代表资源数<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


 


OSSemCreate()          --建立信号量


OSSemPend()      --申请信号量


OSSemPost()              --释放信号量


 


信号量实现互斥中,可能产生优先级反转,不能改变占用任务的优先级


 


 


2互斥信号量:mutex,二值,作用是防止优先级反转,可改变占用资源的优先级,实现共享资源的独占


OSMutexCreate()


OSMutexPend()


OSSemPost();


 


互斥量可以说是信号量的特殊形式


 


 


3.Memory Managerment一般很弱,据说可以管理<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />1G空间


内存管理很重要,未及时释放内存会导致程序崩溃


OSMemGet()       OSMemPut()应该成对出现


 


Partition->blocks


 


-First-Create blocks in partition


MEMA_Ptr = OSMemCreate(MEMA,BlockNum,BlockSize,&err);


 


-Second-Get block,one block one time


mem_apl = OSMemGet(MEMA_Ptr,&err);


 


-Third-Release block


OSMemPut(MEMA_Ptr,mem_apl);


 

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
1
关闭 站长推荐上一条 /1 下一条