第8章内存管理分析.ppt

err: 指向包含错误码的变量的指针。 OS_NO_ERR :成功建立内存区。 OS_MEM_INVALID_PART :没有空闲的内存区。 OS_MEM_INVALID_BLKS :没有为每一个内存区建立至少两个内存块。 OS_MEM_INVALID_SIZE :内存块大小不足以容纳一个指针变量。 返回值: OSMemCreate()函数返回指向内存区控制块的指针。如果没有剩余内存区,OSMemCreate()函数返回空指针。 举例 OS_MEM *MemBuf; /*定义一个内存控制块指针 */ INT8U buffer[50][16]; /*定义一个内存分区数组 */ void main (void){ INT8U err; OSInit(); …… MemBuf = OSMemCreate(buffer, 50, 16, err); …….. OSStart(); } 内存控制块与内存分区和内存块的关系 MemBuf = OSMemCreate(buffer, 50, 16, err); buffer 16 50 OSMemCreate()函数工作过程如下 (1) 条件检查,确保各种前提条件的满足。 (2) 从空闲内存控制块链表中取得一个内存控制块。 (3) 若该空闲内存控制块可用,则将该内存分区内的所有内存块用指针链接成一个单向链表。因

文档评论(0)

1亿VIP精品文档

相关文档