完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
#include
#define TASK_STK_SIZE 512 OS_STK STARTTASK[TASK_STK_SIZE]; OS_STK MYTASK[TASK_STK_SIZE]; OS_STK YOUTASK[TASK_STK_SIZE]; OS_STK HERTASK[TASK_STK_SIZE]; OS_MEM *PMEM; INT8U MEM[8][6]; INT8U err; INT8U *BLKP; //内存块指针 OS_MEM_DATA MEMDATA; char *s; char *s1="mytask is running!"; char *s2="youtask is running!"; char *s3="hertask is running!"; void starttask(void *p); void mytask(void *p); void youtask(void *p); void hertask(void *p); void main(int args, char *argss[]) { OSInit(); MEM=OSMemCreate(MEM,8,6,&err); OSTaskCreate(starttask,NULL,(OS_STK *)&STARTTASK[TASK_STK_SIZE-1],(INT8U)0); OSStart(); } void starttask(void *p) { p=p; OSTaskCreate(mytask,NULL,(OS_STK *)&MYTASK[TASK_STK_SIZE-1],(INT8U)3); OSTaskCreate(youtask,NULL,(OS_STK *)&YOUTASK[TASK_STK_SIZE-1],(INT8U)4); OSTaskCreate(hertask,NULL,(OS_STK *)&HERTASK[TASK_STK_SIZE-1],(INT8U)5); while(TRUE) { OStimeDlyHMSM(0,0,3,0); } } void mytask(void *p) { INT8U TIME; p=p; TIME=0; while(TRUE) { OS_Printf("%st",s1); BLKP=(INT8U *)OSMemGet(PMEM,&err); OSMemQuery(PMEM,&MEMDATA); s=(char *)MEMDATA.OSFreeList; OS_Printf("%0xt",s); OS_Printf("%dn",MEMDATA.OSNUsed); if(TIME>4) { OSMemPut(PMEM,BLKP); TIME=0; } TIME++; OSTimeDlyHMSM(0,0,1,0); } } void youtask(void *p) { p=p; while(TRUE) { OS_Printf("%st",s2); BLKP=(INT8U *)OSMemGet(PMEM,&err); OSMemQuery(PMEM,&MEMDATA); s=(char *)MEMDATA.OSFreeList; OS_Printf("%0xt",s); OS_Printf("%dn",MEMDATA.OSNUsed); OSMemPut(PMEM,BLKP); OSTimeDlyHMSM(0,0,2,0); } } void hertask(void *p) { p=p; while(TRUE) { OS_Printf("%st",s3); BLKP=(INT8U *)OSMemGet(PMEM,&err); OSMemQuery(PMEM,&MEMDATA); s=(char *)MEMDATA.OSFreeList; OS_Printf("%0xt",s); OS_Printf("%dn",MEMDATA.OSNUsed); OSMemPut(PMEM,BLKP); OSTimeDlyHMSM(0,0,2,0); } } 这3个任务分别是Mytask Youtask Hertask。在应用程序中创建一个动态内存分区 该分区有8个内存块,每个内存块的长度是6字节。应用程序的任务Youtask Hertask都在任务运行后请求一个内存块. 随后就释放它;任务MYTASK也在任务运行后请求一个内存块,但是要在任务MYTASK运行6次后,才释放它所申请的内存块。 为了了解内存分区变化的情况,编写代码来观察分区头指针和已被使用内存块的个数。 但是我明明释放了内存,为什么他显示内存使用一直是递增的,而且但最后会卡住? |
|
相关推荐
2个回答
|
|
问题已解决!
|
|
|
|
帮顶。。。。
|
|
|
|
只有小组成员才能发言,加入小组>>
807 浏览 0 评论
1159 浏览 1 评论
2534 浏览 5 评论
2867 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2717 浏览 6 评论
keil5中manage run-time environment怎么是灰色,不可以操作吗?
1099浏览 3评论
197浏览 2评论
463浏览 2评论
377浏览 2评论
M0518 PWM的电压输出只有2V左右,没有3.3V是怎么回事?
458浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 23:45 , Processed in 1.033997 second(s), Total 82, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号