nuttx/arch/arm/src/stm32l4
Juha Niskanen b70ae9ae82 arch/arm/src/stm32l4/stm32l4_flash.c: fix FLASH_CONFIG_I to use dual-bank access
This is currently only used on STM32L4+ devices. Page erase in
flash_erase() function supports only dual-bank mode so it makes little
sense to configure this for unsupported single-bank mode.

Signed-off-by: Juha Niskanen <juha.niskanen@haltian.com>
2021-09-04 14:31:16 +08:00
..
hardware arch/arm/src/stm32l4/stm32l4_flash.c: fix FLASH_CONFIG_I to use dual-bank access 2021-09-04 14:31:16 +08:00
chip.h arch: arm: stm: fix nxstyle errors 2021-03-31 00:59:15 -05:00
Kconfig arch/arm/src/stm32l4/Kconfig: add new STM32L4+ chip types 2021-08-17 06:27:18 -07:00
Make.defs arch/cortex-m: replace arm_switchcontext to c-style 2021-08-22 14:44:01 +08:00
README.txt Remove exra whitespace from files (#189) 2020-01-31 09:24:49 -06:00
stm32l4_1wire.c author: Aleksandr Vyhovanec: update licenses to Apache 2021-09-03 17:38:33 +08:00
stm32l4_1wire.h author: Aleksandr Vyhovanec: update licenses to Apache 2021-09-03 17:38:33 +08:00
stm32l4_adc.c adc: add ioctl command to get the number of configured channels 2021-07-26 19:45:47 -07:00
stm32l4_adc.h arch: arm: stm32, stm32f0l0g0, stm32h7, stm32l4, stm32l5: Fix typos. 2021-07-25 14:16:22 -03:00
stm32l4_allocateheap.c arch: arm: stm: fix nxstyle errors 2021-03-31 00:59:15 -05:00
stm32l4_can.c Include assert.h in necessary place 2021-06-08 13:06:08 -07:00
stm32l4_can.h arch: arm: fixes for nxstyle errors 2021-03-22 19:28:38 -07:00
stm32l4_comp.c Don't include assert.h from public header file 2021-06-03 08:36:03 -07:00
stm32l4_comp.h arch: arm: stm: fix nxstyle errors 2021-03-31 00:59:15 -05:00
stm32l4_dac.c Don't include assert.h from public header file 2021-06-03 08:36:03 -07:00
stm32l4_dac.h arch: arm: stm: fix nxstyle errors 2021-03-31 00:59:15 -05:00
stm32l4_dbgmcu.h arch: arm: update licenses to Apache 2021-05-31 01:37:27 -05:00
stm32l4_dfsdm.c arch: arm: stm: fix nxstyle errors 2021-03-31 00:59:15 -05:00
stm32l4_dfsdm.h arch: arm: stm: fix nxstyle errors 2021-03-31 00:59:15 -05:00
stm32l4_dfumode.c sourcefiles: Fix relative path in file header 2021-03-09 23:18:28 +08:00
stm32l4_dfumode.h arch: arm: stm: Author Gregory Nutt: update licenses to Apache 2021-03-31 00:59:15 -05:00
stm32l4_dma.c arch: arm: stm: fix nxstyle errors 2021-03-31 00:59:15 -05:00
stm32l4_dma.h arch: arm: update licenses to Apache 2021-05-31 01:37:27 -05:00
stm32l4_dumpgpio.c Include assert.h in necessary place 2021-06-08 13:06:08 -07:00
stm32l4_exti_alarm.c arch: arm: update licenses to Apache 2021-05-31 01:37:27 -05:00
stm32l4_exti_comp.c arch: arm: stm: fix nxstyle errors 2021-03-31 00:59:15 -05:00
stm32l4_exti_gpio.c NuttX: Uros Platise: update licenses to Apache 2021-04-01 12:13:12 -05:00
stm32l4_exti_pwr.c arch/arm: Rename all up_*.h files to arm_*.h 2020-05-01 03:43:44 +01:00
stm32l4_exti_pwr.h Standardization of some function headers. 2018-03-13 09:52:27 -06:00
stm32l4_exti_wakeup.c arch: arm: update licenses to Apache 2021-05-31 01:37:27 -05:00
stm32l4_exti.h arch: arm: stm: fix nxstyle errors 2021-03-31 00:59:15 -05:00
stm32l4_firewall.c arch: Author Sebastien Lorquet: update licenses to Apache 2021-03-22 19:28:38 -07:00
stm32l4_firewall.h arch: arm: fixes for nxstyle errors 2021-03-22 19:28:38 -07:00
stm32l4_flash.c arch/arm/src/stm32l4/stm32l4_flash.c: fix FLASH_CONFIG_I to use dual-bank access 2021-09-04 14:31:16 +08:00
stm32l4_flash.h arch: arm: update licenses to Apache 2021-05-31 01:37:27 -05:00
stm32l4_freerun.c arch: arm: update licenses to Apache 2021-05-31 01:37:27 -05:00
stm32l4_freerun.h arch: arm: update licenses to Apache 2021-05-31 01:37:27 -05:00
stm32l4_fsmc.h Ensure all source code end with one and only one newline 2020-02-08 07:25:56 -06:00
stm32l4_gpio.c Fix typos in comments and identifiers 2021-07-19 22:55:30 -03:00
stm32l4_gpio.h Fix typos in comments and identifiers 2021-07-19 22:55:30 -03:00
stm32l4_hsi48.c arch: arm: stm: Author Gregory Nutt: update licenses to Apache 2021-03-31 00:59:15 -05:00
stm32l4_hsi48.h arch: arm: fixes for nxstyle errors 2021-03-22 19:28:38 -07:00
stm32l4_i2c.c Don't include assert.h from public header file 2021-06-03 08:36:03 -07:00
stm32l4_i2c.h arch: arm: stm: Author Gregory Nutt: update licenses to Apache 2021-03-31 00:59:15 -05:00
stm32l4_idle.c arch: arm: stm: Author Gregory Nutt: update licenses to Apache 2021-03-31 00:59:15 -05:00
stm32l4_irq.c Don't include assert.h from public header file 2021-06-03 08:36:03 -07:00
stm32l4_iwdg.c arch/arm/src/stm32l4: fix some printf format errors and warnings 2021-06-09 11:52:33 -05:00
stm32l4_lcd.h Ensure all source code end with one and only one newline 2020-02-08 07:25:56 -06:00
stm32l4_lowputc.c arch: arm: stm: fix nxstyle errors 2021-03-31 00:59:15 -05:00
stm32l4_lowputc.h arch: arm: stm: fix nxstyle errors 2021-03-31 00:59:15 -05:00
stm32l4_lptim.c Include assert.h in necessary place 2021-06-08 13:06:08 -07:00
stm32l4_lptim.h arch: arm: stm: fix nxstyle errors 2021-03-31 00:59:15 -05:00
stm32l4_lse.c arch: arm: update licenses to Apache 2021-05-31 01:37:27 -05:00
stm32l4_lsi.c arch: arm: update licenses to Apache 2021-05-31 01:37:27 -05:00
stm32l4_mpuinit.c arch: arm: stm: Author Gregory Nutt: update licenses to Apache 2021-03-31 00:59:15 -05:00
stm32l4_mpuinit.h arch: arm: stm: fix nxstyle errors 2021-03-31 00:59:15 -05:00
stm32l4_oneshot_lowerhalf.c arch: arm: update licenses to Apache 2021-05-31 01:37:27 -05:00
stm32l4_oneshot.c arch: arm: update licenses to Apache 2021-05-31 01:37:27 -05:00
stm32l4_oneshot.h arch: arm: update licenses to Apache 2021-05-31 01:37:27 -05:00
stm32l4_otgfs.h arch: arm: update licenses to Apache 2021-05-31 01:37:27 -05:00
stm32l4_otgfsdev.c arch/arm/src/stm32l4: fix some printf format errors and warnings 2021-06-09 11:52:33 -05:00
stm32l4_otgfshost.c Don't include assert.h from public header file 2021-06-03 08:36:03 -07:00
stm32l4_pm.h arch: arm: stm: fix nxstyle errors 2021-03-31 00:59:15 -05:00
stm32l4_pminitialize.c arch: arm: stm: Author Gregory Nutt: update licenses to Apache 2021-03-31 00:59:15 -05:00
stm32l4_pmlpr.c arch: arm: stm: fix nxstyle errors 2021-03-31 00:59:15 -05:00
stm32l4_pmsleep.c arch: arm: update licenses to Apache 2021-05-31 01:37:27 -05:00
stm32l4_pmstandby.c arch: arm: stm: fix nxstyle errors 2021-03-31 00:59:15 -05:00
stm32l4_pmstop.c arch: arm: stm: fix nxstyle errors 2021-03-31 00:59:15 -05:00
stm32l4_pwm.c pwm: add option to break the loops when using multiple PWM channels 2021-07-26 10:34:16 -03:00
stm32l4_pwm.h arch: arm: stm: fix nxstyle errors 2021-03-31 00:59:15 -05:00
stm32l4_pwr.c arch: arm: update licenses to Apache 2021-05-31 01:37:27 -05:00
stm32l4_pwr.h arch: arm: update licenses to Apache 2021-05-31 01:37:27 -05:00
stm32l4_qencoder.c Qencoder implementations for imxrt, stm32f7, stm32h7, stm32l4 and tivia don't support QEIOC_SETPOSMAX 2021-08-10 11:19:05 -03:00
stm32l4_qencoder.h arch: arm: stm: fix nxstyle errors 2021-03-31 00:59:15 -05:00
stm32l4_qspi.c arch: arm: update licenses to Apache 2021-05-31 01:37:27 -05:00
stm32l4_qspi.h arch: arm: update licenses to Apache 2021-05-31 01:37:27 -05:00
stm32l4_rcc.c arch: arm: fixes for nxstyle errors 2021-03-22 19:28:38 -07:00
stm32l4_rcc.h arch: arm: stm: fix nxstyle errors 2021-03-31 00:59:15 -05:00
stm32l4_rng.c arch: arm: stm32: Max Holtzberg: update licenses to Apache 2021-04-03 09:36:43 -05:00
stm32l4_rtc_lowerhalf.c Replace mktime with timegm in rtc and fs driver 2021-06-23 13:43:32 -03:00
stm32l4_rtc.c Don't include assert.h from public header file 2021-06-03 08:36:03 -07:00
stm32l4_rtc.h arch: arm: update licenses to Apache 2021-05-31 01:37:27 -05:00
stm32l4_sai.c sched/wdog: Remove MAX_WDOGPARMS and related stuff 2020-08-14 08:19:50 -06:00
stm32l4_sai.h arch: arm: stm: fix nxstyle errors 2021-03-31 00:59:15 -05:00
stm32l4_sdmmc.c arch: arm: update licenses to Apache 2021-05-31 01:37:27 -05:00
stm32l4_sdmmc.h arch: arm: update licenses to Apache 2021-05-31 01:37:27 -05:00
stm32l4_serial.c Don't include assert.h from public header file 2021-06-03 08:36:03 -07:00
stm32l4_spi.c Fix various typos in comments and documentation 2021-07-04 11:23:26 -05:00
stm32l4_spi.h arch: arm: stm: fix nxstyle errors 2021-03-31 00:59:15 -05:00
stm32l4_start.c arch/arm: Add NVIC_FPCCR_XXX macro to avoid the hard code value 2021-08-15 10:50:52 +02:00
stm32l4_start.h arch: arm: stm: fix nxstyle errors 2021-03-31 00:59:15 -05:00
stm32l4_tickless.c Don't include assert.h from public header file 2021-06-03 08:36:03 -07:00
stm32l4_tim_lowerhalf.c Don't include assert.h from public header file 2021-06-03 08:36:03 -07:00
stm32l4_tim.c Don't include assert.h from public header file 2021-06-03 08:36:03 -07:00
stm32l4_tim.h arch: arm: update licenses to Apache 2021-05-31 01:37:27 -05:00
stm32l4_timerisr.c arch: arm: stm: Author Gregory Nutt: update licenses to Apache 2021-03-31 00:59:15 -05:00
stm32l4_uart.h arch: arm: stm: fix nxstyle errors 2021-03-31 00:59:15 -05:00
stm32l4_uid.c arch: arm: stm: fix nxstyle errors 2021-03-31 00:59:15 -05:00
stm32l4_uid.h arch: arm: stm: fix nxstyle errors 2021-03-31 00:59:15 -05:00
stm32l4_usbdev.c Include assert.h in necessary place 2021-06-08 13:06:08 -07:00
stm32l4_usbdev.h arch: arm: stm: fix nxstyle errors 2021-03-31 00:59:15 -05:00
stm32l4_usbhost_trace.c arch: arm: update licenses to Apache 2021-05-31 01:37:27 -05:00
stm32l4_usbhost.h arch: arm: update licenses to Apache 2021-05-31 01:37:27 -05:00
stm32l4_userspace.c arch: arm: stm: Author Gregory Nutt: update licenses to Apache 2021-03-31 00:59:15 -05:00
stm32l4_userspace.h arch: arm: stm: Author Gregory Nutt: update licenses to Apache 2021-03-31 00:59:15 -05:00
stm32l4_waste.c NuttX: Uros Platise: update licenses to Apache 2021-04-01 12:13:12 -05:00
stm32l4_waste.h NuttX: Uros Platise: update licenses to Apache 2021-04-01 12:13:12 -05:00
stm32l4_wdg.h arch: arm: stm: Author Gregory Nutt: update licenses to Apache 2021-03-31 00:59:15 -05:00
stm32l4.h NuttX: Sebastien Lorquet: update licenses to Apache 2021-04-01 12:13:12 -05:00
stm32l4x3xx_rcc.c arch: arm: update licenses to Apache 2021-05-31 01:37:27 -05:00
stm32l4x5xx_rcc.c arch: arm: fixes for nxstyle errors 2021-03-22 19:28:38 -07:00
stm32l4x6xx_dma.c Don't include assert.h from public header file 2021-06-03 08:36:03 -07:00
stm32l4x6xx_rcc.c arch: Author Sebastien Lorquet: update licenses to Apache 2021-03-22 19:28:38 -07:00
stm32l4xrxx_dma.c Don't include assert.h from public header file 2021-06-03 08:36:03 -07:00
stm32l4xrxx_rcc.c arch: Author Sebastien Lorquet: update licenses to Apache 2021-03-22 19:28:38 -07:00

This is a port of NuttX to the STM32L4 Family

Used development boards are the Nucleo L476RG, Nucleo L496ZG,
Nucleo L452RE, Nucleo L432KC, STM32L4VG Discovery and
Motorola MDK.

Most code is copied and adapted from the STM32 and STM32F7 ports.

The various supported STM32L4 families are:

-----------------------------------------------------------------
| NuttX config      | Manual | Chips
|
| Not supported     | RM0392 | STM32L471xx
|
| STM32L4_STM32L4X1 | RM0394 | Subset of STM32L4_STM32L4X3 [*]
|
| STM32L4_STM32L4X2 | RM0394 | Subset of STM32L4_STM32L4X3 [*]
|
| STM32L4_STM32L4X3 | RM0394 | STM32L43xxx/44xxx/45xxx/46xxx
|
| STM32L4_STM32L4X5 | RM0351 | STM32L475xx (was RM0395 in past)
|
| STM32L4_STM32L4X6 | RM0351 | STM32L476xx, STM32L486xx,
|                              STM32L496xx, STM32L4A6xx
|
| STM32L4_STM32L4XR | RM0432 | STM32L4Rxxx, STM32L4Sxxx (STM32L4+)
------------------------------------------------------------------

[*]: Please avoid depending on CONFIG_STM32L4_STM32L4X1 and
     CONFIG_STM32L4_STM32L4X2 as the MCUs are of the same subfamily
     as CONFIG_STM32L4_STM32L4X3.

TODO list
---------

Peripherals with implementation in STM32 port:

IRQs     : OK
GPIO     : OK
EXTI     : OK
HSI      : OK
HSE      : OK
PLL      : Works @ 80 MHz
MSI      : OK
LSE      : OK
RCC      : All registers defined, peripherals enabled, basic clock working
SYSCTL   : All registers defined
USART    : Working in normal mode (no DMA, to be tested, code is written)
DMA      : works; at least tested with QSPI
SRAM2    : OK; can be included in MM region or left separate for special app
         : purposes
SPI      : OK, tested (including DMA)
I2C      : works
RTC      : works
QSPI     : works in polling, interrupt, DMA, and also memory-mapped modes
CAN      : OK, tested
OTGFS    : dev implemented, tested, outstanding issue with CDCACM
         : (ACM_SET_LINE_CODING, but otherwise works); host implemented,
         : only build smoke-tested (i.e. builds, but no functional testing
         : yet)
Timers   : Implemented, with PWM oneshot and freerun, tickless OS support.
         : Limited testing (focused on tickless OS so far), PWM and QE tested OK.
PM       : TODO, PWR registers defined
FSMC     : TODO
AES      : TODO
RNG      : works
CRC      : TODO (configurable polynomial)
WWDG     : TODO
IWDG     : works
SDMMC    : works
ADC      : works
DAC      : works
DMA2D    : TODO (Chrom-Art Accelerator for image manipulation)

New peripherals with implementation to be written from scratch.
These are Low Priority TODO items, unless someone requests or contributes
it.

FIREWALL : Code written, to be tested, requires support from ldscript
TSC      : TODO (Touch Screen Controller)
SWP      : TODO (Single wire protocol master, to connect with NFC enabled
         : SIM cards)
LPUART   : TODO (Low power UART working with LSE at low baud rates)
LPTIM    : Code written, to be tested (Low power TIMER)
OPAMP    : TODO (Analog operational amplifier)
COMP     : There is some code (Analog comparators)
DFSDM    : There is some code (Digital Filter for Sigma-Delta Modulators)
LCD      : TODO (Segment LCD controller)
SAIPLL   : works (PLL For Digital Audio interfaces, and other things)
SAI      : There is some code (Digital Audio interfaces, I2S, SPDIF, etc)
HASH     : TODO (SHA-1, SHA-224, SHA-256, HMAC)
DCMI     : TODO (Digital Camera interfaces)

New peripherals only in STM32L4+:

DMAMUX1    : TODO
DSI        : TODO
GFXMMU     : TODO
LTDC       : TODO
OCTOSPI    : TODO
OCTOSPIIOM : TODO