Skip to content

nodesign/UPER

Repository files navigation

UPER firmware

UPER, originally written by 8devices is the firmware currently used for WeIO.

The original version uses LPCXpresso, with specific libraries, such as RedLib (a CodeRed proprietary implementation of Newlib). It does mean that LPCXpresso is required to compile the firmware.

This version uses newlib, and can be compiled in a standard way using make.

In addition, it has been customized for WeIO.

Directory structure

In this version, the directory structure differs from the original UPER version. The structure is the following :

|- UPER
|  |-- UPER : Core files
|  |   \-- src : main, USB descriptor, startup and system timer
|  |   |   \-- CDC : USB CDC driver 
|  |   |   |-- Driver : MCU initialization
|  |   |   |-- Modules : Peripheral and specific devices
|  |   |   |-- System : Cortex M0 system files
|  |   |-- inc : header files
|  |-- UserFunctions : C files for users defined functions
|  |-- MemoryManager : Dynamic Memory managing for embedded systems
|  |-- SFP : Simple Function Protocol
|  |-- drivers : Windows USB CDC drivers
|  |-- utils : Utilities
           

The directory UserFunctions allows users to create and link a custom function easily. Read README.md file in the UserFunctions directory for more informations.

How to build the firmware

In order to build the firmware, two dependencies must be included : SFP and MemoryManager

git clone https://github.com/nodesign/UPER
cd UPER
git checkout newlib
git submodule init
git submodule update

A GCC for ARM toolchain is also required. It can be downloaded and installed from here : GNU Tools for ARM Embedded Processors. In addition, python must also be installed in the system. It is required to compute the checksum of the vector section. Without a correct checksum, the bootloader will not recognize the firmware as valid.

Once the system is ready, simply type make from the terminal. This will compile the firmware, and output a binary file UPER-Release.bin