The LimeSDR was launched by Lime Microsystems in May 2016 via a crowdfunding campaign, and is now shipping to over 3,500 customers worldwide. It is based on the Lime Microsystems LMS7002M Field Programmable RF (FPRF) 2×2 MIMO transceiver, which continuously covers frequencies from 100kHz to 3.8GHz. The LMS7002M has been successfully used in a wide range of digital radio applications, including 2G/4G Femtocell base stations, GNSS, DAB, DVBT receivers and RF test and measurement equipment. The LimeSDR also includes an FPGA and USB 3.0 to provide host connectivity.
You’re hired at the latest startup as a hardware engineer and required to build the firmware which will run on “The Greatest Next Generation Appliance” (GNA). The GNA boots, prints a message and interacts with a device (in this case an LED).
In this workshop we cover how a person with an interest and a focus on hardware can make progress with the software side by using the NetBSD operating system and the features it offers to save considerable time and effort.
- NetBSD supports a wide & diverse range of systems & CPU architectures.
- Support for cross compilation is offered by default and works out of the box.
- There is a high level language interface to interact with the system internals.
- File integrity verification support to detect tampering of binaries and preventing execution is builtin.
- An instance of the kernel can be run as a user process on different operating systems where rapid development can take place.
Things we will cover:
- An introduction to cross-compilation with build.sh and constructing an image to boot on your hardware.
- Interacting with the system using Lua (which is embedded in the kernel, avoiding having to write C or have knowledge of OS internals) to e.g. access GPIO.
- Preventing the execution of tampered or unauthorised binaries with veriexec.
- Using rump kernel for rapid development away from a potentially slow dev board.