LLVM: Target Specific Attributes.

In LLVM system compiler, there is an option in the command command -mattr called target specific attributes. You may check each target attributes by using this command. llvm-as < /dev/null || llc -march=aemb -mattr=help note that -march=aemb is to select target architecture, in my case, aeMB. A list of attributes Read more…

uCLinux: Jiffies in the Kernel

Having the discussion of tick rate in my previous post, it is therefore appropriate to introduce jiffies in linux kernel. Jiffies is a global variable declared in <linux/jiffies.h> as: extern unsigned long volatile jiffies; Its only usage is to store the number of ticks occurred since system start-up. On kernel boot-up, jiffies is Read more…

LLVM: Customize your Instructions.

For the past few weeks, I was given a task by my supervisor. The task sound simple, whenever there NOP (No operation) instruction will be use, LLVM should change it into XOR R0, R0, R0 which basically doing nothing since in aeMB, register zero (R0) always have zero values. NOP Read more…

uCLinux: Tick Rate

With a large number of kernel functions are time-driven, the time management in kernel is very important. The frequency of the system timer (tick rate) is programmed on system boot based on a static preprocessor define, HZ. The value of HZ is architecture-dependent, and it is defined in: <asm/param.h>. The tick rate Read more…

After life: There is a Need to Improve

I had officially completed my internship life in AESTE. Finishing my internship makes me wonders about my future. This feeling was never so intense. I never worried about my future so much before, when I was in my university. My supervisor told me that engineering is all about efficiency. He Read more…

Z: Doesn’t She Look Good

Anyone who has a hobby would understand the satisfaction of completing something on which he or she enjoyed working. It doesn’t always look marketable, it doesn’t always look fashionable, it doesn’t always look picture-worthy. But it always looks good to the creator. Anyone who has a job would understand that Read more…

Code is never finished.

Towards the second half of my internship, I extended my working hours. I knew that if I don’t, I’ll never be able to achieve anything in the end. Now the day had come that I have officially finished my internship. My code still have a lot of bugs and holes. Read more…

ASH1: Architecture

After summarizing USB Operations, time to kick off the ball for the match of ASH vs. IOP The general view of ASH1 processor is as the following: ASH1 is a stack-based processor, where the majoroty of the operations will be done on a stack, this participates in reducing the instructions Read more…

ASH1: I/O Operations

Hi again. It’s been a long time since my last blog. So, let’s catch up with ASH1 updates, The plan now is to take into consideration USB operation first with the intention to include all other I/O operations afterwards (especially MAC Ethernet).. In order to get familiar with USB operations Read more…

LLVM Scheduling

LLVM is a compiler project which start as a research at University of Illinois and now has grow to become a massive project and involve in both commercial and open source, as well as research. LLVM is licensed under “UIUC” BSD-Style license. Recently, the latest Apples also start using LLVM Read more…