GD32E230C8T6移植FreeModbus分详细步骤(stm32类芯片也可以参考,查看FreeModbus空间占用,暂只以编译通过结束)

1、下载FreeModbus源码,地址  https://github.com/cwalter-at/freemodbus

2、压缩包解压后,只用到modbus文件夹和demo/BARE文件夹

3、准备一个GD32最简易工程,我准备的工程编译后空间占用:

Program Size: Code=2332 RO-data=236 RW-data=4 ZI-data=1036

4、将2中提到的两个文件夹,复制到GD32工程下

5、在GD32工程中,通过Keilv5的Manage Project Items,在Groups中建立两个目录,分别为FreeModbus和FreeModbus/Port,将复制过来的文件夹中的文件,分别分配到上面两个目录中。

6、在Options for Target的C/C++中,把两个文件夹中带.h文件的目录,设置到Include Paths中,不确定设置哪个,可以去文件夹中看一下都是哪个文件夹有.h文件。

7、编译,会发现有2个错误(我这边是出现了2个,别人可能不同)。

Symbol __ARM_use_no_argv multiply defined(by demo.o and main.o),这个错误是自己原来工程的main函数和FreeModbus中的demo.c里main函数冲突,所以需要暂时屏蔽一个。

屏蔽后编译,又出现一个错误

Undefined symbol __aeabi_assert(referred from mbrtu.o)

是因为原GD32工程使用的是MicroLIB库,里面未包含__aeabi_assert这个函数,所以在Options for Target的Target中,将Use MicroLIB前面的√去掉。

重新编译,通过。

此时,空间占用情况为:

Program Size: Code=5140 RO-data=992 RW-data=132 ZI-data=2524  

对比可以粗略知道,FreeModbus未改变默认配置时的空间占用情况。

未完待续!截至此行还不能真正跑起来……哈哈哈

  • 8
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值