Ubuntu 10.10 Maverick Meerkat includes an ARM cross-compiler to compile programs for Linux. The compiler can also be used for bare-metal programming with a few arrangements.
QEMU is able to emulate ARM architectures with many details. One thing that the qemu-system-arm program implements is the Angel interface, that enables semihosting. Semihosting involves two machines: a target (the embedded device), and a host (such as a PC) that is connected to the target through a debug interface. An embedded program running in […]
Software debugging is a complex task. There is always the need to collect all available information, in order to detect and understand the problem fast and to think of a proper solution. Sometimes it’s more convenient to debug step-by-step, sometimes it’s better to make the program run completely, and then trace the execution flow “offline”. […]
The guys at OpenCores released a new version of their OpenRisc core, tweaking many hardware bug but also porting Linux kernel 2.6.24 to their simulation platform, that is called or1ksim. The procedure (found here) to try Linux on the new simulator is straightforward and involves executing a script. The script hides most of the complexity […]
How to compile a vanilla Linux kernel for the Versatile ARM platform, and run it using QEMU.
A simple example of bare metal programming for ARM926EJ-S core using the free open source Codesourcery toolchain based on GNU gcc.
December 5, 2010
21