FreeRTOS: Inter-Task Communication

FreeRTOS is a type of real-time operating system. It is similar to all RTOS, having a serious problem with inter-task communication and resource sharing. In RTOS, inter-task communication is not like passing variables between normal functions. Normal functions can pass the data to a global variable or pass it to another function by returning the value. If the global variable is being used by RTOS, the data might be written by higher priority task before the lower priority task read Read more…

ASH1 Assembler

During the last week, I worked on developing an assembler for ASH1! I have always wondered about the assemblers & compilers design… with AESTE, I had the chance to explore this field. ASH1 assembler is developed using MATLAB. It takes an assembly language source file (text file) and translates it into ASH1 object file (mif file). This is done by carrying out three passes over the source file as the following: In the first pass, comments and blank lines are Read more…

Learning Week

One week has passed since I started my career in AESTE. The only thing I can do was learning. There are so many things I need to learn before I can start my task. The list below is what I have learned in last week. Git + Github Git is a distributed revision control system. It provides a set of workflow for multiple developers work on same project. The modification can be done on local PC, then push (upload) to Read more…

New software environment

In AESTE, every task is done in Linux. I am not a Linux user before and to get my job run smoothly, I need to learn it as soon as possible. It is very different to work under Linux platform compared to Microsoft Windows, especially in the ways to install software. Linux can get a bunch of software from the software center or using the apt-get command (different distros use different command). For expert users, they can perform most of Read more…

First Week in Aeste

I am a fresh graduate with Bachelor of Electronics Engineering from Multimedia University Cyberjaya. I found my passion in electronics hardware and programming when I was in secondary school. During that period, my teacher taught me to write a simple program – sending data from PC, and receiving it with a 8051 (via RS232). I was very excited when I saw the system worked well since it was done by me! During my university life, I have participated in ABU Read more…

ASH1 : An LCD Driver and VGA Colour Controller

After integrating Ethernet operations into ASH1.. I though of demonstrating ASH1 as an IOP .. so I looked for a simple I/O operation, yet a simple one to make my life easy when I am writing the code for it in binary. I decided to make ASH1 works as an LCD driver in addition to VGA colour controller. For the LCD driver code, I wrote the code and compared it with the one used in PIC Projects: A Practical Approach Read more…

CRC Operations: A follow-up

Cyclic Redundancy Checksums generation and checking were among the challenging things in implementing ASH1. Looking for the accurate way to calculate/check CRCs took me a lot of time as it was confusing in terms of the following: Bit Orientations (LSB first or MSB first). The Initial Value of the CRC register (0s or 1s). CRC Orientation and Inversion. Through checking some online resources, I found out that it is not only me who faced this problem. People here were struggling Read more…

Ethernet Operations: Random Generator

Back-off is an important feature of the Ethernet MAC protocol. After a collision is detected through the MII/RMII interface, ASH1 should stop transmitting (there are more specific details about when exactly to stop transmission) and then reschedule its retransmission by generating a period of time to wait before retransmission. The period of time is based on a random number chosen by ASH1 and used in its back-off calculations. The amount of total back-off delay is calculated by multiplying the slot Read more…

Ethernet Operations : an eye-opener!

I have mentioned many times that ASH1 should be as small and as fast as possible… The current version of ASH1 is able to perform USB functions pretty good ( more specifically 1.5 Mbps USB operations) and other simple I/O operations. However, getting myself into Ethernet and trying to integrate it into ASH1 lets me see potential chances forĀ  improvement of ASH1. For example: Although, PUSH & POP are frequent operations of a stack-based processor, I designed ASH1 to do Read more…

Ethernet Operations: An Introduction

As ASH1 is an IOP, it should be able to perform Ethernet operations. In the past days, I have been going through Ethernet references and literature, I must say it’s much more fun than USB. “The diagram … was drawn by Dr. Robert M. Metcalfe in 1976 to present Ethernet … to the National Computer Conference in June of that year. On the drawing are the original terms for describing Ethernet. Since then other terms have come into usage among Read more…