Z: AEMB QEMU

Here I am, on the third day of my internship at AESTE, typing away my thoughts and recollections from the past half-week. In the background, the whirring of the air-conditioning and fan accompanies Jason Mraz and James Morrison as they prescribe that everything will be fine (if it’s broken code then fix it)… I arrived at AESTE on Wednesday feeling anxious (read: a little scared) because I was clear of my abilities. I wasn’t gonna try to fool anyone into Read more

A Good Start Accounts for Half the Success

During my first week in my company, I was very excited and eager to choose my very own project. However I am very new to the work that I am going to do. I have only very basic experience in C programming, minimal knowledge in assembly language and almost zero Verilog/VHDL. I doubt my ability to program something from scratch. Luckily I am allowed to modify an existing open source code. I am interested in working on making an instruction Read more

FreeRTOS Preemptive Kernel

This post presents the sixth and the last phase of porting FreeRTOS for AEMB processor. In the previous post, both interrupt and interrupt handling were implemented to serve the mechanism of the preemptive kernel. Although, things seemed fine and set, yet the kernel failed to work when FreeRTOS tasks were created. This problem by far was one of the most complex problems that I faced during my progress in the project. It was hard to tell what was going wrong!! Read more

FreeRTOS Tick and Tick Handling

This post represents the fifth phase of porting FreeRTOS for AEMB processor. The main concern of this phase is to get the FreeRTOS configured to demonstrate the Preemptive Multitasking. By far this phase deals with the following: Setting up the timer to generate the RTOS Tick Handling the RTOS Tick In the previous post, cooperative multitasking was intoduced and successfully demonstrated. However in cooperative multitasking, the interrupt and the interrupt handling had not yet been implemented. As a result, there Read more

Yick Hong: Introductions

I’m a final year student from Multimedia University (MMU), currently pursuing Bachelor of Engineering (Honours) in Electronics. As for my first post in AESTE’s blog, I’m sharing my experiences on job application to AESTE, and the work progress thus far. The job application to AESTE involved two stages. The first stage is answering screening questions in Google Doc, which covered areas in Processor Architecture, Software Programming, FPGA/ASIC Design, Computer Networking and Web Development. Following this was the phone interview by my supervisor, Read more

FreeRTOS Cooperative Kernel

In the previous post, I wrote about creating a simple FreeRTOS task. However, to demonstrate the FreeRTOS cooperative kernel, more than one task is needed. Basically when starting the FreeRTOS scheduler, an Idle task is automatically created which is an infinite loop so when the kernel starts running, it will never return back the control to the main program. In cooperative multitasking, it is the responsibility of the currently running task to give up the processor resources to allow other Read more

Running a FreeRTOS Task

Continuing the series of the posts about my work in porting FreeRTOS for AEMB processor, this represents the third phase of the project which is running a simple FreeRTOS task. In my previous post I mentioned about a problem that I faced during simulating FreeRTOS by using Icarus Verilog. While it has been decided to move on to the next phase of the project with either one of the memory management implementations heap1 or heap2, the problem of the unaligned Read more

Clustering Icarus Verilog

Icarus Verilog is a popular open-source digital circuit simulator distributed as part of gEDA. While it is a fast simulator, it runs largely single-threaded and does not exploit the modern developments in computing. Depending on the complexity of the circuit involved, a single simulation run can be fairly time consuming. At AESTE, we are using our cluster of workstations to perform parallel simulation runs. While a single simulation run is still time-consuming and it cannot distributed, we can perform N Read more

Simulating FreeRTOS

In this post, I will explain to you how the simulation of the FreeRTOS kernel was accomplished for AEMB processor. The second phase of porting FreeRTOS for AEMB according to the project plan is simulating the compiled and linked FreeRTOS kernel on top of AEMB hardware. As I mentioned in my previous post, different processor architecture requires different instruction set to communicate with the hardware. Consequently based on the executable file obtained from the successful compiling phase of FreeRTOS for Read more

Stack Processor Review

As I mentioned in the previous post, the two basic foundations for my project are to get familiar with the stack processor architecture and to know the exact I/O operations. I started with a quest for knowledge about the stack processors. Stack Computers: the new wave by Philip J. Koopman was my first station. This book gives an overview about stack processors, how stacks work and their different structures. Moreover, it presents detailed descriptions for some of the stack processors Read more