完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
求助各位大佬,小弟最近手头有一个项目,需要在手头一个公司已做出来的m0内核的mcu上移植freertos,但苦于一直不成功,还望指教。
网上的很多教程都是STM32的,但是其实32系列的移植很多都有官方demo,所以很简单,我进行移植的时候(使用工具为mdk),先是有一个已经成功的裸机程序,然后将内核相关的list.c,task.c等都加入工程,再添加内存管理文件heap.c和port.c,这两个文件我都是直接使用的官方:FreeRTOSv9.0.0FreeRTOSSourceportableRVDSARM_CM0路径和FreeRTOSv9.0.0FreeRTOSSourceportableMemMang路径下的文件,之后在main函数加入xtaskcreate()用于测试,之后debug发现会卡死在xtaskcreate()中,还望指教。 |
|
相关推荐
1个回答
|
|
首先,我们需要了解FreeRTOS移植到M0内核MCU的一般步骤。以下是一些可能的原因和解决方案:
1. 检查内核文件是否正确包含: 确保你已经将FreeRTOS的内核文件(如list.c,task.c等)正确地添加到你的工程中。同时,确保这些文件没有被错误地修改或损坏。 2. 选择合适的内存管理文件: FreeRTOS提供了多种内存管理策略,你需要根据你的项目需求选择合适的内存管理文件。你提到使用了heap.c和port.c,但可能需要根据你的MCU和需求进行调整。例如,如果你的MCU具有较小的内存,可能需要使用不同的内存管理策略。 3. 检查port.c文件: port.c文件包含了与硬件相关的配置,确保你使用的port.c文件是针对M0内核的。如果需要,你可能需要修改port.c文件以适应你的MCU。 4. 检查配置文件: FreeRTOS的配置文件(通常是FreeRTOSConfig.h)包含了许多与你的MCU和项目相关的设置。确保这些设置正确,例如任务优先级,任务堆栈大小等。 5. 检查中断和时钟配置: 确保你的MCU的中断和时钟配置正确。FreeRTOS依赖于定时器中断来管理任务调度,因此确保定时器中断已经正确配置。 6. 调试和错误处理: 在移植过程中,使用调试工具(如MDK的调试器)来检查程序的执行情况。查看是否有任何错误或异常情况发生,并根据需要进行调整。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1105 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1128 浏览 1 评论
558 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
420 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1011 浏览 2 评论
1605浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
271浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
283浏览 3评论
267浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
245浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-19 04:15 , Processed in 0.714642 second(s), Total 81, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191