ARM板Ubuntu平台上编译CANFestival的方法

以调试的CANopen I/O模块为例进行说明。

根据对象字典中定义的输入输出变量DI1DI2DO1DO2PDO同步传输数据如下:

void TestMaster_post_sync(CO_Data* d)

{

DO1++;//  8位数字输出端口

DO2++;// 8位数字输出端口

eprintf("MicroMod Digital In: %2.2x\n",DI1);//DI1表示低8位数字输入端口

eprintf("MicroMod Digital In: %2.2x\n",DI2);//DI2表示高8位数字输入端口

}

DO1表示低8位数字输出端口值,unsigned char类型。

DO2表示高8位数字输出端口值,unsigned char类型。

DI1表示低8位数字输入端口,unsigned char类型。

DI2表示高8位数字输入端口,unsigned char类型。

DI1DI2会打印到串口终端上。

4.2.3编译调试结果分析

程序修改完成,保存退出。基于RSB-4210 ARM开发板上Ubuntu14.02的系统,编译调试的过程如下:

1) 把SD卡插在电脑上,在Ubuntu终端窗口上切换到CanFestival-3-7740ac6fdedc目录下,将修改好的canfestival源代码工程(can_new.tar.gz)压缩打包,并拷贝到SD卡上,拷贝完成后取出SD卡插入ARM板;

2) 打开串口工具,在ARMrivo下启动系统后,输入sudo su(密码是:rivo),切换到root用户下运行;

3) 输入fdisk –l命令,查看存储分区情况,如下图所示:


4)  输入cd / 命令,切换到根目录下。再输入mount –t vfat /dev/mmcblk0p1 mnt命令,将SD卡的文件系统挂载到mnt(一个空目录)下,现在我们就可以在mnt目录下看见SD卡的文件系统了;

5) 输入cp can_new.tar.gz ~/命令,将canfestival源代码工程(can_new.tar.gz)拷贝到Ubuntu系统根目录下,这样下次上电重启后就不用重新挂载了。

6) 输入cd 命令,查看该目录下的can_new.tar.gz文件;

7) 输入tar xzmvf can_new.tar.gz命令,解压出文件夹CanFestival-3-7740ac6fdedc;

8) 输入ip link set can0 type can bitrate 500000 命令,设置通信波特率为500K

   设置波特率之前先关闭can0口,运行ifconfig can0 down,再运行ip link set can0 type can bitrate 500000 命令,再打开can0口,运行ifconfig can0 up 打开can0口。

9) 切换到CanFestival-3-7740ac6fdedc目录下,输入命令 ./configure --cc=arm-linux-gnueabihf-gcc --arch=arm --os=unix --kerneldir=/usr/src/linux-3.5.7  --prefix=$PWD/myinstall  --target=unix  --can=socket  --timers=unix --debug=WAR,MSG 来配置编译工具、编译条件和环境等;

10) 输入make clean命令,删除原有的所有编译过的残余文件,只剩下源代码;

11) 输入make all命令,选择满足配置条件的文件全部编译;

12) 输入 make install命令,将编译好的文件放在myinstall文件目录下;

13) 输入cd ~/myinstall/bin 命令,切换到bin目录下;

14) 输入./TestMasterMicroMod –h 命令,查看执行该文件的格式如下图所示:


15) 根据提示,输入./TestMasterMicroMod -l ../lib/libcanfestival_can_socket.so -i 0x00 -m 0 -M 500K命令,执行TestMasterMicroMod,即可看见canopen I/O模块上输出端口上数据的变化,串口工具上返回的输入端口的数据和PDOSDO通信的信息如下图所示:


输出的信息可以看出PDO数据传输时的详细信息,输入端口的返回值根据输入端口的接线情况变化而不同。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值