Skip to content

Weaving pattern machine written in ARM 32-bit assembly.

License

Notifications You must be signed in to change notification settings

rechsteiner/weavie

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

91 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Weavie

Weavie is an ongoing project to create a tiny, physical weaving pattern computer using only 32-bit ARM assembly. I wanted to learn more about embedded development and assembly programming, and building a weaving pattern editor seemed like a fun challenge. Weavie is built for the STM32 board, and has its own basic emulator based on Rust and Unicorn.


images

Getting Started

Requirements

All dependencies are defined in shell.nix. Run:

nix-shell

Or install using your preferred package manager.

Running in emulator

make

Running on hardware

  • Connect the BOOT0 (B0) pin to the 3.3V PIN. This enables the DFU bootloader mode.
  • Connect the board to the USB port.
  • Flash the chip:
make flash

Running in QEMU

To run in QEMU:

make qemu

Restarting QEMU inside gdb:

monitor system_reset

Exiting QEMU:

Ctrl-A X

Debugging

Debugging in gdb:

make debug

Step through assembly instruction:

si

Inspect register state:

info registers

Inspect memory address:

p/x 0x40020800
x $r2
x/t $r1
x/10x $r1
x/20c $r1

Hardware

Wiring

  • 3.3V to display VIN (power)
  • GND to display GND (ground)
  • SCK to display CLK (clock)
  • MO (MOSI) to display DI (data input)
  • PIN6 to display CS (chip-select)

Weaving

Documentation

Resources

About

Weaving pattern machine written in ARM 32-bit assembly.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published