- Mar 27, 2018
-
-
Damien George authored
This patch forces a board to explicitly define TEXT1_ADDR in order to split the firmware into two separate pieces. Otherwise the default is now to produce only a single continuous firmware image with all ISR, text and data together.
-
Damien George authored
To make it clearer that these addresses are both for firmware text and that they have a prescribed ordering.
-
Damien George authored
This patch allows a particular board to independently specify the linker scripts for 1) the MCU memory layout; 2) how the different firmware sections are arranged in memory. Right now all boards follow the same layout with two separate firmware section, one for the ISR and one for the text and data. This leaves room for storage (filesystem data) to live between the firmware sections. The idea with this patch is to accommodate boards that don't have internal flash storage and only need to have one continuous firmware section. Thus the common.ld script is renamed to common_ifs.ld to make explicit that it is used for cases where the board has internal flash storage.
-
Damien George authored
Explicitly writing out the implementation of sys_tick_has_passed makes these bdev files independent of systick.c and more reusable as a general component. It also reduces the code size slightly. The irq.h header is added to spibdev.c because it uses declarations in that file (irq.h is usually included implicitly via mphalport.h but not always).
-
Damien George authored
Taking the address assumes that the pin is an object (eg a struct), but it could be a literal (eg an int). Not taking the address makes this driver more general for other uses.
-
Damien George authored
genhdr/pins.h is an internal header file that defines all of the pin objects and it's cleaner to have pin.h include it (where the struct's for these objects are defined) rather than an explicit include by every user.
-
- Mar 25, 2018
-
-
Damien George authored
The HAL requires strict aliasing optimisation to be turned on to function correctly (at least for the SD card driver on F4 MCUs). This optimisation was recently disabled with the addition of H7 support due to the H7 HAL having errors with the strict aliasing optimisation enabled. But this is now fixed in the latest stm32lib and so the optimisation can now be re-enabled. Thanks to @chuckbook for finding that there was a problem with the SD card on F4 MCUs with the strict aliasing optimisation disabled.
-
Damien George authored
-
- Mar 20, 2018
-
-
iabdalkader authored
There's no uSD Transceiver on this NUCLEO board.
-
iabdalkader authored
-
iabdalkader authored
Found the timing for full (400 KHz) and FM+ (1MHz) in the HAL examples, and used CubeMX to calculate the standard value (100KHz).
-
iabdalkader authored
-
- Mar 19, 2018
-
-
Damien George authored
-
Damien George authored
This API matches (as close as possible) how other pyb classes allow inplace operations, such as pyb.SPI.recv(buf).
-
Damien George authored
This seems to reduce the Travis build time by roughly 1 minute / 10%.
-
- Mar 16, 2018
-
-
Damien George authored
The CMSIS files for the STM32 range provide macros to distinguish between the different MCU series: STM32F4, STM32F7, STM32H7, STM32L4, etc. Prefer to use these instead of custom ones.
-
Damien George authored
-
Damien George authored
By using pre-compiled regexs, using startswith(), and explicitly checking for empty lines (of which around 30% of the input lines are), automatic qstr extraction is speed up by about 10%.
-
Damien George authored
Casting the Data array to a uint32_t* leads to strict aliasing errors on older gcc compilers.
-
Damien George authored
-
Damien George authored
-
Damien George authored
-
Damien George authored
This is useful for monitoring errors on the bus and knowing when a restart is needed.
-
- Mar 15, 2018
-
-
Damien George authored
-
Damien George authored
-
Damien George authored
-
Damien George authored
This patch provides a custom (and simple) function to receive data on the CAN bus, instead of the HAL function. This custom version calls mp_handle_pending() while waiting for messages, which, among other things, allows to interrupt the recv() method via KeyboardInterrupt.
-
Damien George authored
This board allows to test CAN support on the L4 series.
-
Damien George authored
-
Damien George authored
-
Damien George authored
-
- Mar 14, 2018
-
-
Damien George authored
This is instead of returning an empty bytes object, and matches how other ports handle non-blocking UART read behaviour.
-
- Mar 13, 2018
-
-
Damien George authored
mp_spiflash_read had a bug in it where "dest" and "addr" were incremented twice for a certain special case. This was fixed, which then allowed the function to be simplified to reduce code size. mp_spiflash_write had a bug in it where "src" was not incremented correctly for the case where the data to be written included the caching buffer as well as some bytes after this buffer. This was fixed and the resulting code simplified.
-
Damien George authored
If this function is used then objlist.h is already included to get the definition of mp_obj_list_t.
-
Damien George authored
-
Damien George authored
This function was never used for unicode/utf8 handling code, or anything else, so remove it to keep things clean.
-
- Mar 12, 2018
-
-
Damien George authored
Certain pins (eg 4 and 5) seem to behave differently at the hardware level when in open-drain mode: they glitch when set "high" and drive the pin active high for a brief period before disabling the output driver. To work around this make the pin an input to let it float high.
-
Tom Collins authored
-
- Mar 11, 2018
-
-
Damien George authored
Using an explicit read eliminates the need to invalidate the D-cache after enabling the memory mapping mode, which takes additional time.
-
Damien George authored
-