nuttx/arch/arm/src/stm32l4
Xiang Xiao cde88cabcc Run codespell -w with the latest dictonary again
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-02-23 22:27:46 +01:00
..
hardware Run codespell -w with the latest dictonary again 2020-02-23 22:27:46 +01:00
chip.h Rename arch/arm/src/stm32l4/chip to arch/arm/src/stm32l4/hardware. 2019-05-24 18:06:01 -06:00
Kconfig Run codespell -w with the latest dictonary again 2020-02-23 22:27:46 +01:00
Make.defs arch/arm/src/armv7-m: Add ARMv7-M setjmp/longjump functions. 2019-08-06 15:59:19 -06:00
README.txt Remove exra whitespace from files (#189) 2020-01-31 09:24:49 -06:00
stm32l4_1wire.c Replace #include <semaphore.h> to #include <nuttx/semaphore.h> 2020-02-01 08:27:30 -06:00
stm32l4_1wire.h Fix some typos 2019-09-17 10:46:23 -06:00
stm32l4_adc.c Run codespell -w with the latest dictonary again 2020-02-23 22:27:46 +01:00
stm32l4_adc.h Rename arch/arm/src/stm32l4/chip to arch/arm/src/stm32l4/hardware. 2019-05-24 18:06:01 -06:00
stm32l4_allocateheap.c arch/arm/src/stm32l4: if SRAM3 is used as heap, do not power it off in stop 2 mode. 2019-06-13 05:52:40 -06:00
stm32l4_can.c Run codespell -w with the latest dictonary again 2020-02-23 22:27:46 +01:00
stm32l4_can.h Fix use of undefined pp-token #errror, other typos. 2019-09-19 18:19:18 -06:00
stm32l4_comp.c Squashed commit of the following: 2019-02-27 08:41:08 -06:00
stm32l4_comp.h Rename arch/arm/src/stm32l4/chip to arch/arm/src/stm32l4/hardware. 2019-05-24 18:06:01 -06:00
stm32l4_dac.c Run codespell -w with the latest dictonary again 2020-02-23 22:27:46 +01:00
stm32l4_dac.h Rename arch/arm/src/stm32l4/chip to arch/arm/src/stm32l4/hardware. 2019-05-24 18:06:01 -06:00
stm32l4_dbgmcu.h Rename arch/arm/src/stm32l4/chip to arch/arm/src/stm32l4/hardware. 2019-05-24 18:06:01 -06:00
stm32l4_dfsdm.c Merged in jussi_kivilinna/nuttx/stm32l4r_add_dmamux (pull request #1062) 2019-10-25 13:05:56 +00:00
stm32l4_dfsdm.h Rename arch/arm/src/stm32l4/chip to arch/arm/src/stm32l4/hardware. 2019-05-24 18:06:01 -06:00
stm32l4_dma.c Remove exra whitespace from files (#189) 2020-01-31 09:24:49 -06:00
stm32l4_dma.h Merged in jussi_kivilinna/nuttx/stm32l4r_add_dmamux (pull request #1062) 2019-10-25 13:05:56 +00:00
stm32l4_dumpgpio.c arch/arm/src/stm32l4/stm32l4_dumpgpio.c: Fix using wrong GPIO enable register. 2019-09-27 06:30:45 -06:00
stm32l4_exti_alarm.c Fix some typos. Also minor update to stm32f7/nucleo-144/README.txt and stm32l4/nucleo-l496zg/README.txt board documentation. 2019-09-05 08:12:50 -06:00
stm32l4_exti_comp.c Fix some typos. Also minor update to stm32f7/nucleo-144/README.txt and stm32l4/nucleo-l496zg/README.txt board documentation. 2019-09-05 08:12:50 -06:00
stm32l4_exti_gpio.c
stm32l4_exti_pwr.c
stm32l4_exti_pwr.h
stm32l4_exti_wakeup.c
stm32l4_exti.h Rename arch/arm/src/stm32l4/chip to arch/arm/src/stm32l4/hardware. 2019-05-24 18:06:01 -06:00
stm32l4_firewall.c arch/arm/src/stm32l4/stm32l4_firewall.c: Correct a test to determine if an address lies in FLASH or not. Improper mask caused test to always fail. 2019-10-02 13:00:55 -06:00
stm32l4_firewall.h Rename arch/arm/src/stm32l4/chip to arch/arm/src/stm32l4/hardware. 2019-05-24 18:06:01 -06:00
stm32l4_flash.c Replace #include <semaphore.h> to #include <nuttx/semaphore.h> 2020-02-01 08:27:30 -06:00
stm32l4_flash.h Rename arch/arm/src/stm32l4/chip to arch/arm/src/stm32l4/hardware. 2019-05-24 18:06:01 -06:00
stm32l4_freerun.c
stm32l4_freerun.h
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 Run codespell -w with the latest dictonary again 2020-02-23 22:27:46 +01:00
stm32l4_gpio.h Run codespell -w with the latest dictonary again 2020-02-23 22:27:46 +01:00
stm32l4_hsi48.c arch/arm/src/stm32l4/stm32l4_hsi48.c: Enable CRS_CR_CEN with CRS_CR_AUTOTRIMEN 2019-05-31 07:20:49 -06:00
stm32l4_hsi48.h arch/arm/src/stm32l4: Make STM32L4 CRS synchronization source board configurable. 2019-05-21 10:21:57 -06:00
stm32l4_i2c.c Replace #include <semaphore.h> to #include <nuttx/semaphore.h> 2020-02-01 08:27:30 -06:00
stm32l4_i2c.h Fix some typos 2019-09-17 10:46:23 -06:00
stm32l4_idle.c Fix wait loop and void cast (#24) 2020-01-02 10:54:43 -06:00
stm32l4_irq.c Run codespell -w with the latest dictonary again 2020-02-23 22:27:46 +01:00
stm32l4_iwdg.c Fix wait loop and void cast (#24) 2020-01-02 10:54:43 -06: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 Remove exra whitespace from files (#189) 2020-01-31 09:24:49 -06:00
stm32l4_lowputc.h Remove exra whitespace from files (#189) 2020-01-31 09:24:49 -06:00
stm32l4_lptim.c STM32 F4 LPTIM: Cosmetic changes from application of tools/nxstyle to all files modified in last PR. 2019-11-25 08:04:45 -06:00
stm32l4_lptim.h Rename arch/arm/src/stm32l4/chip to arch/arm/src/stm32l4/hardware. 2019-05-24 18:06:01 -06:00
stm32l4_lse.c Fix wait loop and void cast (#24) 2020-01-02 10:54:43 -06:00
stm32l4_lsi.c
stm32l4_mpuinit.c Remove exra whitespace from files (#189) 2020-01-31 09:24:49 -06:00
stm32l4_mpuinit.h
stm32l4_oneshot_lowerhalf.c Run codespell -w with the latest dictonary again 2020-02-23 22:27:46 +01:00
stm32l4_oneshot.c Fix wait loop and void cast (#24) 2020-01-02 10:54:43 -06:00
stm32l4_oneshot.h
stm32l4_otgfs.h Merged in jussi_kivilinna/nuttx/stm32l4r_otgfs (pull request #1063) 2019-10-25 13:07:15 +00:00
stm32l4_otgfsdev.c Run codespell -w with the latest dictonary again 2020-02-23 22:27:46 +01:00
stm32l4_otgfshost.c Run codespell -w with the latest dictonary again 2020-02-23 22:27:46 +01:00
stm32l4_pm.h
stm32l4_pminitialize.c Fix some typos. Also minor update to stm32f7/nucleo-144/README.txt and stm32l4/nucleo-l496zg/README.txt board documentation. 2019-09-05 08:12:50 -06:00
stm32l4_pmlpr.c
stm32l4_pmsleep.c
stm32l4_pmstandby.c
stm32l4_pmstop.c Run codespell -w with the latest dictonary again 2020-02-23 22:27:46 +01:00
stm32l4_pwm.c Run codespell -w with the latest dictonary again 2020-02-23 22:27:46 +01:00
stm32l4_pwm.h Run codespell -w with the latest dictonary again 2020-02-23 22:27:46 +01:00
stm32l4_pwr.c arch/arm/src/stm32l4/stm32l4_pwr.c: Enable PWR peripheral for setting USV 2019-05-31 07:21:24 -06:00
stm32l4_pwr.h Rename arch/arm/src/stm32l4/chip to arch/arm/src/stm32l4/hardware. 2019-05-24 18:06:01 -06:00
stm32l4_qencoder.c Run codespell -w with the latest dictonary again 2020-02-23 22:27:46 +01:00
stm32l4_qencoder.h Remove exra whitespace from files (#189) 2020-01-31 09:24:49 -06:00
stm32l4_qspi.c Run codespell -w with the latest dictonary again 2020-02-23 22:27:46 +01:00
stm32l4_qspi.h
stm32l4_rcc.c Run codespell -w with the latest dictonary again 2020-02-23 22:27:46 +01:00
stm32l4_rcc.h Run codespell -w with the latest dictonary again 2020-02-23 22:27:46 +01:00
stm32l4_rng.c Fix wait loop and void cast (#24) 2020-01-02 10:54:43 -06:00
stm32l4_rtc_lowerhalf.c Fix wait loop and void cast (#24) 2020-01-02 10:54:43 -06:00
stm32l4_rtc.c Remove TIME_EXTENDED option to more conform C standard 2020-01-23 08:17:22 -06:00
stm32l4_rtc.h Rename arch/arm/src/stm32l4/chip to arch/arm/src/stm32l4/hardware. 2019-05-24 18:06:01 -06:00
stm32l4_sai.c Run codespell -w with the latest dictonary again 2020-02-23 22:27:46 +01:00
stm32l4_sai.h Rename arch/arm/src/stm32l4/chip to arch/arm/src/stm32l4/hardware. 2019-05-24 18:06:01 -06:00
stm32l4_sdmmc.c Run codespell -w with the latest dictonary again 2020-02-23 22:27:46 +01:00
stm32l4_sdmmc.h Remove exra whitespace from files (#189) 2020-01-31 09:24:49 -06:00
stm32l4_serial.c Run codespell -w with the latest dictonary again 2020-02-23 22:27:46 +01:00
stm32l4_spi.c Run codespell -w with the latest dictonary again 2020-02-23 22:27:46 +01:00
stm32l4_spi.h Remove exra whitespace from files (#189) 2020-01-31 09:24:49 -06:00
stm32l4_start.c arch/arm/src: Remove dependency on CONFIG_ARCH_FPU for inclusion of nvic.h in all other *_start.c files. 2019-04-25 07:17:10 -06:00
stm32l4_start.h Run codespell -w with the latest dictonary again 2020-02-23 22:27:46 +01:00
stm32l4_tickless.c Call xxx_timer_initialize from clock subsystem 2020-02-08 07:40:06 -06:00
stm32l4_tim_lowerhalf.c
stm32l4_tim.c Replace #include <semaphore.h> to #include <nuttx/semaphore.h> 2020-02-01 08:27:30 -06:00
stm32l4_tim.h Rename arch/arm/src/stm32l4/chip to arch/arm/src/stm32l4/hardware. 2019-05-24 18:06:01 -06:00
stm32l4_timerisr.c Call xxx_timer_initialize from clock subsystem 2020-02-08 07:40:06 -06:00
stm32l4_uart.h Remove exra whitespace from files (#189) 2020-01-31 09:24:49 -06:00
stm32l4_uid.c Rename arch/arm/src/stm32l4/chip to arch/arm/src/stm32l4/hardware. 2019-05-24 18:06:01 -06:00
stm32l4_uid.h
stm32l4_usbdev.c Run codespell -w with the latest dictonary again 2020-02-23 22:27:46 +01:00
stm32l4_usbdev.h Remove exra whitespace from files (#189) 2020-01-31 09:24:49 -06:00
stm32l4_usbhost_trace.c
stm32l4_usbhost.h Rename arch/arm/src/stm32l4/chip to arch/arm/src/stm32l4/hardware. 2019-05-24 18:06:01 -06:00
stm32l4_userspace.c Remove exra whitespace from files (#189) 2020-01-31 09:24:49 -06:00
stm32l4_userspace.h
stm32l4_waste.c
stm32l4_waste.h
stm32l4_wdg.h Rename arch/arm/src/stm32l4/chip to arch/arm/src/stm32l4/hardware. 2019-05-24 18:06:01 -06:00
stm32l4.h
stm32l4x3xx_rcc.c Fix minor typos in docs and comments. 2019-09-29 12:52:20 -06:00
stm32l4x5xx_rcc.c arch/arm/src/stm32l4/stm32l4_i2c.c: Add support for 16 and 120 MHz timings, board can use HSI16 clock for I2C 2019-05-28 09:23:40 -06:00
stm32l4x6xx_dma.c Run codespell -w with the latest dictonary again 2020-02-23 22:27:46 +01:00
stm32l4x6xx_rcc.c arch/arm/src/stm32l4/stm32l4x6xx_rcc.c: This fix is needed if HSI clock is selected. Otherwise when waking up from STOP mode, the MSI clock is selected instead of the HSI clock. 2019-11-07 14:14:09 -06:00
stm32l4xrxx_dma.c Refine the preprocessor conditional guard style (#190) 2020-01-31 19:07:39 +01:00
stm32l4xrxx_rcc.c Merged in jussi_kivilinna/nuttx/stm32l4r_add_dmamux (pull request #1062) 2019-10-25 13:05:56 +00: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