??????????????????????????????
???????????? ???????[ 2012/9/18 10:19:11 ] ????????
???????????????rawos?????????????????????????л?????????????????????????os?????????ucos??rtthread??vxWorks??linux???????????rawos????????????????????????顣?????Щ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
?????л?????????????????????????????棬????????????????????γ???????????????????????????????????????????????????????????????????????????????а???У?????????????????????л?????????
??????е???п???????????????????????????????????????У????????????????????????????е????????????????10????????????????11?????????????????????????????????????????11???????????????????????????????????????????????????11????????????????????????????10??????????????pend??????????????????delay?????????suspend?????????????10?????????????????????????????????????????????????????????????
???????????????????????????????У??????????A??B?????????????10??11????????????????10????????11????????????????????????????????????????????????10???????????????????????????????????????????????????????10?????????С??sleep??????????????????11???????????????????????????10???????????????????????????????????????????類????????????????????????????????e????pend????????????棬???????????????????????????????е???п?????????????????????????????????????Υ????????????漲?????????????????????????е???????????????????????????????????????
????????????????類??????????????????????????????????????????????????????????????????趨????????????????????????????м?д????????????????????????????????????????Щ??л???????thread????????????????н?????????????????????????????????????н???????????????????????п???????????????????????????ж?????????????????????????????pend????????????????????????????????????????????????????????????????????????????????????????????????ɡ????????????????????????????????????????????????????????????????????????????????????????????????Щ??
????????????????????????????????????
typedef struct RAW_MUTEX
{
RAW_COMMON_BLOCK_OBJECT common_block_obj;
RAW_U8 count;
/*ponit to occupy task*/
RAW_TASK_OBJ *occupy;
/*occupy task original priority*/
RAW_U8 occupy_original_priority;
} RAW_MUTEX;
???????????????????????????????????????????????????????????????????????Щ??????????????????????????????????????涼??????
??????1??????????????????????????????????????飻
??????2?????????ж??????????
??????3??????????????
??????4????????????????????
???????????????????????????????????????????????????????????????????????????????
RAW_U16 raw_mutex_create(RAW_MUTEX *mutex_ptr?? RAW_U8 *name_ptr)
{
#if (RAW_MUTEX_FUNCTION_CHECK > 0)
if (mutex_ptr == 0)
return RAW_NULL_OBJECT;
#endif
/*Init the list*/
list_init(&mutex_ptr->common_block_obj.block_list);
mutex_ptr->common_block_obj.block_way = 0;
mutex_ptr->common_block_obj.name = name_ptr;
/*No one occupy mutex yet*/
mutex_ptr->occupy = 0;
/*resource is available at init state*/
mutex_ptr->count = 1;
mutex_ptr->occupy_original_priority = 0;
return RAW_SUCCESS;
}
??????
???·???
??????????????????
2023/3/23 14:23:39???д?ò??????????
2023/3/22 16:17:39????????????????????Щ??
2022/6/14 16:14:27??????????????????????????
2021/10/18 15:37:44???????????????
2021/9/17 15:19:29???·???????·
2021/9/14 15:42:25?????????????
2021/5/28 17:25:47??????APP??????????
2021/5/8 17:01:11