Are there any software flashing tools for EFM8/C8051 devices available for Linux (such as the like the flash programming utility for EFM8/C8051Fxx devices)? Are there any C2 or USB Debug Adapter (UDA) Linux driver available?
The following are links to two discussion threads in the Silicon Labs Community which may be of use in this matter:
Additionally, I have attached several files to this article that I hope will help enable programming of the EFM8/C8051 devices from the Linux command line. One is a library file that you can utilize with your own wrapper functions to program the device. This is the file "libslab8051.so." The other is a header file that describes the functions contained therein that should enable you to program the C8051 using the USB Debug Adapter that you already have. This file is "SLAB8051.h." I have also attached the header file "SLAB8051Errors.h" to this article.
Unfortunately, we do not really have additional documentation or examples of the use of "libslab8051.so." The DLL that this was based on, however, is called SiUtil.DLL and while we do not have a linux version of this DLL, we do have an application note (AN117) that may have information that translates over to the functions of "libslab8051.so" and could be helpful to you. You can find this application note here:
This is tantalizing close, but does not look quite right. The `.so` file says:
$ ldd libslab8051.so linux-gate.so.1 (0xf7fa5000) libslabhiddevice.so => not found libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf7ed3000) libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xf7d4d000) libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf7d2f000) libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf7b53000) /lib/ld-linux.so.2 (0xf7fa7000) libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf7a51000)
It seems that a `libslabhiddevice.so` file should also be included? The header files are also strange... SLAB8051Errors.h is a HTML file which would not be usable with any C compiler, and SLAB8051.h, while allegedly portable to multiple platforms includes "stdafx.h" a file that I have only run across on Windows. In addition, that SLAB8051.h file contains a lot of Windows-specific types (DWORD, BYTE, BOOL).
Can you please clarify how (or if !) this file is intended to be used?