Testing like a Pro

We are now using XCFE in Aeste, probably because it’s supposed to be a “light” desktop environment. However, I didn’t fancy it’s looks and absence of keyboard shortcuts similar to Ubuntu. Hence I took some time to make my desktop environment usable and setup some keyboard shortcuts. You can find Read more

Debugging CPU

In this post I’ll explain how I debug the new core of AEMB, and the current bug that I’m facing. Debugging the CPU takes place using the demo program originally attached with AEMB. The waveform generated from the demo program running on the new CPU is compared with the waveform Read more

CPU Modifications

In the previous post I’ve explained how the threading model of the new AEMB. In this post I will explain all the changes to the old AEMB core that were necessary to accommodate a coarse grained model and sum up with an analysis of how the new threading model affects Read more

Coarse-Grained Threading

Finally I’ve changed the threading model of the AEMB. While some instructions are still buggy and hence the demo program doesn’t run properly, I still want to use this post and the next one to explain the changes I’ve made so far. In this post I’ll explain about the design Read more

Modifying Interrupt Behaviour

AEMB has just been updated last week. The fix will prevent the tasks from breaking out of their loop. This solves the problem I faced last time where the tasks run and goes into the main function. Therefore, the new AEMB will need to be tested again to check for Read more

Interrupts on Multiple Threads

Continuing from the previous test, an in depth look is taken on the output on AEMB. The GTKWave shows that the AEMB actually stop running anything at all on one thread . This is a huge error and means that the task not only stop running, but the FreeRTOS stops Read more

Enabling/Disabling Interrupts

Regarding my previous post on the interrupt crashing the FreeRTOS tasks, I went and research on the method used for enabling and disabling interrupts on AEMB through software. There are two simple functions used to do the job, which are portDISABLE_INTERRUPTS() and portENABLE_INTERRUPTS(). These two functions will disable and enable Read more

Interrupt Behaviour

I would like to look deeper into the application of FreeRTOS interrupts on the latest version of AEMB. It is important to be able to clearly identify the context switching by the interrupt on both threads of AEMB. To look more into the interrupts, the tasks are written with longer Read more