View on GitHub

ParallaxAbstractionLayer

Language Agnostic API for P2 HAL Implementations

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.

API Designers

Coming soon…

HAL Authors

Coming soon…