Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
FinSH
finsh屏蔽不掉,不知道是不是bug
发布于 2015-08-27 13:48:53 浏览:3480
订阅该版
禁用#define RT_USING_FINSH之后发现finsh仍然可以正常工作,跟踪源码发现在void rt_components_init(void)函数中的 ``` for (fn_ptr = &__rt_init_rti_board_end; fn_ptr < &__rt_init_rti_end; fn_ptr ++) { (*fn_ptr)(); }``` 这个地方仍然会调用finsh初始化函数int finsh_system_init(void) 翻看以前的帖子http://www.rt-thread.org/phpBB3/viewtopic.php?f=3&t=2867 帖子说这是component新的初始化方法,不知道这是不是bug。 下面这部分内容也没看懂,召唤大神出来指点一下,我想屏蔽掉finsh然后用kprintf输出信息,没想到弄了这么大麻烦 ```typedef int (*init_fn_t)(void); #define INIT_EXPORT(fn, level) const init_fn_t __rt_init_##fn SECTION(".rti_fn."level) = fn #define INIT_BOARD_EXPORT(fn) INIT_EXPORT(fn, "1") #define INIT_CPU_EXPORT(fn) INIT_EXPORT(fn, "2") #define INIT_DEVICE_EXPORT(fn) INIT_EXPORT(fn, "3") #define INIT_COMPONENT_EXPORT(fn) INIT_EXPORT(fn, "4") #define INIT_FS_EXPORT(fn) INIT_EXPORT(fn, "5") #define INIT_APP_EXPORT(fn) INIT_EXPORT(fn, "6")``` 如果屏蔽掉#define RT_USING_COMPONENTS_INIT就会报错,6个错误
查看更多
7
个回答
默认排序
按发布时间排序
bernard
2015-08-27
这家伙很懒,什么也没写!
屏蔽掉finsh,然后重新用scons生成工程或编译。组件初始化和这个是否屏蔽掉无关
sun_shine
2015-08-27
这家伙很懒,什么也没写!
有了一点头绪,搜到一篇文章http://blog.chinaunix.net/uid-25788300-id-3396047.html ``` #define INIT_BOARD_EXPORT(fn) INIT_EXPORT(fn, "1") #define INIT_CPU_EXPORT(fn) INIT_EXPORT(fn, "2") #define INIT_DEVICE_EXPORT(fn) INIT_EXPORT(fn, "3") #define INIT_COMPONENT_EXPORT(fn) INIT_EXPORT(fn, "4") #define INIT_FS_EXPORT(fn) INIT_EXPORT(fn, "5") #define INIT_APP_EXPORT(fn) INIT_EXPORT(fn, "6") ``` 这些定义将函数的地址存入.rti_fn.这个段, ``` for (fn_ptr = &__rt_init_rti_board_end; fn_ptr < &__rt_init_rti_end; fn_ptr ++) { (*fn_ptr)(); } ``` 这段代码把段中所有的函数初始化一遍, 由于INIT_COMPONENT_EXPORT(finsh_system_init);这句话所以把finsh也给初始化了 所以加个限制就可以了 ``` #ifdef RT_USING_FINSH INIT_COMPONENT_EXPORT(finsh_system_init); #endif ``` 下载程序发现这个方法解决了问题。优化完ROM size减少了差不多20KB 对MDK中linker中Misc controls的定义网上搜了搜大概了解,不能完全理解
aozima
2015-08-27
调网络不抓包,调I2C等时序不上逻辑分析仪,就像电工不用万用表!多用整理的好的文字,比截图更省流量,还能在整理过程中思考。
当 rtconfig.h中的 RT_USING_FINSH 不使能时, 你添加的那个限制所在的代码,根本就不会参与编译与链接。
sun_shine
2015-08-28
这家伙很懒,什么也没写!
>当 rtconfig.h中的 RT_USING_FINSH 不使能时, >你添加的那个限制所在的代码,根本就不会参与编译与链接。 --- 是这样的,如果我不添加那个限制,RT_USING_FINSH 不使能,这个并不会屏蔽掉finsh,finsh还是可以正常使用。我的目的是不想使用finsh,只用console打印输出一些信息,加入那个限制之后就可以实现我想要的功能。另外这个限制对finsh的正常使用没有影响
bernard
2015-08-28
这家伙很懒,什么也没写!
用scons去处理啊。。。 如果你仅仅是在rtconfig.h中注释了,但是工程依然还是原来那个工程,finsh相关的自然会编译进去。然后components initailization只管编译到image的东西,只要image里的东西存在,它就会自动吭哧吭哧去帮你自动初始化,然后然后,finsh因为编译进去了,自然会调用、初始化。。。但是这个时候,基本上没有任何命令了,因为FINSH_*_EXPORT是空的
sun_shine
2015-08-28
这家伙很懒,什么也没写!
>用scons去处理啊。。。 > >如果你仅仅是在rtconfig.h中注释了,但是工程依然还是原来那个工程,finsh相关的自然会编译进去。然后components initailization只管编译到image的东西,只要image里的东西存在,它就会自动吭哧吭哧去帮你自动初始化,然后然后,finsh因为编译进去了,自然会调用、初始化。。。但是这个时候,基本上没有任何命令了,因为FINSH_*_EXPORT是空的 --- 确实这样需要用scons去编译一遍,谢谢你!
撰写答案
登录
注册新账号
关注者
0
被浏览
3.5k
关于作者
sun_shine
这家伙很懒,什么也没写!
提问
25
回答
49
被采纳
0
关注TA
发私信
相关问题
1
RT-THREAD shell无反应呢?
2
RT-thread2.0beta下用类似linux风格MSH,参数如何输入和导出
3
rt-thread finsh windows下的那个终端软件叫什么来着
4
板子上只有485接口,能把FINSH改造成485的么?
5
finsh最大字符问题
6
finsh命令个数是不是有限制啊
7
finsh支持转义字符吗
8
不用finsh如何知道堆栈使用量
9
强烈建议 RT-Thread下finsh原理深入分析
10
finsh输入命令全部返回null node
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
组件 lwip v2.0.3 版本使用 netdev网卡的 ping 功能
2
简单两步配置RTT源码阅读环境 vsc+clangd
3
恩智浦[FRDM-MCXN947]初探 之 ADC与DAC
4
LVGL使用字库IC芯片显示中文
5
基于STM32H750和Rt-Thread的CANFD通信实现的记录(一)
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
线程
RT-Thread Nano
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
UART
WIZnet_W5500
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
编译报错
Debug
SFUD
msh
rt_mq_消息队列_msg_queue
keil_MDK
ulog
MicroPython
C++_cpp
本月问答贡献
出出啊
1517
个答案
342
次被采纳
小小李sunny
1443
个答案
289
次被采纳
张世争
807
个答案
174
次被采纳
crystal266
547
个答案
161
次被采纳
whj467467222
1222
个答案
148
次被采纳
本月文章贡献
出出啊
1
篇文章
4
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
1
次点赞
crystal266
2
篇文章
2
次点赞
whj467467222
2
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部