PSOC创建者设计宽资源编辑器具有系统参数
堆栈大小和堆栈大小。存储在这个堆中的是什么?
据推测,按照正常情况,任何调用MalCube()返回的内存将来自堆。
如果我明白
默认情况下,没有任何动态分配,对吗?还是在那里?
?
我需要设置它以使我的自由堆大小& pSoCoClor堆大小吗?
请查看Frrutto.Org网站的内存管理部分。
在这种情况下,FreeRTOS不使用由CyPress工具设置的堆,除非HeAPH3.3.C包含在项目中,并且它使用由CyPress工具设置的堆栈作为中断堆栈。
我想没有,因为我认为免费预订只是另一个预订。
整个区域?就堆栈参数而言,这是如何相互作用的。
这是FrRetos堆栈?同样,如果我正确理解,自由定位空间
在创建任务时,任务堆栈从自己的堆开始。(对此我相当肯定,
因为堆栈大小是动态地提供给任务创建函数的。
是的-按照上面的链接。
这是否意味着我能摆脱一个非常小的PSoC Creator堆栈大小,因为
gt;该堆栈仅用于初始化素材和调度器本身,并且与
实际任务堆栈?
它至少需要大到足以运行到VTaskStistApple()调用的位置,并且至少大到足以容纳一个完整的中断堆栈帧,这可能会根据应用程序正在做的事情而嵌套几个中断。
当做,
李察。
弗雷罗托斯
专为微控制器设计,每月下载量超过7000次
以上来自于百度翻译
以下为原文
> The PSoC Creator design-wide resources editor has system parameters
> for heap size and stack size. What exactly is stored in this heap?
Presumably, as per normal, memory returned by any call to malloc() will come from the heap.
>If I understand
> properly there isn't any dynamic allocation at all by default, right? Or is there?
?
> Do I need to set it up so that my FreeRTOS heap size < the PSoC Creator heap size?
Please see the
memory management section of the FreeRTOS.org web site.
In this case, FreeRTOS does not use the heap set up by the Cypress tools unless heap_3.c is included in your project, and it uses the stack set up by the Cypress tools as the interrupt stack.
> I'm thinking no, because I think the FreeRTOS heap reservation just reserves another
>area entirely?As far as the stack parameter is concerned, how does this interact with
>the FreeRTOS stack? Again, if I understand correctly, FreeRTOS allocates space for
> task stacks from its own heap when the task is created. (I'm pretty sure about this,
> because the stack size is dynamically supplied to the task creation function.)
Yes - as per the link above.
> Does this mean that I can get away with a very small PSoC Creator stack size, because
> that stack is only used for initialization stuff and for the scheduler itself, and is disjoint from
> the actual task stacks?
It needs to be at least big enough for main to run to the point where vTaskStartScheduler() is called, and at least big enough to hold a complete interrupt stack frame, which may be nested several interrupts deep, depending on what your application is doing.
Regards,
Richard.
FreeRTOS
Designed for Microcontrollers, more than 7000 downloads per month
PSOC创建者设计宽资源编辑器具有系统参数
堆栈大小和堆栈大小。存储在这个堆中的是什么?
据推测,按照正常情况,任何调用MalCube()返回的内存将来自堆。
如果我明白
默认情况下,没有任何动态分配,对吗?还是在那里?
?
我需要设置它以使我的自由堆大小& pSoCoClor堆大小吗?
请查看Frrutto.Org网站的内存管理部分。
在这种情况下,FreeRTOS不使用由CyPress工具设置的堆,除非HeAPH3.3.C包含在项目中,并且它使用由CyPress工具设置的堆栈作为中断堆栈。
我想没有,因为我认为免费预订只是另一个预订。
整个区域?就堆栈参数而言,这是如何相互作用的。
这是FrRetos堆栈?同样,如果我正确理解,自由定位空间
在创建任务时,任务堆栈从自己的堆开始。(对此我相当肯定,
因为堆栈大小是动态地提供给任务创建函数的。
是的-按照上面的链接。
这是否意味着我能摆脱一个非常小的PSoC Creator堆栈大小,因为
gt;该堆栈仅用于初始化素材和调度器本身,并且与
实际任务堆栈?
它至少需要大到足以运行到VTaskStistApple()调用的位置,并且至少大到足以容纳一个完整的中断堆栈帧,这可能会根据应用程序正在做的事情而嵌套几个中断。
当做,
李察。
弗雷罗托斯
专为微控制器设计,每月下载量超过7000次
以上来自于百度翻译
以下为原文
> The PSoC Creator design-wide resources editor has system parameters
> for heap size and stack size. What exactly is stored in this heap?
Presumably, as per normal, memory returned by any call to malloc() will come from the heap.
>If I understand
> properly there isn't any dynamic allocation at all by default, right? Or is there?
?
> Do I need to set it up so that my FreeRTOS heap size < the PSoC Creator heap size?
Please see the
memory management section of the FreeRTOS.org web site.
In this case, FreeRTOS does not use the heap set up by the Cypress tools unless heap_3.c is included in your project, and it uses the stack set up by the Cypress tools as the interrupt stack.
> I'm thinking no, because I think the FreeRTOS heap reservation just reserves another
>area entirely?As far as the stack parameter is concerned, how does this interact with
>the FreeRTOS stack? Again, if I understand correctly, FreeRTOS allocates space for
> task stacks from its own heap when the task is created. (I'm pretty sure about this,
> because the stack size is dynamically supplied to the task creation function.)
Yes - as per the link above.
> Does this mean that I can get away with a very small PSoC Creator stack size, because
> that stack is only used for initialization stuff and for the scheduler itself, and is disjoint from
> the actual task stacks?
It needs to be at least big enough for main to run to the point where vTaskStartScheduler() is called, and at least big enough to hold a complete interrupt stack frame, which may be nested several interrupts deep, depending on what your application is doing.
Regards,
Richard.
FreeRTOS
Designed for Microcontrollers, more than 7000 downloads per month
举报