GCC使用stm32cubemx使用RT-Thread环境搭建实现finsh
第一步:在stm32cubemx中添加rt-thread;具体步骤根据官方文档操作。
第二步:使用stm32cubemx正常配置需要使用的引脚和功能,这里使用makefile方式,其他方式官方文档更加详细
第三步:修改makefile 文件和gcc启动文件(出现持续进入rt_hw_hard_fault_exception函数,需要仔细分析原因很多,最终我的是gcc方式没有修改启动文件导致,最后在官方文档找到原因,下面有官方文档移植原理地址)。
1.修改makefile 文件,添加context_gcc.s启动文件到makefile文件中,地址可以根据和它同目录的cpuport.c文件地址修改。这里还需要将默认的context_gcc.S大写S修改为小写.
2.修改gcc启动文件,gcc方式需要修改,mdk,iar不用修改,详情件官方文档-移植原理
第四步:屏蔽自动生成的系统时钟,开启HEAP
开启HEAP
第五步:修改链接文件.ld此处参考文章添加对应的finsh连接部分
代码:
/* section information for finsh shell */
. = ALIGN(4);
__fsymtab_start = .;
KEEP(*(FSymTab))
__fsymtab_end = .;
. = ALIGN(4);
__vsymtab_start = .;
KEEP(*(VSymTab))
__vsymtab_end = .;
. = ALIGN(4);
/* section information for initial. */
. = ALIGN(4);
__rt_init_start = .;
KEEP(*(SORT(.rti_fn*)))
__rt_init_end = .;
. = ALIGN(4);
初学使用rt-thread,使用gcc+makefile方式,此文档记录调试遇到问题的解决方法。
time:2020.10.30