1
0
Fork 0
Commit graph

25 commits

Author SHA1 Message Date
Olivier Desenfans
ecaa660b9d Revert "Single project-wide header for driver functions"
This reverts commit 07c61316b3.

Will start from beginning. Try to keep git history.
2020-01-14 16:31:32 +01:00
Janez
9c2f0a1c64 License changed to Apache 2.0 - main part 2020-01-08 14:52:56 +01:00
Olivier Desenfans
07c61316b3 Single project-wide header for driver functions
Created a single header file (`CO_driver.h`) to declare the functions
of the drivers API. This forces drivers to use a common API.

Previously, each driver declared these functions in its specific
`CO_driver.h` file. This causes two issues:
1. while these functions are used in target-independent code,
   the declarations could be target specific, leading to API/ABI
   compatibility issues.
2. the declarations were duplicated for each driver.

The `CO_driver.h` files for each driver were renamed to
`CO_driver_target.h`. This file is included from `CO_driver.h`.

Added a new header for types: `CO_types.h`. This file currently
holds the definition of `CO_ReturnError_t` that was previously
duplicated for all drivers. Added a few enum values to support
the `neuberger-socketCAN` code.
2019-11-13 13:28:21 +01:00
Martin Wagner
10cf9a30b0
Merge pull request #116 from odesenfans/can-base-address-void-ptr
Use a void pointer for the CAN device address
2019-11-13 08:54:34 +01:00
Olivier Desenfans
02fd8ee9da Renaming CANdevicePtr to CANdriverState 2019-11-13 08:34:42 +01:00
Olivier Desenfans
c7349b9dde Sync: fix cast to integer of different size
Cast the pointer to `uintptr_t` instead of `int` in the implementations
of `IS_CANrxNew`.
2019-11-11 16:34:09 +01:00
Olivier Desenfans
e7d9652658 Use a void pointer for the CAN device address
Previously, the address of the CAN device (`CANbaseAddress`)
was specified as a signed or unsigned integer of variable size.
This made the ABI specific for each driver and is not generic
enough for some use cases.

Replaced all usages by using a void pointer instead.
Renamed `CANbaseAddress` to `CANdevicePtr`.
Refactored the code where it needed to be (some comparisons to -1).

Use a pointer to a user-defined variable/structure instead of
a 32-bit integer for CANbaseAddress. Renamed CANbaseAddress
to CANbaseStruct to reflect that change in behavior.

This is more modular and avoids casts.
2019-11-10 13:14:53 +01:00
Martin Wagner
6307931275 fix missing semicolon 2017-09-01 14:00:11 +02:00
Martin Wagner
2439d1abf3 Added memory barrier to all objects 2017-09-01 13:45:34 +02:00
Martin Wagner
03982ad8e3 First try on LSS slave addon...
- needs #define CO_NO_LSS_SERVER 1 in CO_OD.h. This will need a change in the OD editor.
- no Fastscan support yet
- bitrate setting API untested
- https://github.com/CANopenNode/CANopenNode/issues/46 (driver stuff)
- changed some of the other stack files, tried my best to remain compatible with standard non LSS CANopenNode
2017-06-26 13:04:02 +02:00
Martin Wagner
f023106e5a Added guards for c++ compilation 2017-05-10 15:30:25 +02:00
Janez
6f2ffda7ba Updated comment in drvTemplate 2016-02-03 11:22:58 +01:00
Janez
e6db254c63 Added CO->CANmodule[x]->CANnormal to all drivers. example/main.c updated. 2016-01-12 13:48:16 +01:00
Janez
41b8d903b7 License changed to the GNU General Public License version 2 with the classpath exception. 2016-01-10 00:15:50 +01:00
JanezXD
b716643845 timerNext_ms returned from CO_process() and others. 2015-09-04 18:31:21 +02:00
JanezXD
bbc165c218 First run of socketCan. 2015-08-29 01:13:54 +02:00
Janez_dw
345b37b573 Some cleanup. 2015-08-27 18:57:34 +02:00
Janez_dw
ea47ca89fb Macros "Disabling interrupts" replaced with "Critical sections" in all drivers. 2015-08-27 14:36:07 +02:00
Janez_DW
cada159e40 Test against null pointers in eeprom.c files. 2015-08-26 21:27:45 +02:00
Janez_DW
8427cbcc90 Added testing against null pointers in _init functions.
Updated CO_process_SYNC_RPDO and CO_process_TPDO in CANopen.c.
2015-08-26 15:41:21 +02:00
JanezXD
12f33a4a7b Example files moved to base directory. Added template for socketCAN drivers (based on BECK SC 243) 2015-07-30 19:58:06 +02:00
Mi
8104f87056 Successfull compilation on linux with drvTemplate 2015-07-27 01:52:03 +02:00
Janez_D
ddbabdae42 Specifiers CO_bool_t, CO_true and CO_false replaced with bool_t, true and false. 2015-07-26 19:15:21 +02:00
Janez_D
b50cb5e8b3 Cleanup in comments (no code changed).
Add and update multiple readme.txt
Remove SVN IDs.
2015-07-25 17:36:46 +02:00
Janez_D
d270c2d09a Move and rename files. No file change. 2015-07-25 14:03:15 +02:00