b70ae9ae82
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> |
||
---|---|---|
.. | ||
hardware | ||
chip.h | ||
Kconfig | ||
Make.defs | ||
README.txt | ||
stm32l4_1wire.c | ||
stm32l4_1wire.h | ||
stm32l4_adc.c | ||
stm32l4_adc.h | ||
stm32l4_allocateheap.c | ||
stm32l4_can.c | ||
stm32l4_can.h | ||
stm32l4_comp.c | ||
stm32l4_comp.h | ||
stm32l4_dac.c | ||
stm32l4_dac.h | ||
stm32l4_dbgmcu.h | ||
stm32l4_dfsdm.c | ||
stm32l4_dfsdm.h | ||
stm32l4_dfumode.c | ||
stm32l4_dfumode.h | ||
stm32l4_dma.c | ||
stm32l4_dma.h | ||
stm32l4_dumpgpio.c | ||
stm32l4_exti_alarm.c | ||
stm32l4_exti_comp.c | ||
stm32l4_exti_gpio.c | ||
stm32l4_exti_pwr.c | ||
stm32l4_exti_pwr.h | ||
stm32l4_exti_wakeup.c | ||
stm32l4_exti.h | ||
stm32l4_firewall.c | ||
stm32l4_firewall.h | ||
stm32l4_flash.c | ||
stm32l4_flash.h | ||
stm32l4_freerun.c | ||
stm32l4_freerun.h | ||
stm32l4_fsmc.h | ||
stm32l4_gpio.c | ||
stm32l4_gpio.h | ||
stm32l4_hsi48.c | ||
stm32l4_hsi48.h | ||
stm32l4_i2c.c | ||
stm32l4_i2c.h | ||
stm32l4_idle.c | ||
stm32l4_irq.c | ||
stm32l4_iwdg.c | ||
stm32l4_lcd.h | ||
stm32l4_lowputc.c | ||
stm32l4_lowputc.h | ||
stm32l4_lptim.c | ||
stm32l4_lptim.h | ||
stm32l4_lse.c | ||
stm32l4_lsi.c | ||
stm32l4_mpuinit.c | ||
stm32l4_mpuinit.h | ||
stm32l4_oneshot_lowerhalf.c | ||
stm32l4_oneshot.c | ||
stm32l4_oneshot.h | ||
stm32l4_otgfs.h | ||
stm32l4_otgfsdev.c | ||
stm32l4_otgfshost.c | ||
stm32l4_pm.h | ||
stm32l4_pminitialize.c | ||
stm32l4_pmlpr.c | ||
stm32l4_pmsleep.c | ||
stm32l4_pmstandby.c | ||
stm32l4_pmstop.c | ||
stm32l4_pwm.c | ||
stm32l4_pwm.h | ||
stm32l4_pwr.c | ||
stm32l4_pwr.h | ||
stm32l4_qencoder.c | ||
stm32l4_qencoder.h | ||
stm32l4_qspi.c | ||
stm32l4_qspi.h | ||
stm32l4_rcc.c | ||
stm32l4_rcc.h | ||
stm32l4_rng.c | ||
stm32l4_rtc_lowerhalf.c | ||
stm32l4_rtc.c | ||
stm32l4_rtc.h | ||
stm32l4_sai.c | ||
stm32l4_sai.h | ||
stm32l4_sdmmc.c | ||
stm32l4_sdmmc.h | ||
stm32l4_serial.c | ||
stm32l4_spi.c | ||
stm32l4_spi.h | ||
stm32l4_start.c | ||
stm32l4_start.h | ||
stm32l4_tickless.c | ||
stm32l4_tim_lowerhalf.c | ||
stm32l4_tim.c | ||
stm32l4_tim.h | ||
stm32l4_timerisr.c | ||
stm32l4_uart.h | ||
stm32l4_uid.c | ||
stm32l4_uid.h | ||
stm32l4_usbdev.c | ||
stm32l4_usbdev.h | ||
stm32l4_usbhost_trace.c | ||
stm32l4_usbhost.h | ||
stm32l4_userspace.c | ||
stm32l4_userspace.h | ||
stm32l4_waste.c | ||
stm32l4_waste.h | ||
stm32l4_wdg.h | ||
stm32l4.h | ||
stm32l4x3xx_rcc.c | ||
stm32l4x5xx_rcc.c | ||
stm32l4x6xx_dma.c | ||
stm32l4x6xx_rcc.c | ||
stm32l4xrxx_dma.c | ||
stm32l4xrxx_rcc.c |
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