SOEM EtherCAT Master library for STM Nucleo F767ZI
Dependents: EasyCAT_LAB_simple EasyCAT_LAB_very_simple EasyCAT_LAB
- This repository contains the SOEM (Simple Open EtherCAT® Master) library by rt-labs, that has been ported in the ecosystem by AB&T Tecnologie Informatiche.
- It has been developed for the EasyCAT LAB , a complete educational and experimental EtherCAT® system, composed of one master and two slaves .
- The EasyCAT LAB is provided as a kit by AB&T Tecnologie Informatiche, to allow everybody to have an educational EtherCAT® system up and running in a matter of minutes.
Warning
- Currently only the Nucleo STM32F767ZI board is supported.
osal/osal.h@0:543d6784d4cc, 2019-06-11 (annotated)
- Committer:
- EasyCAT
- Date:
- Tue Jun 11 10:29:09 2019 +0000
- Revision:
- 0:543d6784d4cc
SOEM EtherCAT Master Library for STM Nucleo F767ZI
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
EasyCAT | 0:543d6784d4cc | 1 | /* |
EasyCAT | 0:543d6784d4cc | 2 | * Licensed under the GNU General Public License version 2 with exceptions. See |
EasyCAT | 0:543d6784d4cc | 3 | * LICENSE file in the project root for full license information |
EasyCAT | 0:543d6784d4cc | 4 | */ |
EasyCAT | 0:543d6784d4cc | 5 | |
EasyCAT | 0:543d6784d4cc | 6 | #ifndef _osal_ |
EasyCAT | 0:543d6784d4cc | 7 | #define _osal_ |
EasyCAT | 0:543d6784d4cc | 8 | |
EasyCAT | 0:543d6784d4cc | 9 | |
EasyCAT | 0:543d6784d4cc | 10 | #ifdef __cplusplus |
EasyCAT | 0:543d6784d4cc | 11 | extern "C" |
EasyCAT | 0:543d6784d4cc | 12 | { |
EasyCAT | 0:543d6784d4cc | 13 | #endif |
EasyCAT | 0:543d6784d4cc | 14 | |
EasyCAT | 0:543d6784d4cc | 15 | #include "osal_defs.h" |
EasyCAT | 0:543d6784d4cc | 16 | #include <stdint.h> |
EasyCAT | 0:543d6784d4cc | 17 | |
EasyCAT | 0:543d6784d4cc | 18 | /* General types */ |
EasyCAT | 0:543d6784d4cc | 19 | #define TRUE 1 |
EasyCAT | 0:543d6784d4cc | 20 | #define FALSE 0 |
EasyCAT | 0:543d6784d4cc | 21 | |
EasyCAT | 0:543d6784d4cc | 22 | #define boolean uint8_t |
EasyCAT | 0:543d6784d4cc | 23 | |
EasyCAT | 0:543d6784d4cc | 24 | #define uint8 uint8_t |
EasyCAT | 0:543d6784d4cc | 25 | #define uint16 uint16_t |
EasyCAT | 0:543d6784d4cc | 26 | #define uint32 uint32_t |
EasyCAT | 0:543d6784d4cc | 27 | #define uint64 uint64_t |
EasyCAT | 0:543d6784d4cc | 28 | #define int8 int8_t |
EasyCAT | 0:543d6784d4cc | 29 | #define int16 int16_t |
EasyCAT | 0:543d6784d4cc | 30 | #define int32 int32_t |
EasyCAT | 0:543d6784d4cc | 31 | #define int64 int64_t |
EasyCAT | 0:543d6784d4cc | 32 | |
EasyCAT | 0:543d6784d4cc | 33 | |
EasyCAT | 0:543d6784d4cc | 34 | |
EasyCAT | 0:543d6784d4cc | 35 | typedef struct |
EasyCAT | 0:543d6784d4cc | 36 | { |
EasyCAT | 0:543d6784d4cc | 37 | uint32 sec; //< Seconds elapsed since the Epoch (Jan 1, 1970) |
EasyCAT | 0:543d6784d4cc | 38 | uint32 usec; //< Microseconds elapsed since last second boundary |
EasyCAT | 0:543d6784d4cc | 39 | } ec_timet; |
EasyCAT | 0:543d6784d4cc | 40 | |
EasyCAT | 0:543d6784d4cc | 41 | |
EasyCAT | 0:543d6784d4cc | 42 | typedef struct osal_timer |
EasyCAT | 0:543d6784d4cc | 43 | { |
EasyCAT | 0:543d6784d4cc | 44 | ec_timet stop_time; |
EasyCAT | 0:543d6784d4cc | 45 | } osal_timert; |
EasyCAT | 0:543d6784d4cc | 46 | |
EasyCAT | 0:543d6784d4cc | 47 | void osal_timer_start(osal_timert * self, uint32 timeout_us); |
EasyCAT | 0:543d6784d4cc | 48 | boolean osal_timer_is_expired(osal_timert * self); |
EasyCAT | 0:543d6784d4cc | 49 | int osal_usleep(uint32 usec); |
EasyCAT | 0:543d6784d4cc | 50 | ec_timet osal_current_time(void); |
EasyCAT | 0:543d6784d4cc | 51 | |
EasyCAT | 0:543d6784d4cc | 52 | #ifdef __cplusplus |
EasyCAT | 0:543d6784d4cc | 53 | } |
EasyCAT | 0:543d6784d4cc | 54 | #endif |
EasyCAT | 0:543d6784d4cc | 55 | |
EasyCAT | 0:543d6784d4cc | 56 | #endif |
EasyCAT | 0:543d6784d4cc | 57 |