Jump to content
Sign in to follow this  
davidgiven

Fuzix for the MSP430FR5969

Recommended Posts

Good news, everyone! I've just ported Alan Cox's Fuzix to the MSP430. It'll run on a MSP430FR5969 and supports up to four 23kB user processes via swapping to an SD card. There's a full Unix filesystem and a tonne of software. It's riddled with bugs, but is surprisingly snappy and usable.

This is running on a standard MSP430FR5969 Launchpad with the 43oh.com SD card boosterpack plugged into it. The console's via the USB UART. It's riddled with bugs, but there's enough running to be of interest.

You can find the source code here: https://github.com/davidgiven/FUZIX/tree/msp430

Here is a somewhat edited transcript from my serial terminal to prove it.

FUZIX version 0.1
Copyright (c) 1988-2002 by H.F.Bower, D.Braun, S.Nitschke, H.Peraza
Copyright (c) 1997-2001 by Arcady Schekochikhin, Adriano C. R. da Cunha
Copyright (c) 2013-2015 Will Sowerbutts <will@sowerbutts.com>
Copyright (c) 2014-2015 Alan Cox <alan@etchedpixels.co.uk>
Devboot
64kB total RAM, 23kB available to processes (4 processes max)
Enabling interrupts ... ok.
SD drive 0: hda: hda1 hda2 
Mounting root fs (root_dev=1): OK
Starting /init
init version 0.9.0ac#1
# mount
# df
Filesystem       Blocks   Used   Free  %Used Mounted on
df: cannot open /etc/mtab: No such file or directory
# prtroot
/dev/hda1 / fuzix rw
# prtroot > /etc/mtab
# df
Filesystem       Blocks   Used   Free  %Used Mounted on
/dev/hda1         20480   1218  18622     5% /
# ls
bin
dev
etc
init
tmp
usr
# cd tmp                                                                                     
# cp /bin/sh data
# ls -l
-rwxr-xr-x   1 root     0           18111 Jan 01 00:03 data
# cp data data2
# cat data data2 > big
# ls -l
-rw-rw-rw-   1 root     0           36222 Jan 01 00:04 big
-rwxr-xr-x   1 root     0           18111 Jan 01 00:03 data
-rwxr-xr-x   1 root     0           18111 Jan 01 00:04 data2
# rm data2
# rm data
# wc big
   1696   3086  36222 big
# ls /bin > files
# wc -l files
    101 files
# cd /bin
# ls b*
banner
basename
bd
# banner Hello
H     H
H     H  eeeeee  l       l        oooo
H     H  e       l       l       o    o
HHHHHHH  eeeee   l       l       o    o
H     H  e       l       l       o    o
H     H  e       l       l       o    o
H     H  eeeeee  llllll  llllll   oooo
# ps
USER      PID   STAT    WCHAN   ALARM   COMMAND
root        1   Ready   0000    0       init
root        2   Ready   0000    0       /bin/sh
root       12   Running 0000    0       ps
# forth
 ok
BYE
# cd /usr/games
# ls
fish
wump
# ./fish
instructions?
yes

`Go Fish' is a childrens' card game.

(I would like to claim the record for the smallest physical hardware capable of beating me at Go Fish. Alas, Hunt the Wumpus doesn't run, for some reason.)

Share this post


Link to post
Share on other sites

...I should point out that I just got pipes working. Even multistage ones!

 

    $ ls /bin/* | grep '^a' | wc

 

...works. It is, admittedly, not very fast, as it's swapping to disk as it switches between processes, but it works!

 

Incidentally, does anyone have a fast DMA-based memcpy for the FR5969?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...