2023-08-24 15:00:13 +02:00
|
|
|
===================
|
|
|
|
ST STM32VLDiscovery
|
|
|
|
===================
|
2014-01-13 00:59:38 +01:00
|
|
|
|
2023-08-24 13:50:32 +02:00
|
|
|
This page discusses issues unique to NuttX configurations for the STMicro
|
2014-01-13 00:59:38 +01:00
|
|
|
STM32VLDiscovery (Value Line Discovery) board.
|
|
|
|
|
|
|
|
LEDs
|
|
|
|
====
|
|
|
|
|
2020-02-23 09:50:23 +01:00
|
|
|
It is assumed that STMicro STM32F100RB generic board board has one LED on PA0.
|
2014-01-13 00:59:38 +01:00
|
|
|
You should configure the port and pin number in
|
2019-08-19 17:16:08 +02:00
|
|
|
boards/arm/stm32/stm32vldiscovery/src/stm32vldiscovery.h. This LED is not used by
|
2014-01-13 00:59:38 +01:00
|
|
|
the board port unless CONFIG_ARCH_LEDS is defined. In that case, the usage by
|
|
|
|
the board port is defined in include/board.h and src/up_leds.c. The LED is used
|
2023-08-24 15:00:13 +02:00
|
|
|
to encode OS-related events as follows::
|
2014-01-13 00:59:38 +01:00
|
|
|
|
|
|
|
SYMBOL Meaning LED1*
|
|
|
|
green
|
|
|
|
------------------- ----------------------- -------
|
|
|
|
LED_STARTED NuttX has been started ON
|
|
|
|
LED_HEAPALLOCATE Heap has been allocated ON
|
|
|
|
LED_IRQSENABLED Interrupts enabled ON
|
|
|
|
LED_STACKCREATED Idle stack created ON
|
|
|
|
LED_INIRQ In an interrupt ON
|
|
|
|
LED_SIGNAL In a signal handler ON
|
|
|
|
LED_ASSERTION An assertion failed OFF
|
|
|
|
LED_PANIC The system has crashed OFF
|
|
|
|
|
|
|
|
So basically if the LED is off it means that there is a problem.
|
|
|
|
|
|
|
|
UART
|
|
|
|
====
|
|
|
|
|
|
|
|
Default USART/UART Configuration
|
|
|
|
--------------------------------
|
|
|
|
|
2023-08-24 15:00:13 +02:00
|
|
|
USART1 is enabled in all configurations (see \*/defconfig). RX and TX are
|
2014-01-13 00:59:38 +01:00
|
|
|
configured on pins PA10 and PA9, respectively. Then connect the RX pin of
|
|
|
|
your USB/Serial adapter to TX pin (PA9) and the TX pin of your adapter to
|
|
|
|
RX pin (PA10) of your board besides, of course, the GND pin.
|
|
|
|
|
2018-11-23 17:15:33 +01:00
|
|
|
"STMicro STM32F100RB generic" specific Configuration Options
|
2014-01-13 00:59:38 +01:00
|
|
|
============================================================
|
|
|
|
|
2023-08-24 15:00:13 +02:00
|
|
|
::
|
|
|
|
|
2014-01-13 00:59:38 +01:00
|
|
|
CONFIG_ARCH - Identifies the arch/ subdirectory. This should
|
|
|
|
be set to:
|
|
|
|
|
|
|
|
CONFIG_ARCH=arm
|
|
|
|
|
|
|
|
CONFIG_ARCH_family - For use in C code:
|
|
|
|
|
|
|
|
CONFIG_ARCH_ARM=y
|
|
|
|
|
|
|
|
CONFIG_ARCH_architecture - For use in C code:
|
|
|
|
|
|
|
|
CONFIG_ARCH_CORTEXM3=y
|
|
|
|
|
|
|
|
CONFIG_ARCH_CHIP - Identifies the arch/*/chip subdirectory
|
|
|
|
|
|
|
|
CONFIG_ARCH_CHIP=stm32
|
|
|
|
|
|
|
|
CONFIG_ARCH_CHIP_name - For use in C code to identify the exact
|
|
|
|
chip:
|
|
|
|
|
|
|
|
CONFIG_ARCH_CHIP_STM32F100RB=y
|
|
|
|
|
|
|
|
CONFIG_ARCH_BOARD_STM32_CUSTOM_CLOCKCONFIG - Enables special STM32 clock
|
|
|
|
configuration features.
|
|
|
|
|
|
|
|
CONFIG_ARCH_BOARD_STM32_CUSTOM_CLOCKCONFIG=n
|
|
|
|
|
2019-08-05 15:13:48 +02:00
|
|
|
CONFIG_ARCH_BOARD - Identifies the boards/ subdirectory and
|
2014-01-13 00:59:38 +01:00
|
|
|
hence, the board that supports the particular chip or SoC.
|
|
|
|
|
|
|
|
CONFIG_ARCH_BOARD=stm32vldiscovery
|
|
|
|
|
|
|
|
CONFIG_ARCH_BOARD_name - For use in C code
|
|
|
|
|
|
|
|
CONFIG_ARCH_BOARD_STM32VL_DISCOVERY=y
|
|
|
|
|
|
|
|
CONFIG_ARCH_LOOPSPERMSEC - Must be calibrated for correct operation
|
|
|
|
of delay loops
|
|
|
|
|
|
|
|
CONFIG_ENDIAN_BIG - define if big endian (default is little
|
|
|
|
endian)
|
|
|
|
|
|
|
|
CONFIG_RAM_SIZE - Describes the installed DRAM (SRAM in this case):
|
|
|
|
|
2018-11-23 17:15:33 +01:00
|
|
|
CONFIG_RAM_SIZE=8192 (8kB)
|
2014-01-13 00:59:38 +01:00
|
|
|
|
|
|
|
CONFIG_RAM_START - The start address of installed DRAM
|
|
|
|
|
|
|
|
CONFIG_RAM_START=0x20000000
|
|
|
|
|
|
|
|
CONFIG_ARCH_LEDS - Use LED to show state. Unique to boards that have LED(s)
|
|
|
|
|
|
|
|
CONFIG_ARCH_INTERRUPTSTACK - This architecture supports an interrupt
|
|
|
|
stack. If defined, this symbol is the size of the interrupt
|
|
|
|
stack in bytes. If not defined, the user task stacks will be
|
|
|
|
used during interrupt handling.
|
|
|
|
|
|
|
|
CONFIG_ARCH_STACKDUMP - Do stack dumps after assertions
|
|
|
|
|
2023-08-24 15:00:13 +02:00
|
|
|
Individual subsystems can be enabled::
|
|
|
|
|
|
|
|
AHB
|
|
|
|
----
|
|
|
|
CONFIG_STM32_CRC
|
|
|
|
CONFIG_STM32_DMA1
|
|
|
|
CONFIG_STM32_DMA2
|
|
|
|
|
|
|
|
APB1
|
|
|
|
----
|
|
|
|
CONFIG_STM32_TIM2
|
|
|
|
CONFIG_STM32_TIM3
|
|
|
|
CONFIG_STM32_TIM4
|
|
|
|
CONFIG_STM32_TIM5
|
|
|
|
CONFIG_STM32_TIM6
|
|
|
|
CONFIG_STM32_TIM7
|
|
|
|
CONFIG_STM32_TIM12
|
|
|
|
CONFIG_STM32_TIM13
|
|
|
|
CONFIG_STM32_TIM14
|
|
|
|
CONFIG_STM32_RTC
|
|
|
|
CONFIG_STM32_WWDG
|
|
|
|
CONFIG_STM32_IWDG
|
|
|
|
CONFIG_STM32_SPI2
|
|
|
|
CONFIG_STM32_SPI3
|
|
|
|
CONFIG_STM32_USART2
|
|
|
|
CONFIG_STM32_USART3
|
|
|
|
CONFIG_STM32_UART4
|
|
|
|
CONFIG_STM32_UART5
|
|
|
|
CONFIG_STM32_I2C1
|
|
|
|
CONFIG_STM32_I2C2
|
|
|
|
CONFIG_STM32_PWR -- Required for RTC
|
|
|
|
CONFIG_STM32_BKP -- Required for RTC
|
|
|
|
CONFIG_STM32_DAC1
|
|
|
|
CONFIG_STM32_DAC2
|
|
|
|
CONFIG_STM32_CEC
|
|
|
|
|
|
|
|
APB2
|
|
|
|
----
|
|
|
|
CONFIG_STM32_ADC1
|
|
|
|
CONFIG_STM32_TIM1
|
|
|
|
CONFIG_STM32_SPI1
|
|
|
|
CONFIG_STM32_USART1
|
|
|
|
CONFIG_STM32_TIM15
|
|
|
|
CONFIG_STM32_TIM16
|
|
|
|
CONFIG_STM32_TIM17
|
2014-01-13 00:59:38 +01:00
|
|
|
|
|
|
|
Timer devices may be used for different purposes. One special purpose is
|
|
|
|
to generate modulated outputs for such things as motor control. If CONFIG_STM32_TIMn
|
|
|
|
is defined (as above) then the following may also be defined to indicate that
|
|
|
|
the timer is intended to be used for pulsed output modulation, ADC conversion,
|
|
|
|
or DAC conversion. Note that ADC/DAC require two definition: Not only do you have
|
|
|
|
to assign the timer (n) for used by the ADC or DAC, but then you also have to
|
|
|
|
configure which ADC or DAC (m) it is assigned to.
|
|
|
|
|
|
|
|
CONFIG_STM32_TIMn_PWM Reserve timer n for use by PWM, n=1,..,17
|
|
|
|
CONFIG_STM32_TIMn_ADC Reserve timer n for use by ADC, n=1,..,17
|
|
|
|
CONFIG_STM32_TIMn_ADC1 Reserve timer n to trigger ADCm, n=1,..,17
|
|
|
|
CONFIG_STM32_TIMn_DAC Reserve timer n for use by DAC, n=1,..,17
|
|
|
|
CONFIG_STM32_TIMn_DACm Reserve timer n to trigger DACm, n=1,..,17, m=1,..,2
|
|
|
|
|
|
|
|
For each timer that is enabled for PWM usage, we need the following additional
|
|
|
|
configuration settings:
|
|
|
|
|
|
|
|
CONFIG_STM32_TIMx_CHANNEL - Specifies the timer output channel {1,..,4}
|
|
|
|
|
|
|
|
NOTE: The STM32 timers are each capable of generating different signals on
|
|
|
|
each of the four channels with different duty cycles. That capability is
|
|
|
|
not supported by this driver: Only one output channel per timer.
|
|
|
|
|
|
|
|
JTAG Enable settings (by default full SWJ is enabled):
|
|
|
|
|
|
|
|
CONFIG_STM32_JTAG_FULL_ENABLE - Enables full SWJ (JTAG-DP + SW-DP)
|
|
|
|
CONFIG_STM32_JTAG_NOJNTRST_ENABLE - Enables full SWJ (JTAG-DP + SW-DP)
|
|
|
|
but without JNTRST.
|
|
|
|
CONFIG_STM32_JTAG_SW_ENABLE - Set JTAG-DP disabled and SW-DP enabled
|
|
|
|
|
2018-11-23 17:15:33 +01:00
|
|
|
STMicro STM32F100RB generic specific device driver settings
|
2014-01-13 00:59:38 +01:00
|
|
|
|
|
|
|
CONFIG_U[S]ARTn_SERIAL_CONSOLE - selects the USARTn (n=1,2,3) or UART
|
|
|
|
m (m=4,5) for the console and ttys0 (default is the USART1).
|
|
|
|
CONFIG_U[S]ARTn_RXBUFSIZE - Characters are buffered as received.
|
|
|
|
This specific the size of the receive buffer
|
|
|
|
CONFIG_U[S]ARTn_TXBUFSIZE - Characters are buffered before
|
|
|
|
being sent. This specific the size of the transmit buffer
|
|
|
|
CONFIG_U[S]ARTn_BAUD - The configure BAUD of the UART. Must be
|
|
|
|
CONFIG_U[S]ARTn_BITS - The number of bits. Must be either 7 or 8.
|
|
|
|
CONFIG_U[S]ARTn_PARTIY - 0=no parity, 1=odd parity, 2=even parity
|
|
|
|
CONFIG_U[S]ARTn_2STOP - Two stop bits
|
|
|
|
|
|
|
|
Configurations
|
|
|
|
==============
|
|
|
|
|
2018-11-23 17:15:33 +01:00
|
|
|
Each STMicro STM32F100RB generic configuration is maintained in a sub-directory
|
2023-08-24 15:00:13 +02:00
|
|
|
and can be selected as follow::
|
2014-01-13 00:59:38 +01:00
|
|
|
|
2019-08-06 00:53:39 +02:00
|
|
|
tools/configure.sh stm32vldiscovery:<subdir>
|
2014-01-13 00:59:38 +01:00
|
|
|
|
|
|
|
Where <subdir> is one of the following:
|
|
|
|
|
2023-08-24 15:00:13 +02:00
|
|
|
nsh
|
|
|
|
---
|
|
|
|
|
|
|
|
Configures the NuttShell (nsh) located at apps/examples/nsh. The
|
|
|
|
Configuration enables only the serial NSH interfaces.
|
2014-01-13 00:59:38 +01:00
|
|
|
|
2023-08-24 15:00:13 +02:00
|
|
|
Default toolchain::
|
2014-01-13 00:59:38 +01:00
|
|
|
|
2022-09-15 12:17:26 +02:00
|
|
|
CONFIG_ARM_TOOLCHAIN_GNU_EABI=y : GNU EABI toolchain for Linux
|