bin User commands.
etc Template files for /etc.
include System include files.
lib System libraries.
libexec System binaries.
sbin System administration commands.
share Shared resources.
sys Kernel sources.
tools Build tools and simulators.
- chipKIT Max32 board.
- Sparkfun UBW32 board.
- Maximite and Colour Maximite computers.
- Microchip Explorer 16 board, with PIC32 CAN-USB plug-in module and SD & MMC pictail.
- Microchip PIC32 USB or Ethernet Starter Kit, with I/O Expansion board and SD & MMC pictail.
- Olimex Duinomite, Duinomite-Mini and Duinomite-Mega boards.
- Olimex Pinguino-Micro board with PIC32MX795F512H microcontroller.
- eflightworks DIP board.
To compile everything from sources, you'll need some packages installed, namely: Berkeley YACC, GNU bison and flex, ELF library and FUSE library. Under Ubuntu, for example, you can do it by command:
$ sudo apt-get install bison byacc flex libelf-dev libfuse-dev
By default, the system is configured for the Max32 board. To select another target board, edit a top-level user-specific Makefile called "Makefile.user" and set a TARGET value:
TARGET = $(MAX32) # for the chipKIT Max32 board with SD card shield (default)
TARGET = $(FUBARINO) # Fubarino SD board
TARGET = $(FUBARINOBIG) # Fubarino SD board with 8MB SRAM RAMDISK
TARGET = $(MAXIMITE) # for the Maximite board
TARGET = $(MAXCOLOR) # for the Colour Maximite board
TARGET = $(DUINOMITE) # for the Duinomite board with USB console
TARGET = $(DUINOMITEUART) # for the Duinomite board with UART console
TARGET = $(DUINOMITEE) # for the Duinomite E board with USB console
TARGET = $(DUINOMITEEUART) # for the Duinomite E board with UART console
TARGET = $(MMBMX7) # MMB MX7 board
TARGET = $(UBW32) # for the UBW32 board with USB console
TARGET = $(UBW32UART) # for the UBW32 board with UART console
TARGET = $(UBW32UARTSDRAM) # for the UBW32 boars with UART console and 8MB SRAM ramdisk
TARGET = $(EXPLORER16) # for the Explorer 16 board
TARGET = $(STARTERKIT) # for the PIC32 USB or Ethernet Starter Kit
TARGET = $(BAREMETAL) # Bare PIC32 chip on a breakout board
You can also change a desired filesystem size and swap area size, as required. Default is:
FS_KBYTES = 16384
SWAP_KBYTES = 2048
To compile the kernel and build a filesystem image, run:
$ make
A resulting root filesystem image is in file sdcard.img
.
A kernel is in file unix.hex
in your target board subdirectory.
You need to put a filesystem image on a SD card. On Windows, use Win32DiskImager utility (https://launchpad.net/win32-image-writer/+download). On Linux, run:
$ sudo dd if=sdcard.img of=/dev/XYZ
Here XYZ
is a device name of SD card, as recognized by Linux (sdb in my case).
Kernel image should be written to PIC32 flash memory. The procedure depends on a board used.
Use a pic32prog utility (http://code.google.com/p/pic32prog/) and a USB cable to install a kernel:
$ pic32prog -d /dev/ttyUSB0 sys/pic32/max32/unix.hex
Here you need to change AVRTOOLS path and tty name according to your system.
Use a pic32prog utility (http://code.google.com/p/pic32prog/) and a USB cable to install a kernel:
$ pic32prog sys/pic32/ubw32/unix.hex
Use the bootload program for Windows, available for download by link: http://geoffg.net/Downloads/Maximite/Maximite_Update_V2.7B.zip
There is an auxiliary PIC18 chip on the Explorer 16 board, which can be used as a built-in programmer device. You will need a PICkit 2 adapter to install a needed firmware, as described in article: http://www.paintyourdragon.com/?p=51 (section "Hack #2: Lose the PICkit 2, Save $35"). This should be done only once.
Then, you can use a pic32prog utility (http://code.google.com/p/pic32prog/) and a USB cable to install a kernel:
$ pic32prog sys/pic32/explorer16/unix.hex
Use PICkit 2 adapter and software to install a boot loader from
file sys/pic32/starter-kit/boot.hex
. This should be done only once.
Then, you can use a pic32prog utility (http://code.google.com/p/pic32prog/) and a USB cable to install a kernel:
$ pic32prog sys/pic32/starter-kit/unix.hex
You can use a MIPS32 simulator to develop a debug a RetroBSD software, without a need for hardware board. By default, a simulator is configured to imitate a Max32 board. To build it:
$ cd tools/virtualmips
$ make
Run it:
$ ./pic32
Configuration of simulated board is stored in file pic32_max32.conf
.