801b9d6e5f
Remove support for the Codesourcery, Atollic, DevKitArm, Raisonance, and CodeRed toolchains. Not only are these tools old and no longer used but they are all equivalent to standard ARM EABI toolchains. Retaining specific support has no effect (they are still supported, but now just as generic EABI toolchains).
219 lines
7.0 KiB
Plaintext
219 lines
7.0 KiB
Plaintext
README
|
|
======
|
|
|
|
This README discusses issues unique to NuttX configurations for the STMicro
|
|
STM32VLDiscovery (Value Line Discovery) board.
|
|
|
|
Contents
|
|
========
|
|
|
|
- LEDs
|
|
- UARTs
|
|
- "STMicro STM32F100RB generic" specific Configuration Options
|
|
- Configurations
|
|
|
|
LEDs
|
|
====
|
|
|
|
It is assumed that STMicro STM32F100RB generic board board has one LED on PA0.
|
|
You should configure the port and pin number in
|
|
boards/arm/stm32/stm32vldiscovery/src/stm32vldiscovery.h. This LED is not used by
|
|
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
|
|
to encode OS-related events as follows:
|
|
|
|
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
|
|
--------------------------------
|
|
|
|
USART1 is enabled in all configurations (see */defconfig). RX and TX are
|
|
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.
|
|
|
|
"STMicro STM32F100RB generic" specific Configuration Options
|
|
============================================================
|
|
|
|
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
|
|
|
|
CONFIG_ARCH_BOARD - Identifies the boards/ subdirectory and
|
|
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):
|
|
|
|
CONFIG_RAM_SIZE=8192 (8kB)
|
|
|
|
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
|
|
|
|
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
|
|
|
|
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
|
|
|
|
STMicro STM32F100RB generic specific device driver settings
|
|
|
|
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
|
|
==============
|
|
|
|
Each STMicro STM32F100RB generic configuration is maintained in a sub-directory
|
|
and can be selected as follow:
|
|
|
|
tools/configure.sh stm32vldiscovery:<subdir>
|
|
|
|
Where <subdir> is one of the following:
|
|
|
|
nsh:
|
|
---
|
|
Configures the NuttShell (nsh) located at apps/examples/nsh. The
|
|
Configuration enables only the serial NSH interfaces.
|
|
|
|
Default toolchain:
|
|
|
|
CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL=y : GNU EABI toolchain for Linux
|