UCOS内存管理
来源:互联网 发布:北京网络报警平台官网 编辑:程序博客网 时间:2024/05/04 21:09
STM32F10xxx内置64K字节的静态SRAM。它可以以字节、半字(16位)或全字(32位)访问
SRAM的起始地址是0x20000000
UCOSII
//定义存储区OS_MEM *DATA_MEM; //存储区中存储块数量(可申请次数)#define DATA_MEM_NUM 10//每个存储块大小#define DATA_MEMBLOCK_SIZE 128//内存地址__align(4) CPU_INT08U data_RamMemp[DATA_MEM_NUM][DATA_MEMBLOCK_SIZE] __attribute__((at(0x20001000)));/*OS_MEM *OSMemCreate (void *addr, INT32U nblks, INT32U blksize, INT8U *perr);申请:void *OSMemGet (OS_MEM *pmem, INT8U *perr);释放:INT8U OSMemPut (OS_MEM *pmem, void *pblk);*/int main(){ INT8U err; DATA_MEM = OSMemCreate(data_RamMemp, DATA_MEM_NUM, DATA_MEMBLOCK_SIZE, &err); void *data = OSMemGet(DATA_MEM, &err); if(data) { OSMemPut(DATA_MEM, data); } return 0;}
UCOSIII
OS_MEM DATA_MEM; #define DATA_MEM_NUM 5#define DATA_MEMBLOCK_SIZE 64__align(4) CPU_INT08U data_RamMemp[DATA_MEM_NUM][DATA_MEMBLOCK_SIZE] __attribute__((at(0x20002000)));/*void OSMemCreate (OS_MEM *p_mem, CPU_CHAR *p_name, void *p_addr, OS_MEM_QTY n_blks, OS_MEM_SIZE blk_size, OS_ERR *p_err);void *OSMemGet (OS_MEM *p_mem, OS_ERR *p_err);void OSMemPut (OS_MEM *p_mem, void *p_blk, OS_ERR *p_err);*/int main(){ OS_ERR err; OSMemCreate(&DATA_MEM, "data mem" data_RamMemp, DATA_MEM_NUM, DATA_MEMBLOCK_SIZE, &err); void *data = OSMemGet(&DATA_MEM, &err); if(data) { OSMemPut(&DATA_MEM, data, &err); } return 0;}
阅读全文
1 0
- uCos的内存管理
- uCos的内存管理
- uCos的内存管理
- uCos的内存管理
- uCos-II内存管理
- uCOS内存管理
- ucos内存管理
- uCos的内存管理
- UCOS-II内存管理
- UCOS内存管理
- UCOS-II内存池管理
- 详解UCOS中的内存管理
- ucos内存管理 二维指针
- 详解UCOS中的内存管理
- 详解UCOS中的内存管理
- 详解UCOS中的内存管理
- ucos-ii示例7:内存管理测试
- UCOS-II的动态内存管理
- 免费的比较 Diff工具Ubuntu / Linux,Windows [译]
- 相反输出
- 小程序或js,判断变量(Undefined String Array Object)是否为空
- 请求发送者与接收者解耦——命令模式(四)
- dedecms单独调用指定文章
- UCOS内存管理
- Spring Cloud Bus整合Kafka
- liux gdb调试
- eclipse 快捷键
- Python 入门笔记二
- Wannafly 挑战赛 4 C 题 割草机 【模拟】
- Marco and GCD Sequence
- 无穷小呼唤同路人
- 大数据早报:瑞银大举招聘人工智能人才 吴恩达团队新成果深度学习改善临终关怀服务(11.25)