这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » [转帖]关于VxWorks的Partition

共1条 1/1 1 跳转至

[转帖]关于VxWorks的Partition

菜鸟
2003-01-17 01:41:42     打赏
Hi, I am using the VxWorks Memory management Library ( memPartLib ). I had a query regarding this. Create partition using memPartCreate() Allocate x number of times using mempartAlloc() I would like to free all the x allocs in one shot? How do I achieve that? Also would like to know is there a way to destroy a Partition? Thanx in Advance, Dixit There is no way to do this that is simple. The partition only tracks the free blocks, so there is no list of what is allocated. Of course, at the end of each free block (except the last one) there is at least one allocated block. In theory, you could free that, then repeat the walk of the free list from the beginning. There could also be a number of blocks allocated before the first entry in the free list, so you would need to check for those too. Finally, you have to know the size of the header that is in front of each allocated block, since you need to call memPartFree() with the address that memPartAlloc() returned. For more information on how all of this works, check the data structures defined in the partition library header files. And remember, anything you do like this might not work on a future release of VxWorks. Also would like to know is there a way to destroy a Partition? Not in VxWorks 5.x. Under VxWorks AE there is a memPartDelete() function that complements the memPartCreate(). It is not that hard to write though if you have the source to the memPartCreate() function - ask support if they will give you the source to that one function. Unfortunately, the VxWorks AE version will not just drop into 5.x as AE uses a different allocation algorithm, and also has support for dynamic partition growth. HTH, John... [align=right][color=#000066][此贴子已经被作者于2003-1-16 18:02:36编辑过][/color][/align]



关键词: 转帖     关于     VxWorks     Partition    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]