嵌入式技术william hill官网
直播中

贾埃罗

7年用户 1634经验值
私信 关注
[问答]

如何在Shell里执行函数

第一次使用FinSH,感觉很好用,就是不知道如何在Shell里执行函数。

比如example里面的tcpclient函数,如何调用呢?



回帖(4)

建立建利12

2022-4-7 11:36:37
和C一样

1. 函数名不能太长.(默认好像16个字符)
2. 使用前需要向fisnh里面注册.
3. 需要让链接器不要自动删除已经向finsh注册的函数
举报

贾埃罗

2022-4-7 11:36:50
1,2是编写代码的时候要做的吧。
3是不是也是编码的时候指定的?

我现在想调用trunkexamples
etwork下的tcpclient.c中的tcpclient函数,该如何做呢?
请参考我的图片,我那样调用不行,请教该如何在输入才对?
finsh>>tcpclient(??? ??)
举报

建立建利12

2022-4-7 11:37:47
#ifdef RT_USING_FINSH

#include

/* 输出tcpclient函数到finsh shell中 */

FINSH_FUNCTION_EXPORT(tcpclient, startup tcp client);

#endif

1.2代码里面都已经做了.

但你输入list()并没有显示出此函数:

1.保证此文件参与编译

2.也就是第3点. MDK里面是需要在linker参数里面加入

--keep __fsym_* --keep __vsym_*
举报

贾埃罗

2022-4-7 11:38:13
原来要这样设置连接器.明白了.Thx
举报

更多回帖

发帖
×
20
完善资料,
赚取积分