Dynamic C 10.72C Released

Started by "Tom...@tomlogic.com [rabbit-semi]" October 20, 2017
FYI, Digi released an installer for Dynamic C 10.72C. Download from the Dynamic C 10 product page at https://www.digi.com/support/productdetail?pidI78

Here are details from the Release Notes:

VERSION 10.72C - August 31, 2017

This release adds support for SDHC media (4GB to 32GB cards) now that
SD cards are difficult to find, a keypad/display unit that only worked
with Dynamic C 9, and a new member of the RCM4300 series, the RCM4320.

TLS clients now send a Server Name Indication (SNI), required when
a single IP address hosts multiple certificates based on hostname.
They now also parse the subjectAltName field from X.509 certificates
and use it for hostname validation.

WARNING: If using I2C with Dynamic C 10.72B on Rabbit 6000, you must
update your calls to I2CRead() and I2CWrite() to pass the slave address
in bits 1-7 instead of bits 0-6 of the first parameter. This release
restores compatibility with software-based I2C from Dynamic C 10.72A
and earlier. In addition, the APIs for I2C_ReadFromSlave() and
I2C_WriteToSlave() now include an index parameter so I2C_ReadFromSlave()
can send a START, SLAVE_WRITE, INDEX, START, SLAVE_READ sequence for
efficient reads. Use the new CC_REV compiler macro to conditionally
compile code so it can work with new and old APIs.

NEW FEATURES

- Adds support for RCM4320 variant -- an RCM4310 with 1MB of SRAM
for firmware (instead of 512KB) and a 4MB serial flash for storage
(instead of 1MB).
- Updated sdflash.lib to support SDHC cards from 4GB to 32GB. Note
that Dynamic C still does not support FAT32. When using SDHC cards
you must format them on the Rabbit with up to four FAT16 partitions,
but you can still read and write them on Mac/Windows/Linux.
Email J...@digi.com if interested in FAT32 support in Dynamic C.
- Updated FAT16.lib to work on SDHC cards (larger than 2GB).
- Updated TLS to send Server Name Indication (SNI) in ClientHello.
Includes updates to HTTP, SMTP and POP3 client libraries.
- Updated X.509 certificate handling to process subjectAltName
extension, allowing for improved hostname matching in TLS client
connections.
- Defined a CC_REV macro as 'C' for use in compiler version checks.
- Added RCM6xxx support for Panel-Mount Keypad/Display Unit (Digi part
number 20-101-0502).

BUG FIXES

- Addresses compiler errors with I2C_HW.LIB for Rabbit 6000 boards.
- HTTP client now sends correct Content-Type on non-blocking PUT/POST.
- Moved duplicated MODBUS_CRC() from modbus_{master,slave}.lib to
CRC16.LIB.
- Updated FTP server samples to work with default FileZilla FTP client
settings.
- DC-295: Get_Stack_Size() returns correct size instead of smallest
stack size.
- DC-304: After DHCP fallback, further DHCP discovery would fail.
- DC-310: Revert commit that incorrectly processed slave address in
I2CRead() and I2CWrite() calls on Rabbit 6000 hardware with DC 10.72B.
- DC-317: Correctly set interrupt level when RS232_INT_LEVEL != 1.
- DC-322: Don't hard-code keysize in AES{en,de}cryptStream_CBC()
and _CBC_XMEM() functions. Now works correctly for AES-192/256.
- DC-332: Fix Rabbit 6000 link recovery, broken in pre-release 10.72C.
- DC-334: Ignore non-fatal "warning" TLS alerts intead of aborting
connection.
- GITHUB-13: Fix return value of _n_strcpy().
- GITHUB-14: Fix bug in httpc_skip_headers() for non-blocking
connections.
- RCM-143: Only call dhcp_tick() if interface is up.
- RCM-143: When Ethernet powered down, link status should always be
"down" (changed for Rabbit 6000 and ASIX-based hardware).

OTHER FUNCTIONAL CHANGES

- Disabled incomplete I2C slave mode for Rabbit 6000 hardware.
- Please note that while all Rabbit MAC addresses have previously
used an OUI (manufacturer code) of 00:90:C2, future products may
ship with an alternate OUI. Please be proactive and replace any
code that requires that byte sequence.
- Added "Known Issue" about compiler errors/warnings in files that
exceed 32,767 lines.
-Tom