SHDesigns: Embedded Systems Design, Consulting and Developer Resources Page hits:

Free Libraries:

Note: SHDesigns has moved up to the Softools WinIDE C compiler.
Some of these libraries have been converted to Softools. More are coming in the future.

Dynamic C versions 7.20 through 9.25 are supported. Version 9.40 is NOT supported due to compiler and library bugs.


Libraries for the Softools WinIDE C compiler  Libraries for the Z-World Dynamic C Compiler

Debug data and STDIO output over Ethernet:

Remote network debugger, allows access to Rabbit board printf() output and examine memory and variables in real time. Allows viewing data structures and logging stdio.

More information here:

More information here:

Rabbit Board Timer B Library:

Z-World does not provide a library for the timer B of the Rabbit processors. The documentation and samples they provide do not help on how to implement your own timer routines.

This library implements a programmable timer interrupt. The library handles the timer setup and interrupts. When the desired period is reached, a user function is called. The features of the library are as follows:

  • Timer periods from every 15us to 1500 seconds.
  • User function can be in 'C' or assembly.
  • Low overhead (Library ISR is written in assembly language).
  • Easy setup, just one call to set period.
  • Timer accuracy can be determined at run time.
  • Timer can be disabled or reconfigured for a different period.
  • No assembly coding necessary.

Even if you don't use the library, it is useful as a good example on how to setup and use the timer B.

The Softools version can be downloaded here:

The ZWorld DC code can be downloaded here:

Rabbit sscanf() Library:

Seems Z-World again missed the boat. This is really a standard 'C' function, but it is missing from their libraries. This library implements the sscanf() function and a few others that are missing.

Of course, the Softools Compiler already has this (and much better stdio support.)

The DC library can be downloaded here:

Standard 'C' malloc() and free():

In embedded systems, use of malloc() and free is discouraged due to the possibility that the system may run out of memory. But sometimes it is desired, especially if porting code from another system. This library implements a simple memory manager using a block of root code space. It does not support xmem. Included is a debug feature that will report if the bounds of a block of memory are overwritten.

 Not Needed for Softools.

The DC library can be downloaded here:

Rabbit Board IP Locator:

This is an example on how to Configure the Rabbit TCP/IP stack at run time. It also provides a way to find the Rabbit Boards current IP. A PC utility will search for boards and allow the user to configure the IP, Mask and Gatway address or use DHCP.

More information can be found here:

More information can be found here:

 CoExec Multi-tasking exec for Softools and Dynamic C:

This is a simple cooperative task switcher originally written for Softools. Each task has its own stack, allows some preemption. Fast task switching. Also supports far task stacks to save root code space.

Dynamic C costates/cofunctions have proven unreliable in recent compilers. To get around these problems, CoExec was ported to Dynamic C with great results. Programs now run faster, with less code and are far more reliable.

 More information can be found here:


 LZ77 and CRC16 Library for SofTools.

LZ77 is a simple compression algorithm. It is the method used by the Z-World ZCompress. This library can decode data compressed using this algorithm. The compression is better than the ZW implementation. These compressed files can be stored on a file system or included in a user program via #pragma init_file.

Store compressed files in flash with #pragma init_file and decode them. Includes source to a fast CRC16 algorithm.


 Not Applicable

 Fixed point library for Softools. Supports real numbers from -32678.99999 to 32767.99999.

No real documentation at this time, just the lib and a sample app.

 Not applicable

SHDesigns Participates in the Yahoo Rabbit-Semi and Softools discussion groups.

Click to subscribe to Yahoo rabbit-semi group

Click to subscribe to Yahoo Softools group