cccccc2 发表于 2018-7-18 15:28:33

关于freertos移植到M0内核的mcu

   求助各位大佬,小弟最近手头有一个项目,需要在手头一个公司已做出来的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()中,还望指教。

tigerkiller 发表于 2018-7-18 15:38:56

百度找。

TLLED 发表于 2018-7-18 16:45:29

按照DEMO例程,移植时看看配置文件方面有什么区别,有时候自己移植,总是某些参数设置不对,就会有不同的结果,建议多和DEMO代码比较比较

cccccc2 发表于 2018-7-18 18:37:40

TLLED 发表于 2018-7-18 16:45
按照DEMO例程,移植时看看配置文件方面有什么区别,有时候自己移植,总是某些参数设置不对,就会有不同的结 ...

多谢老哥,想问一下,是否相同m0内核下,所有的port.c和portmacro.h都是通用的,直接使用官方的吗?就是说我们只需要根据demo和芯片的数据手册去进行配置freeertosConfig.h文件吗?

xiaojie0513 发表于 2018-7-18 18:58:09

卡住哪一步了??

cccccc2 发表于 2018-7-19 14:47:16

xiaojie0513 发表于 2018-7-18 18:58
卡住哪一步了??

使用heap4卡死在任务创建函数,停在内存申请函数中从xstart开始寻找大小满足需求的内存块,
使用heap1的内存管理方法,任务可以创建,但是开启任务调度器时vtaskStartScheduler都不会完全执行完。

cccccc2 发表于 2018-7-19 16:22:15

cccccc2 发表于 2018-7-19 14:47
使用heap4卡死在任务创建函数,停在内存申请函数中从xstart开始寻找大小满足需求的内存块,
使用heap1的 ...

debug发现任务调度器会停在最后,官方在那一块的源码注释是说系统内核没有启动成功,原因在于创建空闲任务或者定时器任务时没有足够内存。现在不确定是不是我的freertosConfig.h文件配置有问题,按理说我这块mcu的ram其实够大
页: [1]
查看完整版本: 关于freertos移植到M0内核的mcu