亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? os_mem.src

?? 51單片機上移植UCOSII,通過調試
?? SRC
?? 第 1 頁 / 共 2 頁
字號:
;     *plink              = (void *)0;                  /* Last memory block points to NULL              */
;     pmem->OSMemAddr     = addr;                       /* Store start address of memory partition       */
;     pmem->OSMemFreeList = addr;                       /* Initialize pointer to pool of free blocks     */
;     pmem->OSMemNFree    = nblks;                      /* Store number of free blocks in MCB            */
;     pmem->OSMemNBlks    = nblks;
;     pmem->OSMemBlkSize  = blksize;                    /* Store block size of each memory blocks        */
;     *err                = OS_NO_ERR;
;     return (pmem);
; }
; /*$PAGE*/
; /*
; *********************************************************************************************************
; *                                          GET A MEMORY BLOCK
; *
; * Description : Get a memory block from a partition
; *
; * Arguments   : pmem    is a pointer to the memory partition control block
; *
; *               err     is a pointer to a variable containing an error message which will be set by this
; *                       function to either:
; *
; *                       OS_NO_ERR           if the memory partition has been created correctly.
; *                       OS_MEM_NO_FREE_BLKS if there are no more free memory blocks to allocate to caller
; *                       OS_MEM_INVALID_PMEM if you passed a NULL pointer for 'pmem'
; *
; * Returns     : A pointer to a memory block if no error is detected
; *               A pointer to NULL if an error is detected
; *********************************************************************************************************
; */
; 
; void  *OSMemGet (OS_MEM *pmem, INT8U *err)LG_REENTRANT
; {
; #if OS_CRITICAL_METHOD == 3                           /* Allocate storage for CPU status register      */
;     OS_CPU_SR  cpu_sr;
; #endif    
;     void      *pblk;
; 
; 
; #if OS_ARG_CHK_EN > 0
;     if (pmem == (OS_MEM *)0) {                        /* Must point to a valid memory partition         */
;         *err = OS_MEM_INVALID_PMEM;
;         return ((OS_MEM *)0);
;     }
; #endif
;     OS_ENTER_CRITICAL();
;     if (pmem->OSMemNFree > 0) {                       /* See if there are any free memory blocks       */
;         pblk                = pmem->OSMemFreeList;    /* Yes, point to next free memory block          */
;         pmem->OSMemFreeList = *(void **)pblk;         /*      Adjust pointer to new free list          */
;         pmem->OSMemNFree--;                           /*      One less memory block in this partition  */
;         OS_EXIT_CRITICAL();
;         *err = OS_NO_ERR;                             /*      No error                                 */
;         return (pblk);                                /*      Return memory block to caller            */
;     }
;     OS_EXIT_CRITICAL();
;     *err = OS_MEM_NO_FREE_BLKS;                       /* No,  Notify caller of empty memory partition  */
;     return ((void *)0);                               /*      Return NULL pointer to caller            */
; }
; /*$PAGE*/
; /*
; *********************************************************************************************************
; *                                         RELEASE A MEMORY BLOCK
; *
; * Description : Returns a memory block to a partition
; *
; * Arguments   : pmem    is a pointer to the memory partition control block
; *
; *               pblk    is a pointer to the memory block being released.
; *
; * Returns     : OS_NO_ERR            if the memory block was inserted into the partition
; *               OS_MEM_FULL          if you are returning a memory block to an already FULL memory 
; *                                    partition (You freed more blocks than you allocated!)
; *               OS_MEM_INVALID_PMEM  if you passed a NULL pointer for 'pmem'
; *               OS_MEM_INVALID_PBLK  if you passed a NULL pointer for the block to release.
; *********************************************************************************************************
; */
; 
; INT8U  OSMemPut (OS_MEM  *pmem, void *pblk)LG_REENTRANT
; {
; #if OS_CRITICAL_METHOD == 3                      /* Allocate storage for CPU status register           */
;     OS_CPU_SR  cpu_sr;
; #endif    
;     
;     
; #if OS_ARG_CHK_EN > 0
;     if (pmem == (OS_MEM *)0) {                   /* Must point to a valid memory partition             */
;         return (OS_MEM_INVALID_PMEM);
;     }
;     if (pblk == (void *)0) {                     /* Must release a valid block                         */
;         return (OS_MEM_INVALID_PBLK);
;     }
; #endif
;     OS_ENTER_CRITICAL();
;     if (pmem->OSMemNFree >= pmem->OSMemNBlks) {  /* Make sure all blocks not already returned          */
;         OS_EXIT_CRITICAL();
;         return (OS_MEM_FULL);
;     }
;     *(void **)pblk      = pmem->OSMemFreeList;   /* Insert released block into free block list         */
;     pmem->OSMemFreeList = pblk;
;     pmem->OSMemNFree++;                          /* One more memory block in this partition            */
;     OS_EXIT_CRITICAL();
;     return (OS_NO_ERR);                          /* Notify caller that memory block was released       */
; }
; /*$PAGE*/
; /*
; *********************************************************************************************************
; *                                          QUERY MEMORY PARTITION
; *
; * Description : This function is used to determine the number of free memory blocks and the number of
; *               used memory blocks from a memory partition.
; *
; * Arguments   : pmem    is a pointer to the memory partition control block
; *
; *               pdata   is a pointer to a structure that will contain information about the memory
; *                       partition.
; *
; * Returns     : OS_NO_ERR            If no errors were found.
; *               OS_MEM_INVALID_PMEM  if you passed a NULL pointer for 'pmem'
; *               OS_MEM_INVALID_PDATA if you passed a NULL pointer for the block to release.
; *********************************************************************************************************
; */
; 
; #if OS_MEM_QUERY_EN > 0
; INT8U  OSMemQuery (OS_MEM *pmem, OS_MEM_DATA *os_pdata)LG_REENTRANT
; {
; #if OS_CRITICAL_METHOD == 3                      /* Allocate storage for CPU status register           */
;     OS_CPU_SR  cpu_sr;
; #endif    
;     
;     
; #if OS_ARG_CHK_EN > 0
;     if (pmem == (OS_MEM *)0) {                   /* Must point to a valid memory partition             */
;         return (OS_MEM_INVALID_PMEM);
;     }
;     if (os_pdata == (OS_MEM_DATA *)0) {             /* Must release a valid storage area for the data     */
;         return (OS_MEM_INVALID_PDATA);
;     }
; #endif
;     OS_ENTER_CRITICAL();
;     os_pdata->OSAddr     = pmem->OSMemAddr;
;     os_pdata->OSFreeList = pmem->OSMemFreeList;
;     os_pdata->OSBlkSize  = pmem->OSMemBlkSize;
;     os_pdata->OSNBlks    = pmem->OSMemNBlks;
;     os_pdata->OSNFree    = pmem->OSMemNFree;
;     OS_EXIT_CRITICAL();
;     os_pdata->OSNUsed    = os_pdata->OSNBlks - os_pdata->OSNFree;
;     return (OS_NO_ERR);
; }
; #endif                                           /* OS_MEM_QUERY_EN                                    */
; /*$PAGE*/
; /*
; *********************************************************************************************************
; *                                    INITIALIZE MEMORY PARTITION MANAGER
; *
; * Description : This function is called by uC/OS-II to initialize the memory partition manager.  Your
; *               application MUST NOT call this function.
; *
; * Arguments   : none
; *
; * Returns     : none
; *
; * Note(s)    : This function is INTERNAL to uC/OS-II and your application should not call it.
; *********************************************************************************************************
; */
; 
; void  OS_MemInit (void)LG_REENTRANT
; {
; #if OS_MAX_MEM_PART == 1
;     OSMemFreeList                = (OS_MEM *)&OSMemTbl[0]; /* Point to beginning of free list          */
;     OSMemFreeList->OSMemFreeList = (void *)0;              /* Initialize last node                     */
;     OSMemFreeList->OSMemAddr     = (void *)0;              /* Store start address of memory partition  */
;     OSMemFreeList->OSMemNFree    = 0;                      /* No free blocks                           */
;     OSMemFreeList->OSMemNBlks    = 0;                      /* No blocks                                */
;     OSMemFreeList->OSMemBlkSize  = 0;                      /* Zero size                                */
; #endif
; 
; #if OS_MAX_MEM_PART >= 2
;     OS_MEM  *pmem;
;     INT16U   i;
; 
; 
;     pmem = (OS_MEM *)&OSMemTbl[0];                    /* Point to memory control block (MCB)           */
;     for (i = 0; i < (OS_MAX_MEM_PART - 1); i++) {     /* Init. list of free memory partitions          */
;         pmem->OSMemFreeList = (void *)&OSMemTbl[i+1]; /* Chain list of free partitions                 */
;         pmem->OSMemAddr     = (void *)0;              /* Store start address of memory partition       */
;         pmem->OSMemNFree    = 0;                      /* No free blocks                                */
;         pmem->OSMemNBlks    = 0;                      /* No blocks                                     */
;         pmem->OSMemBlkSize  = 0;                      /* Zero size                                     */
;         pmem++;
;     }
;     pmem->OSMemFreeList = (void *)0;                  /* Initialize last node                          */
;     pmem->OSMemAddr     = (void *)0;                  /* Store start address of memory partition       */
;     pmem->OSMemNFree    = 0;                          /* No free blocks                                */
;     pmem->OSMemNBlks    = 0;                          /* No blocks                                     */
;     pmem->OSMemBlkSize  = 0;                          /* Zero size                                     */
; 
;     OSMemFreeList       = (OS_MEM *)&OSMemTbl[0];     /* Point to beginning of free list               */
; #endif
; }
; #endif                                           /* OS_MEM_EN                                          */
; *** sync lost ***
; *** sync lost ***
; *** sync lost ***
	END

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本成人在线网站| 国产精品人人做人人爽人人添| 美腿丝袜亚洲综合| 自拍偷在线精品自拍偷无码专区| 欧美精品一级二级| 日本道在线观看一区二区| 久久亚洲精华国产精华液| 成人性生交大片免费看中文| 亚洲一区二区三区三| 国产欧美视频一区二区三区| 色先锋aa成人| 97超碰欧美中文字幕| 国产精品一级二级三级| 日韩高清国产一区在线| 亚洲一区二区三区四区五区黄 | 国产亚洲精品中文字幕| 91精品国产综合久久精品| 成人免费视频视频在线观看免费| 奇米亚洲午夜久久精品| 亚洲一级二级在线| 亚洲欧美日韩久久精品| 91香蕉国产在线观看软件| 亚洲日本中文字幕区| 91精品午夜视频| 欧美自拍偷拍午夜视频| 秋霞电影网一区二区| 香蕉加勒比综合久久| 337p粉嫩大胆噜噜噜噜噜91av | 99麻豆久久久国产精品免费优播| 国产在线精品视频| 国产一区二三区| 五月婷婷激情综合| 亚洲自拍偷拍九九九| 中文字幕免费在线观看视频一区| 91精品国产福利在线观看| 欧美老女人在线| 51精品久久久久久久蜜臀| 91国模大尺度私拍在线视频| 一本久久a久久精品亚洲| 一本大道av伊人久久综合| 91在线精品一区二区| 久久99精品国产.久久久久| 日韩av电影免费观看高清完整版 | 亚洲aaa精品| 久久久久久亚洲综合影院红桃| 色乱码一区二区三区88| 韩国女主播成人在线观看| 亚洲福利视频一区二区| 亚洲欧美日韩久久| 一区二区三区在线影院| 91精品欧美一区二区三区综合在| 成人黄色国产精品网站大全在线免费观看 | 亚洲婷婷在线视频| 一区二区三区四区在线免费观看 | 欧美在线免费视屏| 午夜伦欧美伦电影理论片| 综合久久久久综合| 国产精品一二三区在线| 国精产品一区一区三区mba视频| 欧美一区二区二区| 精品国产乱码久久久久久1区2区| 欧美tk—视频vk| 欧美成人性福生活免费看| 国产区在线观看成人精品| 中文字幕一区二区三| 一区二区三区四区乱视频| 日本不卡不码高清免费观看| 亚洲一区二区三区免费视频| 性久久久久久久久| 日本中文在线一区| 国产一区视频网站| 欧美性色黄大片| 欧美精品乱人伦久久久久久| 欧美一区二区三区的| 91精品国产丝袜白色高跟鞋| 日韩一区二区精品| 久久久久国产精品麻豆| 亚洲一区二区三区在线| av在线不卡电影| 日本道色综合久久| 精品久久久久久久久久久久久久久久久 | 成人妖精视频yjsp地址| 欧美色成人综合| www国产成人| 亚洲成人精品一区| 成人精品视频一区| 日韩三级伦理片妻子的秘密按摩| 中文字幕一区二区不卡| 麻豆传媒一区二区三区| 在线一区二区三区| 国产亚洲一区二区在线观看| 亚洲成人综合网站| 美女免费视频一区| 色诱视频网站一区| 国产欧美日韩综合| 老司机免费视频一区二区三区| av色综合久久天堂av综合| 精品国产91乱码一区二区三区| 亚洲激情av在线| 成人激情小说乱人伦| 精品国产免费视频| 天堂资源在线中文精品| 色综合天天综合网天天狠天天 | 亚洲男人都懂的| 国产成人一级电影| 日韩欧美一区二区久久婷婷| 亚洲综合色区另类av| 韩国精品主播一区二区在线观看 | 一本一本大道香蕉久在线精品 | 亚洲综合激情小说| 91在线精品一区二区| 久久综合九色综合欧美亚洲| 亚洲无线码一区二区三区| 91亚洲精品乱码久久久久久蜜桃| 久久亚洲综合av| 精品亚洲成a人| 日韩女同互慰一区二区| 午夜精品久久久久久久久| 欧美午夜精品久久久| 久久久久久毛片| 国产精品一区专区| 精品国产乱码久久久久久免费 | 黑人巨大精品欧美一区| 欧美一区二区三区视频免费| 天天综合网 天天综合色| 在线观看免费亚洲| 夜夜嗨av一区二区三区四季av| 99久久久免费精品国产一区二区| 国产日产精品1区| 国产一区二区在线影院| 欧美精品一区二区在线播放| 日韩电影免费在线看| 色成人在线视频| 亚洲一卡二卡三卡四卡 | 在线免费av一区| 国产精品成人一区二区艾草 | 成人手机电影网| 99精品久久99久久久久| 亚洲人成7777| 在线一区二区三区做爰视频网站| 欧美成人性福生活免费看| 国产欧美日韩另类视频免费观看| 一区二区高清视频在线观看| 欧洲精品视频在线观看| 亚洲乱码中文字幕| 欧美激情中文字幕一区二区| 精品在线播放免费| 国产人久久人人人人爽| 国产精品亚洲第一| 中文字幕视频一区| 91搞黄在线观看| 偷窥国产亚洲免费视频| 欧美mv和日韩mv国产网站| 国产精品1区2区| 综合久久久久久| 在线不卡免费欧美| 日本强好片久久久久久aaa| 久久精品一区二区三区不卡牛牛| 丁香亚洲综合激情啪啪综合| 亚洲欧美区自拍先锋| 在线成人免费视频| 国产精品一二三四| 亚洲精品高清在线| 日韩一卡二卡三卡四卡| 国产成人综合在线播放| 一级女性全黄久久生活片免费| 日韩视频在线永久播放| www.综合网.com| 天天亚洲美女在线视频| 欧美激情一区二区三区全黄| 91黄色免费版| 精品一区二区三区在线观看 | 国产一区二区三区免费播放| 亚洲色图制服诱惑| 日韩一区二区三区四区| 豆国产96在线|亚洲| 石原莉奈在线亚洲三区| 国产精品久线观看视频| 欧美日韩视频专区在线播放| 国产一区在线视频| 亚洲综合色网站| 欧美国产一区二区在线观看| 欧美疯狂性受xxxxx喷水图片| 成人激情开心网| 免费人成在线不卡| 亚洲人亚洲人成电影网站色| 日韩欧美亚洲国产另类| 日本道免费精品一区二区三区| 国产麻豆9l精品三级站| 肉丝袜脚交视频一区二区| 国产精品国产自产拍在线| 日韩精品一区二区三区在线观看 | 国产成人午夜精品影院观看视频| 一区二区三区成人在线视频| 国产清纯在线一区二区www| 日韩一区二区三区视频在线| 91亚洲男人天堂| 国产激情一区二区三区| 免费看欧美美女黄的网站| 亚洲综合丁香婷婷六月香|