aboutsummaryrefslogtreecommitdiffstats
path: root/notes/portable.txt
blob: cc1f2acf44dfcf2c66630fb941e29124597a3498 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Board portability is implemented in boards.h, libmaple.h, and stm32.h.

At compile time, we currently expect one of STM32_MEDIUM_DENSITY or
STM32_HIGH_DENSITY to be defined.  There's no support for low-density
chips.  XL-density isn't in the near horizon; patches welcome.  You'll
also need to define some BOARD_foo if you expect to use Wirish; this
comes along with some additional assumptions about your board's layout.

The code in usb/ is not very portable at all right now; expect this to
change in the future, but for now, we're focusing on rolling out a
more complete backend.

A file should be added to ./notes describing the pin numbering of any
new board you add.

NVIC Notes:
    Only CANBUS and USB OTG use interrupts above #63, but I updated the nvic code anyways

RCC Notes:
    Added some clock stuff to all boards even though they aren't usable... blah.

SPI Notes:
    SPI3 is only in XL chips, so we don't handle that.

TIMER Notes:
    The wirish timer implementation should be refactored to use pin numbers.

USART Notes:
    The USART/UART nomeclature is a little mixed up.
    TODO: portability of HardwareSerial, HardwareSPI