Releases: jgressmann/supercan
SuperCAN v1.0.22
Firmware v0.5.13
bugfixes
- D5035-05:
- fix for hardware errata 2.15.1 (H)
- queue TX frames on software fifo even if the hardware fifo isn't full to preserve transmission order if software fifo isn't empty
SuperCAN v1.0.21
SuperCAN v1.0.20
Firmware v0.5.11
features
- add support for D5035-05 (STM32G0B1)
Windows
COM server 0.6.1
features
- improve handling of 'device gone'
- report device gone on memory mapped ring buffer (field flags)
- handle device instance started / gone events (configuration manager)
- add support for device re-discovery
DLL 0.5.1
features
- add support for detecting device gone errors (SC_DLL_ERROR_DEV_GONE)
SuperCAN v1.0.19
SuperCAN v1.0.18
Firmware v0.5.10
features
-
add support for STM32F3DISOVERY board
-
add support for dummy board
- 1 CAN, no CAN frame reception, fake CAN frame transmission
- this board gets built it the BOARD isn't recognized
-
add support for Longan CANBED M4
This work is based on the work of MikeEmbedded, c.f. #12
bugfixes
- firmware doc: fix flash offset for D5035-01
SuperDFU
0.6.2
bugfixes
-
fix handling of sam_crc32 error code
Upon failure of the CRC computation return the proper error code
int dfu_app_tag_validate_{tag,app}. -
sam_crc32: fix computations for SAMD21 rev. A-D
Linux
- fix null pointer deref on netdev cleanup
SuperCAN v1.0.17
Firmware v0.5.9
bugfixes
-
SAME5X boards: fixes M_CAN error handling
M_CAN reports errors through PSR.LEC and PSR.DLEC. Reading each
field will result the field to be cleared to 0x7 (no change).The previous code interpreted 0x7 to mean that the last proper
error (0x1-0x6) is still valid. This, however, seems to not be the
case according to the M_CAN manual v3.3.0, p. 18.
misc
- refactoring to support D5035-51 in SuperDFU
- remove 'manifest tolerant' RT USB descriptor attributes
- convert firmware builds to SuperDFU 0.6.1
SuperDFU v0.6.1
features
-
add support for D5035-51 board
-
reduce bootloader ROM requirements to below 8K
-
enable LTO
-
disable ARM long calls
-
disable TinyUSB's SOF callback though CFG_TUSB_SOF_CALLBACK (default 1)
-
disable sone of TinyUSB's callbacks through CFG_TUSB_LEAN_AND_MEAN (default 0)
-
replace header / footer construct with tag (saves 1k ROM on SAMX5X)
scan binary for tag end, and use binutils to compute length of the rom section -
replace memcpy, memmove, strlen, memcmp with size optimized version
-
-
adds version check to prevent downgrade
misc
- remove 'manifest tolerant' DFU USB descriptor attributes
- remove dual-bank support for SAMX5X to share code base with SAMs w/o dual bank support (SAMD2X, SAMDA1)
SuperCAN v1.0.16
Firmware v0.5.7
bugfixes
- reject bit timing configurations with BRP<1
- fixes usb task livelock
- SAM E5x:
- fix CAN-FD with BRS at arb. bitrate
- fixes issue with data bitrate initialization
- prevent division by zero when computing bit rate
misc
- API refactoring: rename
sc_board_can_place_msgs
tosc_board_can_retrieve
- D5035-01: change bus off status indication to lit red LED
Linux
- enable dkms' AUTOINSTALL feature
Test Harness
- fix test abort on error-passive, bus-off recovery tests
- tighten requirements for bus-off recovery (full message complement)
- add test run for 0.5/0.5 MBit/s bit rate
Miscellaneous
- can_bit_timing.c: fixes bad assert
- doc:
- fix path to DFU firmware file
- add firmware flash / update instructions to archive
SuperCAN v1.0.15
test harness
- add tests to ensure test device time stamps aren't all zero
Windows
- increase compiler warnings to level 4 for all projects
- add troubleshooting guide document
DLL 0.5.0
bugfixes
-
fixes race condition in sc_can_stream_uninit
The race condition occurred because sc_can_stream_uninit (and others)
would cancel but not wait on the completion of pending I/O. There
was a small window in which the I/O would complete after the buffer it
was using had already been freed. -
fixes various hangs related to device failure
features
-
adds sc_version to retrieve the library version
-
adds support for logging on library and on device level
-
adds support for external rx wait loop
A user may want to wait on more than one handle in addition to
the USB wait handle. Instead of letting the user pass in any number
of handles, enable retrieval of the next USB wait handle.This way the user is in control, the library avoids handle copying
and the library internal logic is much simpler.The API call is sc_can_stream_rx_next_wait_handle(stream, [out] handle)
-
adds optimized CAN stream processing function
sc_can_stream_rx_process_signaled_wait_handle relies on the caller
to check if the wait handle is in fact signaled.
See demo application for use.
COM server 0.6.0
bugfixes
- CSuperCAN: add missing member initialization
- ScDev:
-
fixes member initialization
-
fixes hang in RX thread:
This change protects the server against a failed device. The server
will now be able to shut down properly despite of the device
malfunctioning. -
make SetBus return an error on access failure
-
- XSuperCAN: adds lock to protect singleton against concurrent access
features
- interface (IDL) extensions (backward compatible)
-
adds interface ISuperCAN2 to support
- retrieving the COM server version
- setting COM server log level
-
adds interface ISuperCANDevice2 to add support setting the device log level
Server / DLL level Log messages are delivered through OutputDebugString.
Device level log messages are delivered through the ring buffer.
-
See demo application for use.
misc
- Release builds: enable intrinsic functions
demo app 1.5.8
-
fixes error message
-
add support for logging
Pass --debug-log-level INT to set the log level.
Note that the app will work with older COM servers, but not with older versions of the DLL.
v1.0.14
SuperCAN v1.0.14
Windows
- adds commit hash to binaries
- adds debug symbols to archive, installer
SuperCAN firmware 0.5.6
- adds support for Adafruit Feather M4 CAN Express
v1.0.13
SuperCAN v1.0.13
Windows
COM server v0.5.4
- sync COM device add/remove to rx/tx threads
demo app v1.5.5:
- single: add support for CAN frame echo on TXR
- both: add support for bursting frames --tx count=4