Category: Embedded Development

VM – Instructions

NOP No Operation. Used for test and to cover the 0 op-code. For FOR Loop Assign Assign operation. Takes an Expression and generate a Math calculation or logical evaluation. While WHILE Loop Loop Generic Loop Exit  Terminate a process Raise Raise an event. The same as calling a function without creating a stack Return entry.…

Read the full article

32 x Servo/IO Hat

New 3D model showing the right angle connectors and the updated “Servo” that now is renamed to 32 x IO Hat. I have done some mechanical changes and added a lot of protection electronics. As mentioned earlier this is my test ground for the VM and each channel have multiple capabilities – hence the “IO” rather…

Read the full article

VM-Event

I did earlier create named Event’s that could be called with a Raise statement. The last example created an Event digitalIn[2] where the “name” is a declared object register and the event is automatically called if C or PLAIN assembly changes that exact bit. Event digitalIn[2]             // … End  I like the concept, of…

Read the full article

VM – Library

The previous example used a lot of lines to outline the register mapping and I don’t want to be declaring all this for every app I create. Basically I just want to write something like this: use System use lib32io Assign ch1.chMode = Mode.Servo Assign ch2.chMode = Mode.DigitalIn Assign ch3.chMode = Mode.DigitalIn Event digitalIn[2]            …

Read the full article

VM Test Ground

I decided to use the 32 x IO (Servo, Analogue, Digital) as my test ground for the VM – the firmware will in this case include easyIPC (SPI in this case) and a 32 channel programmable IO controller. Each of the channels have capabilities like: Servo with a 14 bit pulse resolution. PWM out with…

Read the full article

New PCB

Two new PCB’s arrived. The large green is another Hat – the 8xDC Motor Driver. The small red one is the STM32F030F4 breakout. I am using www.Elecrow.com on all my PCB’s because they have proven to be very reliable. I ordered 10 of these small PCB’s and well – the bag contains 40 – and…

Read the full article

PLAIN – Math & Expressions

We have so far demonstrated PLAIN Assembly with little difference to an actual 3.gen language. We will see the low-level assembly – instruction by instruction – a bit more as we dig into math and expressions. As we are an assembler we need to maintain a principle of 1:1 between code and actual instructions. The…

Read the full article

PLAIN – Module

PLAIN VM consist of multiple Modules. A Module have it’s own unique name, easyIPC Object map, Stack and can execute independently from other Modules. One Module can interact with other Modules or call them on blocking/non-blocking schemes. All code in PLAIN Assembly must be part of a module and a module start execution with the first…

Read the full article

PLAIN – Events 2

Events and state engine support is a key feature in PLAIN where we do things different. It basically convert the entire application into a state engine where processing is top-down based on events. I am not sure how much of this I want to support directly in the VM, but I will Experiment a bit.…

Read the full article