文件名称:任务堆栈-emc datadomain 2500 存储设 备维护手册
文件大小:4.33MB
文件格式:PDF
更新时间:2024-06-29 01:39:08
uCOS-II
4.2 任务堆栈 每个任务都有自己的堆栈空间。堆栈必须声明为 OS_STK类型,并且由连续的内存空间 组成。用户可以静态分配堆栈空间(在编译的时候分配)也可以动态地分配堆栈空间(在运行 的时候分配)。静态堆栈声明如程序清单 L4.4 和 4.5 所示,这两种声明应放置在函数的外 面。 程序清单 L4.4 静态堆栈 static OS_STK MyTaskStack[stack_size]; 或 程序清单 L4.5 静态堆栈 OS_STK MyTaskStack[stack_size]; 用户可以用 C 编译器提供的 malloc()函数来动态地分配堆栈空间,如程序清单 L4.6 所示。在动态分配中,用户要时刻注意内存碎片问题。特别是当用户反复地建立和删除任务 时,内存堆中可能会出现大量的内存碎片,导致没有足够大的一块连续内存区域可用作任务 堆栈,这时 malloc()便无法成功地为任务分配堆栈空间。