共1条
1/1 1 跳转至页
memPartFree and taskSuspend
Anyone know why memPartFree would ever call taskSuspend?
I am using standard malloc and free pairs, but occasionally I get a suspended task. When I use "tt" to get a trace, it shows free calling memPartFree and then memPartFree calling taskSuspend. If I knew what conditions caused memPartFree to call suspend I might be able to figure out whats happening.
Thanks,
bryan
Hello,
memPartFree and memPartAlloc can both suspend the calling task in cases where there is an allocation error (as long as the task is breakable - see taskLib for information on breakable and non-breakable tasks).
For the case where memPartFree does this, it is usually the result of corruption on your heap. There is a small header just in front of every allocated block that tells the partition library how big the block is, and also contains some pointer information needed to manage the partition. Corrupting one of these headers can cause memPartFree to suspend the task. Also, trying to free memory that was not allocated using memPartAlloc will do this.
If you don't like this behaviour, then you can change the options for the partition (see memPartLib's reference manual for information). Before doing that though, you need to work out what in your code is corrupting the heap! That can be a daunting task, especially since it is likely that the cause of the problem is the code using the block allocated just in front of the one you are trying to free, and the not the code that is being suspended.
You might want to look into some tools that could help you here if you don't find the problem quickly. RTI have a tool that does this (MemScope), and there are other companies out there with these tools too (check on comp.os.vxworks for other suggestions - this comes up on there every now and again).
HTH,
John...
关键词: memPartFree taskSuspend
共1条
1/1 1 跳转至页
回复
我要赚赏金打赏帖 |
|
|---|---|
| 【FreeRtos】FreeRtos + MPU模块的配置使用被打赏¥32元 | |
| 【分享开发笔记,赚取电动螺丝刀】墨水屏文本显示器被打赏¥25元 | |
| 【STEVAL-STWINKT1B】:结合STMcubeMX读取磁力计iis2mdc被打赏¥19元 | |
| 【STEVAL-STWINKT1B】:结合STMcubeMX读取LPS22HH气压、温度被打赏¥19元 | |
| 【STEVAL-STWINKT1B】:结合STMcubeMX读取STTS751温度被打赏¥17元 | |
| 【STEVAL-STWINKT1B】:结合STMcubeMX软件读取HTS221温湿度被打赏¥22元 | |
| M5PAPERESP32EINKDEVKIT评测|使用MicroPython开发M5Paper被打赏¥15元 | |
| OK1126B-S开发板下以导航按键控制云台/机械臂姿态调整被打赏¥29元 | |
| 【树莓派5】便携热成像仪被打赏¥36元 | |
| 【树莓派5】环境监测仪被打赏¥35元 | |
我要赚赏金
