Category: Embedded Development

Plain Assembly example – IF

The list of instructions will need to be extended With low level stuff as I mature the VM and implement it, but lets start writing some code and assemble it into actual instruction. I need to do this for every instruction and Assembly trick we use – lets start with IF..ElseIf..Else..End! Ifeg, ifneq, ifgt, ifls, ifgte and…

Read the full article

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