finsh没有出现msh

发布于 2021-03-15 17:35:55    浏览:528

我用stm32cube生成裸机代码,再移植rt-thread-nano,finsh能打印出logo,但是没有msh >。main函数里只有一个循环,有延时,编译器用的arm-none-eabi-gcc
我上传了我的rtconfig.h和drv_usart.c文件,求大佬帮个忙
QQ截图20210315172146.png

code.zip

查看更多

5 个回答
yangjie
yangjie 2021-03-15
This guy hasn't written anything yet

没有移植完成,看看这个移植示例

xijing
xijing 2021-03-15
This guy hasn't written anything yet

drv_usart.c
好像还是老样子,只能显示出LOGO0116b7ecf0543410d844c2aded757deb.png

flashman2002
flashman2002 2021-03-16
This guy hasn't written anything yet

请注意main线程的优先级与msh的优先级,还有如果main中的延时过小会导致msh总没有机会运行。

james_s
james_s 2021-04-15
This guy hasn't written anything yet

建议你用仿真器单步一下, 看看是否卡在什么初始化地方了.

油田小鸡毛
油田小鸡毛 2021-05-08
This guy hasn't written anything yet

没有 msh 提示符输出,一个可能原因就是 finsh 没有初始化,可以 debug 进去看 finsh_system_init 是否有被调用。
rtt 的 finsh 初始化是用 INIT_APP_EXPORT(finsh_system_init); 自动调用的,要实现自动调用,除了对应的宏定义设置后,还要在 linker script 中添加初始化 section。以 GCC 编译器为例,如下:

/ section information for finsh shell /
. = ALIGN(4);
__fsymtab_start = .;
KEEP(*(FSymTab))
__fsymtab_end = .;

. = ALIGN(4);
__vsymtab_start = .;
KEEP(*(VSymTab))
__vsymtab_end = .;

/ section information for initial. /
. = ALIGN(4);
__rt_init_start = .;
KEEP((SORT(.rti_fn)))
__rt_init_end = .;

. = ALIGN(4);

撰写答案

请登录后再发布答案,点击登录
关注者
0
被浏览
528

发布
问题

分享
好友

手机
浏览

扫码手机浏览