CanFestival win32程序调试过程记录 版本CanFestival-3-8bfe0ac00cdb

最近在调试一个伺服驱动器,支持CanOpen和EtherCAT,因最终将使用单片机或FPGA控制,Ethernet的IP核要十几万,故选择CanFestival进行移植。但进行调试时发现一些问题,记录一下,也方便看到的朋友的参考。


1、objdictgen 字典编辑器的环境要求

a) python 2.7(python3不可以)

b) wxPython 版本我使用的是“wxPython2.8-win32-unicode-2.8.12.1-py27.exe”,实测最新的wxPython不可用,不要用pip install -U wxPython安装最新版本,最新版会有如PySimpleApp 改为 App等问题,因为我不熟悉Python,所以没有动程序,直接换了老版本一切正常,有能力的朋友可以对源码进行修改。

c) Gnosis_XML已经被Gnosis_Utils包含,所以只要安装Gnosis_Utils就可以,Gnosis_Utils包在objdictgen文件夹下有,解压后,cmd或终端进入文件夹,python setup.py install_all(如敲install是只给自己安装)进行安装后即可。

d) Beremiz装不装无所谓,这是个开源PLC方案,CanFestival现在属于它的一个子项目,如果安装,在文件夹下会有一个CanFestival-3的文件夹,可以直接使用,与网上下载的源码包没什么区别。


2、提示无TestMater.c之类的问题

用objdictgen中的objdictedit.py重新编译缺失文件目录的.od文件并生成字典文件,包含一个.c和一个.h文件。字典工具我windows与ubuntu均打开过,可显示中文比较容易使用的。


3、最头大的一个问题,无法解析__nodeguardError

找了半天不知道什么问题,nodeguardError定位在lifegrd.c文件中,不知道为何找不到。后来发现要在\src\win32\CanFestival-3.def中添加_nodeguardError的定义,因为源码没用extern,而是通过def文件去找,尴尬的是不知道为什么好几个版本的源码中都有这个问题,百度搜了一圈也没找到答案,可能大神都直接移植没有用win32跑过。

CanFestival-3.def中“; lifegrd.h”部分如下:

        ; lifegrd.h
        _heartbeatError
        _post_SlaveBootup
        _post_SlaveStateChange
        _nodeguardError
        getNodeState
        heartbeatInit
        heartbeatStop
        proceedNODE_GUARD


最终生成了exe,CanFestival这个源码包真是挺折腾的,传一个修改完的包,方便朋友们使用。现在最低就是定两个币,不然就免费给大家下载了。

http://download.csdn.net/download/prius0304/10118851

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值