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…