求助各位大佬,小弟最近手头有一个项目,需要在手头一个公司已做出来的m0内核的mcu上移植freertos,但苦于一直不成功,还望指教。 网上的很多教程都是stm32的,但是其实32系列的移植很多都有官方demo,所以很简单,我进行移植的时候(使用工具为mdk),先是有一个已经成功的裸机程序,然后将内核相关的list.c,task.c等都加入工程,再添加内存管理文件heap.c和port.c,这两个文件我都是直接使用的官方:FreeRTOSv9.0.0\FreeRTOS\Source\portable\RVDS\ARM_CM0路径和FreeRTOSv9.0.0\FreeRTOS\Source\portable\MemMang路径下的文件,之后在main函数加入xtaskcreate()用于测试,之后debug发现会卡死在xtaskcreate()中,还望指教。 |
评分
查看全部评分
评分
查看全部评分
多谢老哥,想问一下,是否相同m0内核下,所有的port.c和portmacro.h都是通用的,直接使用官方的吗?就是说我们只需要根据demo和芯片的数据手册去进行配置freeertosConfig.h文件吗?
评分
查看全部评分
使用heap4卡死在任务创建函数,停在内存申请函数中从xstart开始寻找大小满足需求的内存块,
使用heap1的内存管理方法,任务可以创建,但是开启任务调度器时vtaskStartScheduler都不会完全执行完。
debug发现任务调度器会停在最后,官方在那一块的源码注释是说系统内核没有启动成功,原因在于创建空闲任务或者定时器任务时没有足够内存。现在不确定是不是我的freertosConfig.h文件配置有问题,按理说我这块mcu的ram其实够大