Interface DisplayLink silicon with 8051-based system
Implementation and debugging of some deeply embedded software development in pure C running on an 8051 CPU to interface with a DisplayLink device and a Davicom MAC/PHY. In an environment with extremely limited available non-volatile storage and RAM (stack, etc.) a driver for the MAC was required to extract DisplayLink protocol packets from IP and route into buffers within the DisplayLink chip.
Principal Software Engineer
Senior Software Engineer with extensive experience of high quality software engineering and a number of operating systems in both the desktop and embedded space, with particular emphasis on digital interactive television over IP networks and other display systems.
- Network protocols including IP, DHCP, ARP and ICMP (ping).
- DisplayLink protocol.
- Embedded development with just 256 bytes available for variables and stack. Only a few KB for the binary code. Toolchain that implemented a subset of the C language standard.
- SDCC (Small Device C Compiler), inline 8051 assembler macros to perform multibyte operations.
- No access to standard C library functions, e.g. printf().
- Extremely limited debugging options – a single GPIO line. Later evolved to debugging via deliberately malformed packets and traffic analysis tools (Wireshark) and sending debug information to the screen using extremely compact debug output routines.
- Splash screen image compression scheme based upon run-length encoding.