Index ¦ Archives ¦ Atom ¦ RSS > Category: moxie ¦ Atom

Fetching instructions

Moxie requires some interesting instruction fetch logic.

For my initial implementation I'm assuming a 32-bit path to instruction memory. But moxie has both 16- and 48-bit instructions, so it's not like simple RISC cores that can feed the pipeline on every cycle. My solution is to feed 32-bit instruction memory …


The FPGA test board

I picked up a lightly used FPGA development board from craigslist today. It's the Altera DE2 board with a Cyclone II FPGA.

"The DE2\'s Cyclone II "

There are a few nice things about this board...

  • It's loaded with real and useful peripherals: 16x2 LCD Panel, VGA DAC, lots of LEDs, RS232, IrDA, PS/2 …

Still hacking...

...Just in case you were wondering!

But it's been slow going. The good news is that moxie is front and centre for me again, so let's see what we can do over the next few weeks. And over these next few weeks I'm promising myself not to touch a C …


The Moxielyzer

I just committed a little binary analysis tool to moxiedev. You can use it to perform simple static analysis on moxie binaries. The kinds of things I'm looking for are compiler bugs (because I know there's still one there that is triggered by -frerun-cse-after-loop), and instruction statistics. For instance, which …


Summer is over, so put away the white pants and start submitting patches!

It's been a while since my last update. What can I say... summer was nice.

But now, back to business! I've just committed some long overdue patches to the upstream GNU tools:


More hello world progress with uClibc/uClinux, and a GDB question.

Tonight I got a hello world app to use uClibc's puts() routine! This is a big deal because it's the first time I've had system calls coming in from userland. I haven't checked the changes in yet, because they're a mess, but here's a basic run-down of what I had …


First moxie-linux userland app runs!

I've been taking advantage of the nice summer weather recently, so it's taken me a while to get around to this... but here's the first moxie userland app!

#include <string.h>

#define MSG "Hello, World!\n"

void __attribute__((noinline)) gloss_write (int fd, char *ptr, int len) 
{
  asm("swi 5"); // "write …

Speed bumps on the road to moxie userland

Sooo..... it turns out there's lots to take care of before userland apps like BusyBox can run.

  • The root filesystem. This one is easy. I just built a short Hello World application in C with moxie-uclinux-gcc. This produces an executable in BFLT format which I call 'init'. The kernel build …

The start of a uClinux userland

Before we can start building BusyBox, we need a few more bits of technology...

  • uClibc: this is a popular embedded C library, like newlib, but used more often in Linux environments. I ported uClibc to the moxie core just like every other bit of software in this project: quickly! My …

The first moxie linux boot output...

Userland, here I come! Check out moxiedev, run "ant build", then do the following...

$ ./root/usr/bin/moxie-elf-run linux-2.6/vmlinux
Linux version 2.6.31-rc3-gb006656-dirty (green@dev.moxielogic.com) (gcc version 4.5.0 20090715 (experimental) [trunk revision 149693] (GCC) ) #6 Sun Jul …

© Anthony Green. Built using Pelican. Theme by Giulio Fidente on github.