你的位置:首页 > 软件开发 > 操作系统 > 在LwIP 协议栈移植 Snap 7

在LwIP 协议栈移植 Snap 7

发布时间:2017-12-02 02:00:11
本文欢迎引用,转载。引用,转载请标明出处!调试完毕源码将上传到GitHub为了嵌入式系统与STEP 7 PLC 通过S7 协议通讯,尝试移植 Snap 7 到STM32F407 cpu 上。今天基本编译通过,尚未通电调试。核心技术要点,及方案如下1。测试系统构建(待续)2。代码修 ...

在LwIP 协议栈移植 Snap 7

本文欢迎引用,转载。

引用,转载请标明出处!

调试完毕源码将上传到GitHub

为了嵌入式系统与STEP 7 PLC 通过S7 协议通讯,尝试移植 Snap 7 到STM32F407 cpu 上。

今天基本编译通过,尚未通电调试。

核心技术要点,及方案如下

1。测试系统构建(待续)

在LwIP 协议栈移植 Snap 7

2。代码修改

A.修改文件snap_msgsock.cpp 开始部分,为以下内容

#include <stdint.h>#include "lwip/sockets.h"#include "snap_msgsock.h"#include <string.h>

B.修改文件snap_sysutils.cpp为以下内容,重点是对 timeGetTime() 的支持

#include "snap_sysutils.h"#include "stm32f4xx_hal.h"#ifdef OS_OSXint clock_gettime(int clk_id, struct timespec* t) { struct timeval now; int rv = gettimeofday(&now, NULL); if (rv) return rv; t->tv_sec = now.tv_sec; t->tv_nsec = now.tv_usec * 1000; return 0;}#endif//---------------------------------------------------------------------------longword SysGetTick(){#ifdef OS_WINDOWS return timeGetTime(); #else   #ifdef STM32F407xx   return  HAL_GetTick();    #else  struct timespec ts;  clock_gettime(CLOCK_MONOTONIC, &ts);  return (longword) (ts.tv_sec * 1000) + (ts.tv_nsec / 1000000);  #endif #endif }//---------------------------------------------------------------------------void SysSleep(longword Delay_ms){#ifdef OS_WINDOWS Sleep(Delay_ms); #else  #ifdef STM32F407xx  HAL_Delay(Delay_ms);  #else struct timespec ts; ts.tv_sec = (time_t)(Delay_ms / 1000); ts.tv_nsec =(long)((Delay_ms - ts.tv_sec) * 1000000); nanosleep(&ts, (struct timespec *)0);  #endif #endif}

 未完,待续

原标题:在LwIP 协议栈移植 Snap 7

关键词:ip

ip
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。