smoothieware-website-v1

Portability refactor Documentation

The purpose of this document is to outline the current problems with Smoothie’s portability, propose a solution and guide the implementation.

The problem

Though Smoothie is based on mBed, it is not easily ported to other boards / processors.

For various reasons, such as conceptual mismatch between needed and actual functionality by mBed, not everything Smoothie does can use mBed.

This simple fact means that some porting work will always be necessary - but we could reduce the effort needed by centralizing the chip specific functions in a - Smoothie specific - hardware abstraction layer (HAL).

Proposed solution

  1. Refactor everything LPC17xx specific into a new folder structure /hal/LPC17xx.
  2. Check everything whether it can be replaced if we were using a newer version of mBed. If so, update and refactor to use these mBed libs.
  3. Finally, prove that porting is possible by actually doing it.

Please note that no. 1 is basically run time neutral (given a sufficiently smart compiler). Step 3 would be a good time to add even very detailed comments to the LPC HAL guiding further ports.

Details

The affected subsystems are:

There is a surprisingly small number of files that contain ‘LPC’. Here’s what FF proposes to do about them:

Open Questions