nuttx/arch/arm/src/stm32l4
Xiang Xiao 4e6568c29a Fix Error: chip/stm32l4_dfumode.c:45:20: error: unused function 'rcc_reset'
and unused function 'apb_reset'

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-11-21 17:39:04 +08:00
..
hardware STM32L4 ADC: Change the way that hardware trigger configuration word for regular and injected channels are done. 2022-08-18 11:26:25 -03:00
chip.h arch: arm: stm: fix nxstyle errors 2021-03-31 00:59:15 -05:00
Kconfig STM32L4 ADC: Change the way that hardware trigger configuration word for regular and injected channels are done. 2022-08-18 11:26:25 -03:00
Make.defs arch/stm32xx/Kconfig: simplify PWM options and unify them among stm32 chips 2022-08-03 23:43:19 +08:00
README.txt arch/arm/src/stm32l4: LPUART1 support 2021-09-14 08:57:25 -07:00
stm32l4_1wire.c arch: Don't free the context if the reference doesn't equal zero 2022-11-14 09:34:04 +09:00
stm32l4_1wire.h arch/arm: Remove FAR and CODE from chip folder(3) 2022-05-03 16:50:52 +03:00
stm32l4_adc.c STM32L4 ADC: Change the way that hardware trigger configuration word for regular and injected channels are done. 2022-08-18 11:26:25 -03:00
stm32l4_adc.h STM32L4 ADC: Change the way that hardware trigger configuration word for regular and injected channels are done. 2022-08-18 11:26:25 -03:00
stm32l4_allocateheap.c arch/arm: Remove FAR and CODE from chip folder(3) 2022-05-03 16:50:52 +03:00
stm32l4_can.c arch/arm: Remove FAR and CODE from chip folder(3) 2022-05-03 16:50:52 +03:00
stm32l4_can.h arch/arm: Remove FAR and CODE from chip folder(3) 2022-05-03 16:50:52 +03:00
stm32l4_comp.c arch/arm: Remove FAR and CODE from chip folder(3) 2022-05-03 16:50:52 +03:00
stm32l4_comp.h arch/arm: Remove FAR and CODE from chip folder(3) 2022-05-03 16:50:52 +03:00
stm32l4_dac.c STM32L4 DAC: Added basic support for low level operations 2022-08-02 10:43:59 +08:00
stm32l4_dac.h STM32L4 DAC: Added basic support for low level operations 2022-08-02 10:43:59 +08:00
stm32l4_dbgmcu.h arch: arm: update licenses to Apache 2021-05-31 01:37:27 -05:00
stm32l4_dfsdm.c arch/arm: Remove FAR and CODE from chip folder(3) 2022-05-03 16:50:52 +03:00
stm32l4_dfsdm.h arch/arm: Remove FAR and CODE from chip folder(3) 2022-05-03 16:50:52 +03:00
stm32l4_dfumode.c Fix Error: chip/stm32l4_dfumode.c:45:20: error: unused function 'rcc_reset' 2022-11-21 17:39:04 +08:00
stm32l4_dfumode.h include: fix double include pre-processor guards 2022-01-16 11:11:14 -03:00
stm32l4_dma.c arch: arm: stm: fix nxstyle errors 2021-03-31 00:59:15 -05:00
stm32l4_dma.h arch/arm: Remove FAR and CODE from chip folder(3) 2022-05-03 16:50:52 +03:00
stm32l4_dumpgpio.c arch: Merge up_arch.h into up_internal.h 2022-03-14 09:32:17 +02:00
stm32l4_exti_alarm.c arch/arm: Remove FAR and CODE from chip folder(3) 2022-05-03 16:50:52 +03:00
stm32l4_exti_comp.c arch/arm: Remove FAR and CODE from chip folder(3) 2022-05-03 16:50:52 +03:00
stm32l4_exti_gpio.c arch/arm: Remove FAR and CODE from chip folder(3) 2022-05-03 16:50:52 +03:00
stm32l4_exti_pwr.c arch/arm: Remove FAR and CODE from chip folder(3) 2022-05-03 16:50:52 +03:00
stm32l4_exti_pwr.h arch: Haltian Ltd: update licenses to Apache 2021-11-15 06:49:32 -06:00
stm32l4_exti_wakeup.c arch/arm: Remove FAR and CODE from chip folder(3) 2022-05-03 16:50:52 +03:00
stm32l4_exti.h arch: arm: stm: fix nxstyle errors 2021-03-31 00:59:15 -05:00
stm32l4_firewall.c arch/arm: Remove FAR and CODE from chip folder(3) 2022-05-03 16:50:52 +03:00
stm32l4_firewall.h arch/arm: Remove FAR and CODE from chip folder(3) 2022-05-03 16:50:52 +03:00
stm32l4_flash.c Replace nxsem API when used as a lock with nxmutex API 2022-10-17 15:59:46 +09:00
stm32l4_flash.h arch: arm: update licenses to Apache 2021-05-31 01:37:27 -05:00
stm32l4_freerun.c arch/arm: Remove FAR and CODE from chip folder(3) 2022-05-03 16:50:52 +03:00
stm32l4_freerun.h arch/arm: Remove FAR and CODE from chip folder(3) 2022-05-03 16:50:52 +03:00
stm32l4_gpio.c arch: Merge up_arch.h into up_internal.h 2022-03-14 09:32:17 +02:00
stm32l4_gpio.h Fix typos in comments and identifiers 2021-07-19 22:55:30 -03:00
stm32l4_hsi48.c arch: Merge up_arch.h into up_internal.h 2022-03-14 09:32:17 +02:00
stm32l4_hsi48.h arch: arm: fixes for nxstyle errors 2021-03-22 19:28:38 -07:00
stm32l4_i2c.c arch: Don't free the context if the reference doesn't equal zero 2022-11-14 09:34:04 +09:00
stm32l4_i2c.h arch/arm: Remove FAR and CODE from chip folder(3) 2022-05-03 16:50:52 +03:00
stm32l4_idle.c power: add PM_IDLE_DOMAIN to pm.h and remove definations 2022-07-29 11:15:40 +08:00
stm32l4_irq.c arch/arm: Replace xxx_[bus|usage]fault with arm_[bus|usage]fault 2022-10-30 16:03:35 +01:00
stm32l4_iwdg.c arch/arm: Remove FAR and CODE from chip folder(3) 2022-05-03 16:50:52 +03:00
stm32l4_lowputc.c arch: Merge up_arch.h into up_internal.h 2022-03-14 09:32:17 +02:00
stm32l4_lowputc.h arch: arm: stm: fix nxstyle errors 2021-03-31 00:59:15 -05:00
stm32l4_lptim.c arch/arm: Remove FAR and CODE from chip folder(3) 2022-05-03 16:50:52 +03:00
stm32l4_lptim.h arch/arm: Remove FAR and CODE from chip folder(3) 2022-05-03 16:50:52 +03:00
stm32l4_lse.c arch: Merge up_arch.h into up_internal.h 2022-03-14 09:32:17 +02:00
stm32l4_lsi.c arch: Merge up_arch.h into up_internal.h 2022-03-14 09:32:17 +02: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: Remove FAR and CODE from chip folder(3) 2022-05-03 16:50:52 +03:00
stm32l4_oneshot.c arch/arm: Remove FAR and CODE from chip folder(3) 2022-05-03 16:50:52 +03:00
stm32l4_oneshot.h arch/arm: Remove FAR and CODE from chip folder(3) 2022-05-03 16:50:52 +03:00
stm32l4_otgfs.h arch/arm: Remove FAR and CODE from chip folder(3) 2022-05-03 16:50:52 +03:00
stm32l4_otgfsdev.c arch: Remove the extra space before the function prototype 2022-05-15 13:55:58 +03:00
stm32l4_otgfshost.c Fix the coding style and typo issue 2022-11-14 09:34:04 +09:00
stm32l4_pm.h arch: arm: stm: fix nxstyle errors 2021-03-31 00:59:15 -05:00
stm32l4_pminitialize.c pm: Move pm_initialize call from driver_initialize to xxx_pminitialize 2022-04-22 14:36:27 +03:00
stm32l4_pmlpr.c arch: Merge up_arch.h into up_internal.h 2022-03-14 09:32:17 +02:00
stm32l4_pmsleep.c arch: Merge up_arch.h into up_internal.h 2022-03-14 09:32:17 +02:00
stm32l4_pmstandby.c arch: Merge up_arch.h into up_internal.h 2022-03-14 09:32:17 +02:00
stm32l4_pmstop.c arch: Merge up_arch.h into up_internal.h 2022-03-14 09:32:17 +02:00
stm32l4_pwm.c chip: stm32l4: Correct config mistype 2022-06-07 03:20:57 +08:00
stm32l4_pwm.h arch/arm: Remove FAR and CODE from chip folder(3) 2022-05-03 16:50:52 +03:00
stm32l4_pwr.c Fix Error: chip/stm32l4_pwr.c:50:20: error: unused function 'stm32l4_pwr_modifyreg' 2022-11-21 17:39:04 +08:00
stm32l4_pwr.h arch/arm/src/stm32l4: peripheral voltage monitor support for vddio2 2022-03-22 21:08:29 +08:00
stm32l4_qencoder.c arch/arm: Remove FAR and CODE from chip folder(3) 2022-05-03 16:50:52 +03:00
stm32l4_qencoder.h arch/arm: Remove FAR and CODE from chip folder(3) 2022-05-03 16:50:52 +03:00
stm32l4_qspi.c Fix the coding style and typo issue 2022-11-14 09:34:04 +09:00
stm32l4_qspi.h arch/arm: Remove FAR and CODE from chip folder(3) 2022-05-03 16:50:52 +03:00
stm32l4_rcc.c arch: Merge up_arch.h into up_internal.h 2022-03-14 09:32:17 +02:00
stm32l4_rcc.h arch/armv[6|7|8]-m: Move _vectors to arm_internal.h to avoid the duplication 2022-09-21 22:23:11 +02:00
stm32l4_rng.c Initialize global mutext/sem by NXMUTEX_INITIALIZER and SEM_INITIALIZER 2022-11-14 09:34:04 +09:00
stm32l4_rtc_lowerhalf.c Fix the coding style and typo issue 2022-11-14 09:34:04 +09:00
stm32l4_rtc.c gmtimer: Fixed range of tm_yday. 2022-10-19 12:39:04 +08:00
stm32l4_rtc.h arch/arm: Remove FAR and CODE from chip folder(3) 2022-05-03 16:50:52 +03:00
stm32l4_sai.c Initialize global mutext/sem by NXMUTEX_INITIALIZER and SEM_INITIALIZER 2022-11-14 09:34:04 +09:00
stm32l4_sai.h arch: arm: stm: fix nxstyle errors 2021-03-31 00:59:15 -05:00
stm32l4_sdmmc.c Initialize global mutext/sem by NXMUTEX_INITIALIZER and SEM_INITIALIZER 2022-11-14 09:34:04 +09:00
stm32l4_sdmmc.h arch/arm: Remove FAR and CODE from chip folder(3) 2022-05-03 16:50:52 +03:00
stm32l4_serial.c power: add PM_IDLE_DOMAIN to pm.h and remove definations 2022-07-29 11:15:40 +08:00
stm32l4_spi.c Fix the coding style and typo issue 2022-11-14 09:34:04 +09:00
stm32l4_spi.h arch/arm: Remove FAR and CODE from chip folder(3) 2022-05-03 16:50:52 +03:00
stm32l4_start.c arch: Change the linker generated symbols from uint32_t to uint8_t * 2022-09-24 21:26:56 +02:00
stm32l4_start.h arch: arm: stm: fix nxstyle errors 2021-03-31 00:59:15 -05:00
stm32l4_tickless.c arch/arm: Remove FAR and CODE from chip folder(3) 2022-05-03 16:50:52 +03:00
stm32l4_tim_lowerhalf.c arch/arm: Remove FAR and CODE from chip folder(3) 2022-05-03 16:50:52 +03:00
stm32l4_tim.c arch/arm: Remove FAR and CODE from chip folder(3) 2022-05-03 16:50:52 +03:00
stm32l4_tim.h arch/arm: Remove FAR and CODE from chip folder(3) 2022-05-03 16:50:52 +03:00
stm32l4_timerisr.c arch: Merge up_arch.h into up_internal.h 2022-03-14 09:32:17 +02:00
stm32l4_uart.h arch/arm/src/stm32l4: LPUART1 support 2021-09-14 08:57:25 -07: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 Fix error: more '%' conversions than data arguments 2022-11-20 14:34:44 +01:00
stm32l4_usbdev.h arch/arm: Remove FAR and CODE from chip folder(3) 2022-05-03 16:50:52 +03:00
stm32l4_usbhost_trace.c Remove the private NULL, TRUE and FALSE macros 2022-07-31 22:12:57 +03: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: Remove FAR and CODE from chip folder(3) 2022-05-03 16:50:52 +03:00
stm32l4.h arch: arm: stm32l4: remove empty files 2022-04-20 21:05:45 +08:00
stm32l4x3xx_rcc.c stm32l4 fixing proper register name RCC_APB1ENR1_PWREN 2022-04-29 09:30:09 +03:00
stm32l4x5xx_rcc.c stm32l4 fixing proper register name RCC_APB1ENR1_PWREN 2022-04-29 09:30:09 +03:00
stm32l4x6xx_dma.c Initialize global mutext/sem by NXMUTEX_INITIALIZER and SEM_INITIALIZER 2022-11-14 09:34:04 +09:00
stm32l4x6xx_rcc.c stm32l4 RCC multi-bit field fixes 2022-04-29 09:30:09 +03:00
stm32l4xrxx_dma.c arch/arm: Remove FAR and CODE from chip folder(3) 2022-05-03 16:50:52 +03:00
stm32l4xrxx_rcc.c stm32l4 RCC multi-bit field fixes 2022-04-29 09:30:09 +03: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    : OK
DMA      : OK
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   : Experimental support (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    : OK
DSI        : TODO
GFXMMU     : TODO
LTDC       : TODO
OCTOSPI    : TODO
OCTOSPIIOM : TODO