Firmware spelunking

From Sonic Potions Wiki
Revision as of 13:34, 26 February 2014 by Niklasni1 (talk | contribs) (Created page with "This page was not written by Julian! These are just my notes from a beginning microcontroller programmer exploring the firmware. == Overview == The drumsynth firmware (ie., ...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

This page was not written by Julian! These are just my notes from a beginning microcontroller programmer exploring the firmware.

Overview

The drumsynth firmware (ie., not the interface board) is divided into a few logical parts: the hardware handling, the communications interfaces (MIDI via UART and USB, SD over SPI), the sound generation and the sequencer.

Files and folders

 
  ├── AudioCodecManager
  │   ├── AudioCodecManager.c
  │   └── AudioCodecManager.h
  ├── config.h
  ├── datatypes.h
  ├── DSPAudio 
  │   ├── 1PoleLp.c 
  │   ├── 1PoleLp.h
  │   ├── automationNode.c
  │   ├── automationNode.h
  │   ├── BufferTools.c
  │   ├── BufferTools.h 
  │   ├── CymbalVoice.c 
  │   ├── CymbalVoice.h
  │   ├── Decay.c
  │   ├── Decay.h
  │   ├── distortion.c
  │   ├── distortion.h
  │   ├── dither.c
  │   ├── dither.h
  │   ├── DrumVoice.c
  │   ├── DrumVoice.h
  │   ├── HiHat.c
  │   ├── HiHat.h
  │   ├── lfo.c
  │   ├── lfo.h
  │   ├── mixer.c
  │   ├── mixer.h
  │   ├── modulationNode.c
  │   ├── modulationNode.h
  │   ├── Oscillator.c
  │   ├── Oscillator.h
  │   ├── random.c
  │   ├── random.h
  │   ├── ResonantFilter.c
  │   ├── ResonantFilter.h
  │   ├── Samples.c
  │   ├── Samples.h
  │   ├── SlopeEg2.c
  │   ├── SlopeEg2.h
  │   ├── snapEg.c
  │   ├── snapEg.h
  │   ├── Snare.c
  │   ├── Snare.h
  │   ├── squareRootLut.c
  │   ├── squareRootLut.h
  │   ├── transientGenerator.c
  │   ├── transientGenerator.h
  │   ├── transientTables.c
  │   ├── transientTables.h
  │   ├── wavetable.c
  │   └── wavetable.h
  ├── globals.h
  ├── hardfaultHandler.c
  ├── hardfault.S
  ├── Hardware
  │   ├── cs4344_cs5343.c
  │   ├── cs4344_cs5343.h
  │   ├── FIFO.c
  │   ├── FIFO.h
  │   ├── SD_FAT
  │   │   ├── diskIo.c
  │   │   ├── diskio.h
  │   │   ├── ff.c
  │   │   ├── ffconf.h
  │   │   ├── ff.h
  │   │   ├── integer.h
  │   │   ├── SD_Manager.c
  │   │   ├── SD_Manager.h
  │   │   ├── SD_routines.c
  │   │   ├── sd_routines.h
  │   │   ├── SPI_routines.c
  │   │   └── SPI_routines.h
  │   ├── TriggerOut.c
  │   ├── TriggerOut.h
  │   └── USB
  │       ├── usb_bsp.c
  │       ├── usbd_desc.c
  │       ├── usbd_desc.h
  │       ├── usbd_usr.c
  │       ├── usb_manager.c
  │       ├── usb_manager.h
  │       ├── usb_midi_core.c
  │       └── usb_midi_core.h
  ├── main.c
  ├── MIDI
  │   ├── frontPanelParser.c
  │   ├── frontPanelParser.h
  │   ├── MidiMessages.h
  │   ├── MidiNoteNumbers.h
  │   ├── MidiParser.c
  │   ├── MidiParser.h
  │   ├── MidiVoiceControl.c
  │   ├── MidiVoiceControl.h
  │   ├── ParameterArray.c
  │   ├── ParameterArray.h
  │   ├── Uart.c
  │   ├── Uart.h
  │   └── valueShaper.h
  ├── SampleRom
  │   ├── flash_if.c
  │   ├── flash_if.h
  │   ├── SampleMemory.c
  │   └── SampleMemory.h
  ├── Sequencer
  │   ├── clockSync.c
  │   ├── clockSync.h
  │   ├── EuklidGenerator.c
  │   ├── EuklidGenerator.h
  │   ├── sequencer.c
  │   ├── sequencer.h
  │   ├── SomData.c
  │   ├── SomData.h
  │   ├── SomGenerator.c
  │   └── SomGenerator.h
  ├── startup_stm32f4xx.S
  ├── stm32f4xx_conf.h
  ├── stm32f4xx_it.c
  ├── stm32f4xx_it.h
  └── system_stm32f4xx.c


Hardware handling

Communications

Sound

Sequencer