Parallax Abstraction Layer
Language Agnostic API for P2 HAL Implementations
Introduction
Wouldn’t it be great if every (major/large) library for the Propeller 2 implemented a similar API? Of course it would - then jumping from one language to another would only be as hard as learning the new syntax rather than learning both a syntax and a new library API.
The Parallax Abstraction Layer aims to help make this happen by providing a community-developed and language-agnostic API that hardware abstraction library (HAL) authors can use while implementing their designs.
There are two types of users for this repository: API designers and HAL authors. API designers will contribute their ideas to this repository and HAL authors will take those ideas and turn them into executable code.
PAL Design & Architecture
Designed with two layers in mind: HIL and HAL.
Hardware Interface Layer
Low-level functions that interact directly with the hardware. These functions provide little or no abstraction but are merely focused on giving high-level languages (anything other than assembly) access to the Propeller’s special purpose registers.
Hardware Abstraction Layer
Medium- and high-level functions that interact with either HIL or other HAL functions to accomplish high(er) level goals, such as “set the clock frequency” or “start a PWM signal.”
Object Hierarchy
Lines ending with /
are categories. Those without are considered objects in
the API.
builtin/
concurrency/
filesystem/
hmi/
input/
output/
memory/
motor/
pins/
sensor/
accelerometer/
analog/
distance/
gyroscope/
thermometer/
bus/
can/
i2c/
spi/
uart/
API Designers
Coming soon…
HAL Authors
Coming soon…