完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
你好,我想在PIC32 MX150 F128B上使用FRIERTOS创建固件。因此,为了测试FRIERTOS,我试图让LED闪烁。因此,我用MHC和FrRetos创建了一个应用程序,并在AppTebug循环中添加了LILIN。LED闪烁如预期,但当我添加另一项任务时,什么也没有发生。我现在处理它,它似乎是总的堆大小为10240字节是不够的。我把它设置为20480字节,现在LED闪烁,有两个任务正在运行。那么问题是什么呢?我的应用程序或任务的“任务大小”设置为1024。因此,我有2个自定义任务和系统任务,它们还有1024个字节的内存,它们应该使用3K内存。在FRIERTOS FAQ()中,他们说RTOS使用236字节。有人能告诉我我在忽略什么吗?10K内存如何不能满足闪烁的LED和另一个空任务?什么样的值应该设置MHC的“任务大小”?谢谢你的回答!
|
|
相关推荐
6个回答
|
|
您确定堆栈大小是字节而不是单词吗?三个1024字栈将消耗12kb。
|
|
|
|
我确信我配置为10240和20480的总堆大小wich的值。没有给出“任务大小”值的单位。但是如果是单词,那么为什么程序不能工作,但是将任务大小设置为1024个单词是否合理?
|
|
|
|
任务需要多少堆栈取决于任务运行的代码。操作系统有一些最低要求,除此之外,还需要为跨函数调用保存的本地变量和寄存器留出空间。对于一个只在一个循环中切换LED的任务来说,一百个字应该是绰绰有余的。
|
|
|
|
堆栈大小是用字来指定的,而不是字节。请参阅XTaskCeCuto()API函数的文档页。我不确定我是否可以在这里发布链接,但我会尝试。如果它没有显示,那么只显示Google xTaskCreate(),并且它应该是顶部链接:http://www.freertos.org/a00125.htmlMIPS体系结构具有相对大的上下文,并且上下文被保存到任务堆栈中,因此任务堆栈必须至少足够大以容纳上下文。上下文大小是硬件的特性,而不是RTOS。此后所需的堆栈大小取决于任务正在做什么——函数调用嵌套深度是什么、声明的任何堆栈变量、编译器优化级别等等。LLER超过190个单词(760字节)。1024字栈通常比需要的多。如果你有两个任务,每个字1024个,那么这将是8K的堆栈空间组合。然后,您还需要用于空闲任务的堆栈空间,以及可能(取决于配置)RTOS守护进程任务(以前称为计时器任务)。您可以使用uxTaskGetStackHighWaterMark()函数(尝试发布另一个链接:http://www.freertos.org/uxTaskGetStackHighWaterMark.html)。要查看任务实际使用多少堆栈,以及堆栈溢出钩子(尝试另一个链接:http://www.freertos.org/Stacks-and-stack-overflow-checking.html)来捕获堆栈溢出,然后将它们放在一起,就可以调整所需的堆栈数量。我相信,还有一些GCC命令行选项可以让您知道使用多少堆栈,因为堆栈在优化级别上变化很大。希望这能有所帮助。
|
|
|
|
谢谢您的详细回复!在和谐代码配置工具中有一点不清楚。堆的总量是以字节为单位设置的,任务堆是以Words为单位设置的,没有地方是值单位的描述。我反复使用这些值,让它们足够大,并在最后进行优化。现在我可以处理我的项目并用代码填充任务!再次感谢大家!
|
|
|
|
Hicheck也是你为FreeRTOS堆使用的内存模型
|
|
|
|
只有小组成员才能发言,加入小组>>
5237 浏览 9 评论
2026 浏览 8 评论
1950 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3201 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2253 浏览 5 评论
772浏览 1评论
662浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
590浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
672浏览 0评论
572浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-21 12:16 , Processed in 1.329609 second(s), Total 85, Slave 69 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号