Skip to content

Releases: jgressmann/supercan

SuperCAN v1.0.22

01 Jun 16:03
Compare
Choose a tag to compare

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

15 Oct 16:57
Compare
Choose a tag to compare

Firmware v0.5.12

features

SuperCAN v1.0.20

07 May 14:17
Compare
Choose a tag to compare

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

12 Apr 15:48
Compare
Choose a tag to compare

Firmware v0.5.11

features

  • adds support for STM32G0B1XX based D5035-05

SuperCAN v1.0.18

28 Jan 16:58
Compare
Choose a tag to compare

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

02 Jul 07:12
Compare
Choose a tag to compare

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

04 Jun 08:05
Compare
Choose a tag to compare

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 to sc_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

05 Apr 17:28
Compare
Choose a tag to compare

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

20 Mar 05:46
Compare
Choose a tag to compare

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

16 Feb 20:05
Compare
Choose a tag to compare

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