rtthread移植避坑手册

问题1:

自动生成的代码中,rt_hw_board_init()函数中会调用SystemClock_Config()函数进行系统时钟初始化,main函数中也会调用此函数进行初始化,这样会导致在进行第二次初始化时,初始化失败进入死循环。所以需要删除其中一个初始化。

问题2:rt_thread_create创建线程失败

通过调试发现,rt_malloc函数在进行内存对齐判断时失败:

 

 发现 mem_size_aligned 的值为 0,显然这个值不该为0,全局搜索到这个值被赋值的地方,发现rt_system_heap_init函数初始化了这个值,但是由于在CubeMx的配置过程中,为了使用自定义的main函数使RT_USING_USER_MAIN为Disabled,导致该函数没有被调用:

于是重新配置后,将components.c中想要自定义的部分注释掉(其实就是#ifdef RT_USING_COMPONENTS_INIT以后全注释了)。

posted @ 2022-01-04 18:15  一只吃水饺的胡桃夹子  阅读(516)  评论(0编辑  收藏  举报