Andrew Leech
89ff506513
py: Update and rework build system for including external C modules.
...
How to use this feature is documented in docs/develop/cmodules.rst.
2019-03-08 22:58:42 +11:00
Damien George
e4ac104b7f
stm32: Allow to build with threading with the GIL disabled.
2019-03-08 22:29:54 +11:00
Jim Mussared
f2ebee9cf1
stm32/mboot: Update to match latest oofatfs version.
...
See corresponding commit b5f33ac2cb
2019-03-07 15:22:16 +11:00
Damien George
b5f33ac2cb
ports: Update to work with new oofatfs version.
2019-03-05 15:56:39 +11:00
Francisco J. Manno
f938e70c69
stm32: Add compile-time option to use HSI as clock source.
...
To use HSI instead of HSE define MICROPY_HW_CLK_USE_HSI as 1 in the board
configuration file. The default is to use HSE.
HSI has been made the default for the NUCLEO_F401RE board to serve as an
example, and because early revisions of this board need a hardware
modification to get HSE working.
2019-03-05 15:49:08 +11:00
Damien George
e61862d063
stm32/boards: Update to use new build config for lwip component.
2019-03-04 23:34:03 +11:00
Damien George
78fe979d7d
stm32: Use global lwip build config and support building without lwip.
2019-03-04 23:33:02 +11:00
Damien George
84479569de
stm32/boards/STM32F769DISC: Use external QSPI flash to store some code.
...
This demonstrates how to use external QSPI flash in XIP (execute in place)
mode. The default configuration has all extmod/ code placed into external
QSPI flash, but other code can easily be put there by modifying the custom
f769_qspi.ld script.
2019-03-04 22:40:15 +11:00
Damien George
c8bbf2c170
stm32/Makefile: Allow a board to specify its linker sections for FW.
...
A board can now use the make variables TEXT0_SECTIONS and TEXT1_SECTIONS to
specify the linker sections that should go in its firmware. Defaults are
provided which give the existing behaviour.
2019-03-04 22:26:55 +11:00
Damien George
f8f2724297
stm32/qspi: Enable sample shift and disable timeout counter.
...
This makes the QSPI more robust, in particular the timeout counter should
not be used with memory mapped mode (see F7 errata).
2019-03-01 16:15:14 +11:00
Damien George
823b31e528
stm32/boards/NUCLEO_F429ZI: Enable lwIP and Ethernet peripheral.
2019-02-26 23:32:19 +11:00
Damien George
ed0a530614
stm32/boards/STM32F769DISC: Enable lwIP and Ethernet peripheral.
2019-02-26 23:32:19 +11:00
Damien George
b3513f54d3
stm32/boards/STM32F7DISC: Enable lwIP and Ethernet peripheral.
2019-02-26 23:32:19 +11:00
Damien George
8daec24168
stm32/boards/NUCLEO_F767ZI: Enable lwIP and Ethernet peripheral.
2019-02-26 23:32:19 +11:00
Damien George
ac3e2f380d
stm32/modnetwork: Don't call NIC callback if it's NULL.
2019-02-26 23:32:19 +11:00
Damien George
08a24c5f41
stm32/mpconfigport.h: Enable lwIP concurrency protection mechanism.
2019-02-26 23:32:19 +11:00
Damien George
c55709bf29
stm32/network_lan: Add high-level network.LAN interface to ETH driver.
2019-02-26 23:32:19 +11:00
Damien George
c950a1a35d
stm32/eth: Add low-level Ethernet MAC driver.
2019-02-26 23:32:19 +11:00
Damien George
cc63e19332
stm32/mphalport: Add mp_hal_get_mac() helper function.
2019-02-26 23:32:07 +11:00
Damien George
75a35448e1
stm32/boards/NUCLEO_F767ZI: Fix up comments about HCLK computation.
2019-02-26 22:44:27 +11:00
Andrew Leech
8ed4a28dae
stm32/sdram: Increase GPIO speed for SDRAM interface to "very high".
...
Currently all usages of mp_hal_pin_config_alt_static() set the pin speed to
"high" (50Mhz). The SDRAM interface typically runs much faster than this
so should be set to the maximum pin speed.
This commit adds mp_hal_pin_config_alt_static_speed() which allows setting
the pin speed along with the other alternate function details.
2019-02-20 16:54:32 +11:00
Dave Hylands
a270cf280b
stm32/stm32_it: Fix RTC IRQ handler to handle all EXTI IRQs on F0 MCUs.
2019-02-19 15:17:47 +11:00
Dave Hylands
67b326d97e
stm32/extint: Remove unused (and incorrect) EXTI defines.
2019-02-19 15:17:32 +11:00
Dave Hylands
3d17d9b578
stm32/extint: Add non-GPIO EXTI IRQ sources for F0.
2019-02-19 15:17:28 +11:00
Dave Hylands
92fec603d0
stm32/make-stmconst.py: Improve regex to parse more constants.
...
A few RTC constants weren't being parsed properly due to whitespace
differences, and this patch makes certain whitespace optional. Changes
made:
- allow for no space between /*!< and EXTI, eg for:
__IO uint32_t IMR; /*!<EXTI Interrupt mask register, Address offset: 0x00 */
- allow for no space between semicolon and start of comment, eg for:
__IO uint32_t ALRMASSR;/*!< RTC alarm A sub second register, Address offset: 0x44 */
2019-02-19 15:17:28 +11:00
Dave Hylands
9441f4b682
stm32/extint: Fix RTC Alarm/FS USB EXTI constants for L4.
2019-02-19 15:17:28 +11:00
Dave Hylands
363900be5d
stm32/extint: Fix ExtInt to work with non-GPIO pins.
2019-02-19 15:17:20 +11:00
Damien George
c65e5c88b8
stm32/boards/stm32f429.ld: Increase uPy heap size by 64k for F429 MCU.
...
The F429 has 256k total RAM, with 64k already set aside for flash write
cache, so the uPy heap can be increased this much.
2019-02-18 13:18:59 +11:00
Damien George
c551169bd8
stm32/mboot: Add hook to run board-specific code early on startup.
2019-02-15 15:34:05 +11:00
Damien George
65b1fefa31
stm32/modmachine: Add ability to pass through user data to mboot.
2019-02-15 15:10:04 +11:00
Damien George
3669198403
stm32/mboot: Add support script which can program mboot and application.
2019-02-15 15:09:59 +11:00
Damien George
3d0c31e60e
stm32/mboot: Move some BSS vars to new section that isn't zeroed out.
...
Zeroing out data on startup takes time and is not necessary for certain
variables. So provide a declaration for such variables and use it.
2019-02-15 15:09:54 +11:00
Damien George
ff04b78ffd
stm32/mboot: Add support for loading gzip'd firmware from a filesystem.
...
This adds support to mboot to load and program application firmware from
a .dfu.gz file on the board's filesystem. See mboot/README.md for details.
2019-02-15 15:09:48 +11:00
Andrew Leech
4daee31706
stm32/qspi: Use static af functions for pin configuration.
...
This allows qspi pin configuration to work on any supported platform.
2019-02-14 13:42:08 +11:00
Damien George
be4e5b1f87
stm32/mboot/mphalport.h: Include genhdr/pins.h for access to pin names.
...
So that mboot configuration can use names like pyb_pin_X1.
2019-02-14 13:39:13 +11:00
Damien George
f38397ba8d
stm32/mboot/Makefile: Generate all pin header files from board pins.csv.
2019-02-14 13:36:32 +11:00
Damien George
7b2dc96251
stm32/boards/make-pins.py: Add cmdline options to support use by mboot.
2019-02-14 13:35:39 +11:00
Jolatomme
d1acca3c71
stm32/boards/NUCLEO_L476RG: Add support for RNG, DAC and CAN1.
...
PLLQ is changed to get CAN working, and I2C1 pins are changed to those
prescribed by the board.
2019-02-14 00:28:28 +11:00
Damien George
26a1ae295f
stm32/mboot/Makefile: Support specifying BOARD_DIR for custom board.
2019-02-14 00:01:14 +11:00
Mike Causer
812969d615
all: Change PYB message prefix to MPY.
...
Replaces "PYB: soft reboot" with "MPY: soft reboot", etc.
Having a consistent prefix across ports reduces the difference between
ports, which is a general goal. And this change won't break pyboard.py
because that tool only looks for "soft reboot".
2019-02-12 15:18:33 +11:00
Damien George
6e30f96b0b
ports: Convert legacy uppercase macro names to lowercase.
2019-02-12 14:54:51 +11:00
Damien George
019433a17e
stm32/pendsv: Fix inline asm constant and prefix with # character.
2019-02-12 14:50:27 +11:00
Damien George
3058d46892
stm32/gccollect: Use gchelper.h header instead of explicit declaration.
2019-02-12 14:38:30 +11:00
Damien George
e6d97e8a0b
stm32: Move gchelper assembler code to lib/utils for use by other ports.
2019-02-12 14:11:21 +11:00
Damien George
b546e4b7e9
stm32/pendsv: Fix NULL pointer when calling pendsv dispatch function.
2019-02-08 16:38:09 +11:00
Damien George
800871c0cb
stm32/modnetwork: Change lwIP polling to be based on background systick.
2019-02-08 16:38:09 +11:00
Damien George
4d214edae8
stm32/systick: Provide better compile-time configurability of slots.
2019-02-08 15:31:02 +11:00
Damien George
18cfa156d6
stm32/pendsv: Add ability to schedule callbacks at pendsv IRQ level.
2019-02-08 01:20:13 +11:00
Damien George
b178958c07
stm32/pendsv: Clean up pendsv IRQ handler and eliminate duplicate code.
2019-02-08 01:20:13 +11:00
Damien George
1bcf4afb10
stm32/systick: Make periodic systick callbacks use a cyclic func table.
...
Instead of checking each callback (currently storage and dma) explicitly
for each SysTick IRQ, use a simple circular function table indexed by the
lower bits of the millisecond tick counter. This allows callbacks to be
easily enabled/disabled at runtime, and scales well to a large number of
callbacks.
2019-02-08 01:20:13 +11:00