将Ethercat主站IGH移植到vxworks平台

继续前面的<将Ethercat主站IGH移植到Linux应用层>,将IGH主站移植到vxworks

平台说明:

         测试电脑  cpu  i3-2100, 4g ddr3, 128G固态硬盘

          vxworks6.9.0(来源你懂的,不建议升级)

         从站xm4800官方开发板,程序是FreeECAT-master

         执行命令是igh_main

系统启动操作: 

固态硬盘划分2g空间,格式是fat32

用Win32DiskImager.exe写win98j.IMG到  一个启动U盘

 U盘启动,按照网上文章格式化2g空间

将bootrom.sys, vxload.com, vxsys.com放入2g空间

按照网上文章将bootrom写入固态硬盘,

需要的一些文件如下

https://download.csdn.net/download/huoxian00/12540112   

网上文章

https://wenku.baidu.com/view/fdf08ba402d276a200292eed.html         

注意我的bootrom是FTP启动,  建议FTP服务器用Serv-U,网卡支持intel82573

 

 

 

 

修改说明:

        1.vxworks采用C98的gcc标准,所以不能采用//注释方式,必须是/**/的方式

        2.include目录下的头文件需要放到WindRiver\vxworks-6.9\target\h

        3.要在Kernel Configuration支持pthread库

   4.以太网帧的发送要用mux层

5.定时器并不准确,要用tick来统计时间,x86平台可以手动将tick设置成1000,1ms一个tick。

6.高精度的实时线程必须用辅助时钟中断触发

   unsigned int auxClkTestCnt=0;
   void timerTestIsr(void)
   {
      auxClkTestCnt++;
   }

    auxClkTestCnt=0;
    vxbAuxClkConnect(timerTestIsr,0);

    vxbAuxClkDisable();
    vxbAuxClkRateSet(1000);
    vxbAuxClkEnable();
    taskDelay(sysClkRateGet());
    vxbAuxClkDisable();
    printf("Tick count is 1000,auxClkTestCnt=%d\n",auxClkTestCnt);

 

 

结论:

未完待续,实时线程的抖动有些大,还需要进行优化,但是ethercat功能已经可以正常运行了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值