This repository has been archived by the owner on Oct 5, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 33
/
HOWTO
39 lines (31 loc) · 1.77 KB
/
HOWTO
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
31
32
33
34
35
36
37
38
39
Add new interfaces:
=====================================================================
Current version 0.4 supports the following interfaces:
- UART Windows (either "COMn" and "\\.\COMn");
- UART posix/Linux (e.g. "/dev/ttyUSB0");
- I2C Linux through standard driver "i2c-dev" (e.g. "/dev/i2c-n").
Starting from version 0.4, the back-end of stm32flash is modular and
ready to be expanded to support new interfaces.
I'm planning adding SPI on Linux through standard driver "spidev".
You are invited to contribute with more interfaces.
To add a new interface you need to add a new file, populate the struct
port_interface (check at the end of files i2c.c, serial_posix.c and
serial_w32.c) and provide the relative functions to operate on the
interface: open/close, read/write, get_cfg_str and the optional gpio.
The include the new drive in Makefile and register the new struct
port_interface in file port.c in struct port_interface *ports[].
There are several USB-I2C adapter in the market, each providing its
own libraries to communicate with the I2C bus.
Could be interesting to provide as back-end a bridge between stm32flash
and such libraries (I have no plan on this item).
Add new STM32 devices:
=====================================================================
Add a new line in file dev_table.c, in table devices[].
The fields of the table are listed in stm32.h, struct stm32_dev.
Cross compile on Linux host for Windows target with MinGW:
=====================================================================
I'm using a 64 bit Arch Linux machines, and I usually run:
make CC=x86_64-w64-mingw32-gcc AR=x86_64-w64-mingw32-ar
Cross compile on Linux 64 bits host for linux 32 bits target:
=====================================================================
make CFLAGS=-m32 LDFLAGS=-m32