rt-thread3.1.3的qemu-vexpress-a9使用modbus client的问题

2019-11-9 12:28 [复制链接] 5 207

1金钱
把rt-thread3.1.3所带的bsp\qemu-vexpress-a9配置为modbus client,编译出错:
( z% N  E% _" V1 q  K+ ]1 f1 ^" |$ scons
* U0 q, ~# \/ U1 z( U+ O. d1 i4 ~) ^scons: Reading SConscript files ...
8 G# u! i+ Z* q8 j" cscons: done reading SConscript files.
+ A2 X: m% [8 @, o: Escons: Building targets ...
8 A5 w! {% M5 m( m! ^9 g) pscons: building associated VariantDir targets: build7 b) N+ _; I& C1 F
CC build\kernel\components\net\freemodbus\port\portserial.o0 D0 Y( {/ `8 W
D:\ppprj\rt-thread-cubemx\rt-thread3.1.3\components\net\freemodbus\port\portserial.c: In function 'vMBPortClose':
; x! Q  K3 Y2 s' P$ p6 ZD:\ppprj\rt-thread-cubemx\rt-thread3.1.3\components\net\freemodbus\port\portserial.c:159:19: error: 'struct rt_device' has no member named 'close'* I3 k1 r9 u4 ~" i/ F2 [  @
     serial->parent.close(&(serial->parent));3 b, R* f. A) R+ x4 k& |& N; A
                   ^
" {* G8 E+ Y3 o* SD:\ppprj\rt-thread-cubemx\rt-thread3.1.3\components\net\freemodbus\port\portserial.c: In function 'xMBPortSerialPutByte':
: ~$ J: p/ I( I! RD:\ppprj\rt-thread-cubemx\rt-thread3.1.3\components\net\freemodbus\port\portserial.c:164:19: error: 'struct rt_device' has no member named 'write'
: l: w! h( F! D     serial->parent.write(&(serial->parent), 0, &ucByte, 1);
/ t) b% F4 X( K  p# z" L: |                   ^
* v  J6 k' E) I+ tD:\ppprj\rt-thread-cubemx\rt-thread3.1.3\components\net\freemodbus\port\portserial.c: In function 'xMBPortSerialGetByte':1 j0 ?/ Y$ ~2 a, \. u: F" L
D:\ppprj\rt-thread-cubemx\rt-thread3.1.3\components\net\freemodbus\port\portserial.c:170:19: error: 'struct rt_device' has no member named 'read'
. x4 O1 k4 `& c% |     serial->parent.read(&(serial->parent), 0, pucByte, 1);
* W" [  q8 F2 l8 m, \                   ^
. h# b5 D, S/ H! escons: *** [build\kernel\components\net\freemodbus\port\portserial.o] Error 13 U# e7 M, _/ ^, S! p
scons: building terminated because of errors.
/ w1 s# B( f. f! s$ H% p  x4 v. [1 f3 Y, C% _/ w8 ]

使用道具 举报 显示全部楼层 回复
最新评论 | 正序浏览
显示全部楼层 |楼层直达:
发表于 2019-11-9 13:25:23 | 显示全部楼层
serial->parent.read(
+ H: q( E8 ~, o
建议修改为  rt_device_read
使用道具 举报 回复
发表于 2019-11-9 14:20:49 | 显示全部楼层
这样不是把modbus这个软件包给改了?其他的bsp用modbus的时候怎么办?
使用道具 举报 回复
发表于 2019-11-9 14:26:13 | 显示全部楼层
本帖最后由 xddl00 于 2019-11-9 14:32 编辑 3 z6 a4 A9 ^' r4 a
. S4 }0 v! d" {
void vMBPortClose(void)1 Z) O' Z4 T7 B( A6 A
{
- t5 k) b6 t! U0 ]; M6 z) m    rt_device_close(&(serial->parent));* K3 B6 }  j9 M& W
}
( X# N8 Y, q% k" t, G( _" h4 Z0 \# J  y# H) g) r' _
BOOL xMBPortSerialPutByte(CHAR ucByte)
" J! P, L, W5 _# i{
* @) C) N. ?$ Z5 i8 B& u3 N7 X! ^    rt_device_write(&(serial->parent), 0, &ucByte, 1);
: f. d+ N# k, C# |' b: n. h    return TRUE;
) F' I! Y( A6 M$ z# j4 w' f+ k: e}9 C! l% F! G6 v( @6 h, D
4 |  j- Q9 h! i! {; m
BOOL xMBPortSerialGetByte(CHAR * pucByte)
9 v5 [6 K4 c& W% t/ g9 ?+ `) z{
( E6 p  P" I, B# U: S    rt_device_read(&(serial->parent), 0, pucByte, 1);0 g+ ]  V* n1 o& k' U
    return TRUE;
5 H7 t2 _6 Y6 B4 C4 i: A4 |}
. Z  Y* `# t% C* k8 @0 C
使用道具 举报 回复
发表于 2019-11-11 08:35:40 | 显示全部楼层
xddl00 发表于 2019-11-9 14:203 c; j2 P! J7 I2 {% f! R
这样不是把modbus这个软件包给改了?其他的bsp用modbus的时候怎么办?
1 C2 D* |' ~9 n" U( h" J3 [( ^3 W
一般不建议直接去操作数据结构中的成员变量的,能够用函数接口就用函数接口。6 K: o4 |& d1 ^9 \3 P3 o

* {/ o+ t# |# M( r: q" F: ]确实需要这样修改,可以到对应的软件包上发PR
使用道具 举报 回复
发表于 2019-11-11 09:02:13 | 显示全部楼层
虽然改了 rt_device_read后可以编译,但是运行后,modbus报超时,说明没通上,而且shell好像也没反应了。看来qemu-vexpress-a9只是网络调的比较好,其他的,暂时还不行
使用道具 举报 回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  1. 5 主题
  2. 157 帖子
  3. 157 积分

Ta的主页 发消息

Archiver|手机版|小黑屋|RT-Thread开发者社区 ( 沪ICP备13014002号-1

有害信息举报电话:021-31165890 手机:18930558079

© 2006-2019 上海睿赛德电子科技有限公司

Powered by RT-Thread

快速回复 返回顶部 返回列表