第一范文网 - 专业文章范例文档资料分享平台

uC - OS-II实验指导书2014

来源:用户分享 时间:2025/6/5 14:59:03 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

的内存块。应用可以动态申请这些内存块并在用完后将其释放回这个内存区域。该函数的返回值就是指向这个内存区域控制块的指针,并作为OSMemGet(),OSMemPut(),OSMemQuery()等相关调用的参数。

函数原型:OSMemCreate( void *addr, INT32U nblks ,INT32U blksize, INT8U *err); 参数说明:addr 建立的内存区域的起始地址。可以使用静态数组或在系统初始化时使用malloc()函数来分配这个区域的空间。

Nblks 内存块的数目。每一个内存区域最少需要定义两个内存块。

Blksize 每个内存块的大小,最小应该能够容纳一个指针变量。

Err 是指向包含错误码的变量的指针。Err可能是如下几种情况:

? OS_NO_ERR :成功建立内存区域。

? OS_MEM_INVALID_ADDR:非法地址,即地址为空指针。 ? OS_MEM_INVALID_PART :没有空闲的内存区域。

? OS_MEM_INVALID_BLKS :没有为内存区域建立至少两个内存块。 ? OS_MEM_INVALID_SIZE :内存块大小不足以容纳一个指针变量。

返回值 :OSMemCreate()函数返回指向所创建的内存区域控制块的指针。如果创建失败,函数返回空指针。

3.2 OSMemGet()

该函数用于从内存区域分配一个内存块。用户程序必须知道所建立的内存块的大小,并必须在使用完内存块后释放它。可以多次调用OSMemGet()函数。它的返回值就是指向所分配内存块的指针,并作为OSMemPut()函数的参数。

函数原型:OSMemGet(OS_MEM *pmem, INT8U *err);

参数说明:pmem 是指向内存区域控制块的指针,可以从OSMemCreate()函数的返回值中得到。

Err 是指向包含错误码的变量的指针。Err可能是如下情况:

? OS_NO_ERR :成功得到一个内存块。

? OS_MEM_NO_FREE_BLKS :内存区域中已经没有足够的内存块。

返回值:OSMemGet()函数返回指向所分配内存块的指针。如果没有可分配的内存块,OSMemGet

()函数返回空指针。

3.3 OSMemPut()

该函数用于释放一个内存块,内存块必须释放回它原先所在的内存区域,否则会造成系统错误。

函数原型:OSMemPut( OS_MEM *pmem, void *pblk);

参数说明:pmem 是指向内存区域控制块的指针,可以从OSMemCreate()函数的返回值中得

到。

49

Pblk 是指向将被释放的内存块的指针。

返回值 :OSMemPut()函数的返回值为下述之一:

? OS_NO_ERR :成功释放内存块

? OS_MEM_FULL :内存区域已满,不能再接受更多释放的内存块。这种情况说

明用户程序出现了错误,释放了多于用OSMemGet()函数得到的内存块。

3.4 OSMemQuery()

该函数用于得到内存区域的信息。

函数原型:OSMemQuery(OS_MEM *pmem, OS_MEM_DATA *pdata); 参数说明:

pmem 是指向内存区域控制块的指针,可以从OSMemCreate()函数的返回值中得到。 Pdata 是一个指向OS_MEM_DATA数据结构的指针,该数据结构包含了以下的域:

Void OSAddr; Void

/*指向内存区域起始地址的指针

*/ */ */ */ */ */

OSFreeList;

/*指向空闲内存块列表起始地址的指针 /*每个内存块的大小

INT32U OSBlkSize; INT32U OSNBlks; INT32U OSNFree;

/*该内存区域中的内存块总数 /*空闲的内存块数目 /*已使用的内存块数目

INT32U OSNUsed;

50

搜索更多关于: uC - OS-II实验指导书2014 的文档
uC - OS-II实验指导书2014.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c7v1os3skfc01k8200sna_13.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top