Fix STM32L15X vector definitions; Fix STM32L-Discovery LED controls. The NSH configuration is now fully functional on the STM32L-Discovery board.

This commit is contained in:
Gregory Nutt 2013-05-21 11:25:30 -06:00
parent 9ea58951b4
commit e4d906960a
9 changed files with 301 additions and 225 deletions

View File

@ -4752,4 +4752,7 @@
* nuttx/arch/arm/src/lm/chip/lm_flash.h and nuttx/arch/arm/src/lm/lm_flash.c:
Add support for TI/Stellaris internal FLASH MTD driver. From Max
Holtzberg (2013-5-20).
* arm/src/stm32/chip/stm32l15xxx_vectors.h: After correcting errors in the
vector definition file, the STM32L-Discovery NSH port now seems to be
fully functional. Also fixed an error that was causing the LEDs to be
controlled incorrectly (2013-5-21).

View File

@ -8,7 +8,7 @@
<tr align="center" bgcolor="#e4e4e4">
<td>
<h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1>
<p>Last Updated: May 6, 2013</p>
<p>Last Updated: May 21, 2013</p>
</td>
</tr>
</table>
@ -1554,7 +1554,7 @@
<li><a href="#arm920t">ARM920T</a> (1) </li>
<li><a href="#arm926ejs">ARM926EJS</a> (3) </li>
<li><a href="#armcortexm0">ARM Cortex-M0/M0+</a> (2)</li>
<li><a href="#armcortexm3">ARM Cortex-M3</a> (17)</li>
<li><a href="#armcortexm3">ARM Cortex-M3</a> (18)</li>
<li><a href="#armcortexm4">ARM Cortex-M4</a> (7)</li>
</ul>
<li>Atmel AVR
@ -1906,7 +1906,7 @@ $ size nuttx
</pre></ul>
<p>
NuttX, the NSH application, and GCC libraries use 34.2KB of FLASH leaving 93.8KB of FLASH (72%) free from additional application development.
Static SRAM usage is about 1.2KB (&lt;4%) and leaves 13.8KB (86%) available for heap at runtime.
Static SRAM usage is about 1.2KB (&lt;4%) and leaves 14.8KB (86%) available for heap at runtime.
SRAM usage at run-time can be shown with the NSH <code>free</code> command:
</p>
<ul><pre>
@ -2093,6 +2093,69 @@ nsh>
</ul>
</td>
</tr>
<tr>
<td><br></td>
<td><hr></td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<b>STMicro STM32L152 (STM32L &quot;EnergyLite&quot; Line)</b>.
This is a port of NuttX to the STMicro STM32L-Discovery development board.
The STM32L-Discovery board is based on the STM32L152RBT6 MCU (128KB FLASH and 16KB of SRAM).
</p>
<ul>
<p>
The STM32L-Discovery and 32L152CDISCOVERY kits are functionally equivalent.
The difference is the internal Flash memory size (STM32L152RBT6 with 128 Kbytes or STM32L152RCT6 with 256 Kbytes).
Both boards feature:
</p>
<ul>
<li>An ST-LINK/V2 embedded debug tool interface,</li>
<li>LCD (24 segments, 4 commons),</li>
<li>LEDs,</li>
<li>Pushbuttons,</li>
<li>A linear touch sensor, and</li>
<li>Four touchkeys.</li>
</ul>
<p>
<b>STATUS</b>.
Initial support for the STM32L-Discovery was released in NuttX-6.28.
This initial support is very minimal:
There is a configuration using the NuttShell (<a href="NuttShell.html">NSH</a>) that might be the basis for an application development.
As of this writing, more device drivers are needed to make this a more complete port.
</p>
<p>
<b>Memory Usage</b>.
For a full-featured RTOS such as NuttX, providing support in a usable and meaningful way within the tiny memories of the STM32L152RBT6 demonstrates the scalability of NuttX. The STM32L152RBT6 comes in a 64-pin package and has 128KB FLASH and 16KB of SRAM.
</p>
<p>
Static memory usage can be shown with <code>size</code> command:
</p>
<ul><pre>
$ size nuttx
text data bss dec hex filename
39664 132 1124 40920 9fd8 nuttx
</pre></ul>
<p>
NuttX, the NSH application, and GCC libraries use 38.7KB of FLASH leaving 89.3B of FLASH (70%) free from additional application development.
Static SRAM usage is about 1.2KB (&lt;4%) and leaves 14.8KB (86%) available for heap at runtime.
</p>
SRAM usage at run-time can be shown with the NSH <code>free</code> command:
<ul><pre>
NuttShell (NSH) NuttX-6.27
nsh> free
total used free largest
Mem: 14096 3928 10168 10168
nsh>
</pre></ul>
<p>
You can see that 9.9KB (62%) of SRAM heap is staill available for further application development while NSH is running.
</p>
</td>
</tr>
<tr>
<td><br></td>
<td><hr></td>

View File

@ -54,58 +54,58 @@
* definition that provides the number of supported vectors.
*/
# ifdef CONFIG_ARMV7M_CMNVECTOR
#ifdef CONFIG_ARMV7M_CMNVECTOR
/* Reserve 61 interrupt table entries for I/O interrupts. */
# define ARMV7M_PERIPHERAL_INTERRUPTS 45
# define ARMV7M_PERIPHERAL_INTERRUPTS 45
#else
# VECTOR(stm32_wwdg, STM32_IRQ_WWDG) /* 0: Window Watchdog interrupt */
# VECTOR(stm32_pvd, STM32_IRQ_PVD) /* 1: PVD through EXTI Line detection interrupt */
# VECTOR(stm32_tamper, STM32_IRQ_TAMPER) /* 2: Tamper through EXTI line interrupt */
# VECTOR(stm32_rtc_wkup, STM32_IRQ_RTC_WKUP) /* 3: RTC Wakeup through EXTI line interrupt */
# VECTOR(stm32_flash, STM32_IRQ_FLASH) /* 4: Flash global interrupt */
# VECTOR(stm32_rcc, STM32_IRQ_RCC) /* 5: RCC global interrupt */
# VECTOR(stm32_exti0, STM32_IRQ_EXTI0) /* 6: EXTI Line 0 interrupt */
# VECTOR(stm32_exti1, STM32_IRQ_EXTI1) /* 7: EXTI Line 1 interrupt */
# VECTOR(stm32_exti2, STM32_IRQ_EXTI2) /* 8: EXTI Line 2 interrupt */
# VECTOR(stm32_exti3, STM32_IRQ_EXTI3) /* 9: EXTI Line 3 interrupt */
# VECTOR(stm32_exti4, STM32_IRQ_EXTI4) /* 10: EXTI Line 4 interrupt */
# VECTOR(stm32_dma1ch1, STM32_IRQ_DMA1CH1) /* 11: DMA1 channel 1 global interrupt */
# VECTOR(stm32_dma1ch2, STM32_IRQ_DMA1CH2) /* 12: DMA1 channel 2 global interrupt */
# VECTOR(stm32_dma1ch3, STM32_IRQ_DMA1CH3) /* 13: DMA1 channel 3 global interrupt */
# VECTOR(stm32_dma1ch4, STM32_IRQ_DMA1CH4) /* 14: DMA1 channel 4 global interrupt */
# VECTOR(stm32_dma1ch5, STM32_IRQ_DMA1CH5) /* 15: DMA1 channel 5 global interrupt */
# VECTOR(stm32_dma1ch6, STM32_IRQ_DMA1CH6) /* 16: DMA1 channel 6 global interrupt */
# VECTOR(stm32_dma1ch7, STM32_IRQ_DMA1CH7) /* 17: DMA1 channel 7 global interrupt */
# VECTOR(stm32_adc1, STM32_IRQ_ADC1) /* 18: ADC1 global interrupt */
# VECTOR(stm32_usbhp, STM32_IRQ_USBHP) /* 19: USB High Priority interrupts */
# VECTOR(stm32_usblp, STM32_IRQ_USBLP) /* 20: USB Low Priority interrupt */
# VECTOR(stm32_dac, STM32_IRQ_DAC) /* 21: DAC interrupt */
# VECTOR(stm32_comp, STM32_IRQ_COMP) /* 22: Comparator wakeup through EXTI interrupt */
# VECTOR(stm32_exti95, STM32_IRQ_EXTI95) /* 23: EXTI Line[9:5] interrupts */
# VECTOR(stm32_ldc, STM32_IRQ_LDC) /* 24: LCD global interrupt */
# VECTOR(stm32_tim9, STM32_IRQ_TIM9) /* 25: TIM9 global interrupt */
# VECTOR(stm32_tim10, STM32_IRQ_TIM10) /* 26: TIM10 global interrupt */
# VECTOR(stm32_tim11, STM32_IRQ_TIM11) /* 27: TIM11 global interrupt */
# VECTOR(stm32_tim2, STM32_IRQ_TIM2) /* 28: TIM2 global interrupt */
# VECTOR(stm32_tim3, STM32_IRQ_TIM3) /* 29: TIM3 global interrupt */
# VECTOR(stm32_tim4, STM32_IRQ_TIM4) /* 30: TIM4 global interrupt */
# VECTOR(stm32_i2c1ev, STM32_IRQ_I2C1EV) /* 31: I2C1 event interrupt */
# VECTOR(stm32_i2c1er, STM32_IRQ_I2C1ER) /* 32: I2C1 error interrupt */
# VECTOR(stm32_i2c2ev, STM32_IRQ_I2C2EV) /* 33: I2C2 event interrupt */
# VECTOR(stm32_i2c2er, STM32_IRQ_I2C2ER) /* 34: I2C2 error interrupt */
# VECTOR(stm32_spi1, STM32_IRQ_SPI1) /* 35: SPI1 global interrupt */
# VECTOR(stm32_spi2, STM32_IRQ_SPI2) /* 36: SPI2 global interrupt */
# VECTOR(stm32_usart1, STM32_IRQ_USART1) /* 37: USART1 global interrupt */
# VECTOR(stm32_usart2, STM32_IRQ_USART2) /* 38: USART2 global interrupt */
# VECTOR(stm32_usart3, STM32_IRQ_USART3) /* 39: USART3 global interrupt */
# VECTOR(stm32_exti1510, STM32_IRQ_EXTI1510) /* 40: EXTI Line[15:10] interrupts */
# VECTOR(stm32_rtcalrm, STM32_IRQ_RTCALRM) /* 41: RTC alarm through EXTI line interrupt */
# VECTOR(stm32_usbwkup, STM32_IRQ_USBWKUP) /* 42: USB wakeup from suspend through EXTI line interrupt */
# VECTOR(stm32_tim6, STM32_IRQ_TIM6) /* 43: TIM6 global interrupt */
# VECTOR(stm32_TIM7, STM32_IRQ_TIM7) /* 44: TIM7 global interrupt */
VECTOR(stm32_wwdg, STM32_IRQ_WWDG) /* 0: Window Watchdog interrupt */
VECTOR(stm32_pvd, STM32_IRQ_PVD) /* 1: PVD through EXTI Line detection interrupt */
VECTOR(stm32_tamper, STM32_IRQ_TAMPER) /* 2: Tamper through EXTI line interrupt */
VECTOR(stm32_rtc_wkup, STM32_IRQ_RTC_WKUP) /* 3: RTC Wakeup through EXTI line interrupt */
VECTOR(stm32_flash, STM32_IRQ_FLASH) /* 4: Flash global interrupt */
VECTOR(stm32_rcc, STM32_IRQ_RCC) /* 5: RCC global interrupt */
VECTOR(stm32_exti0, STM32_IRQ_EXTI0) /* 6: EXTI Line 0 interrupt */
VECTOR(stm32_exti1, STM32_IRQ_EXTI1) /* 7: EXTI Line 1 interrupt */
VECTOR(stm32_exti2, STM32_IRQ_EXTI2) /* 8: EXTI Line 2 interrupt */
VECTOR(stm32_exti3, STM32_IRQ_EXTI3) /* 9: EXTI Line 3 interrupt */
VECTOR(stm32_exti4, STM32_IRQ_EXTI4) /* 10: EXTI Line 4 interrupt */
VECTOR(stm32_dma1ch1, STM32_IRQ_DMA1CH1) /* 11: DMA1 channel 1 global interrupt */
VECTOR(stm32_dma1ch2, STM32_IRQ_DMA1CH2) /* 12: DMA1 channel 2 global interrupt */
VECTOR(stm32_dma1ch3, STM32_IRQ_DMA1CH3) /* 13: DMA1 channel 3 global interrupt */
VECTOR(stm32_dma1ch4, STM32_IRQ_DMA1CH4) /* 14: DMA1 channel 4 global interrupt */
VECTOR(stm32_dma1ch5, STM32_IRQ_DMA1CH5) /* 15: DMA1 channel 5 global interrupt */
VECTOR(stm32_dma1ch6, STM32_IRQ_DMA1CH6) /* 16: DMA1 channel 6 global interrupt */
VECTOR(stm32_dma1ch7, STM32_IRQ_DMA1CH7) /* 17: DMA1 channel 7 global interrupt */
VECTOR(stm32_adc1, STM32_IRQ_ADC1) /* 18: ADC1 global interrupt */
VECTOR(stm32_usbhp, STM32_IRQ_USBHP) /* 19: USB High Priority interrupts */
VECTOR(stm32_usblp, STM32_IRQ_USBLP) /* 20: USB Low Priority interrupt */
VECTOR(stm32_dac, STM32_IRQ_DAC) /* 21: DAC interrupt */
VECTOR(stm32_comp, STM32_IRQ_COMP) /* 22: Comparator wakeup through EXTI interrupt */
VECTOR(stm32_exti95, STM32_IRQ_EXTI95) /* 23: EXTI Line[9:5] interrupts */
VECTOR(stm32_ldc, STM32_IRQ_LDC) /* 24: LCD global interrupt */
VECTOR(stm32_tim9, STM32_IRQ_TIM9) /* 25: TIM9 global interrupt */
VECTOR(stm32_tim10, STM32_IRQ_TIM10) /* 26: TIM10 global interrupt */
VECTOR(stm32_tim11, STM32_IRQ_TIM11) /* 27: TIM11 global interrupt */
VECTOR(stm32_tim2, STM32_IRQ_TIM2) /* 28: TIM2 global interrupt */
VECTOR(stm32_tim3, STM32_IRQ_TIM3) /* 29: TIM3 global interrupt */
VECTOR(stm32_tim4, STM32_IRQ_TIM4) /* 30: TIM4 global interrupt */
VECTOR(stm32_i2c1ev, STM32_IRQ_I2C1EV) /* 31: I2C1 event interrupt */
VECTOR(stm32_i2c1er, STM32_IRQ_I2C1ER) /* 32: I2C1 error interrupt */
VECTOR(stm32_i2c2ev, STM32_IRQ_I2C2EV) /* 33: I2C2 event interrupt */
VECTOR(stm32_i2c2er, STM32_IRQ_I2C2ER) /* 34: I2C2 error interrupt */
VECTOR(stm32_spi1, STM32_IRQ_SPI1) /* 35: SPI1 global interrupt */
VECTOR(stm32_spi2, STM32_IRQ_SPI2) /* 36: SPI2 global interrupt */
VECTOR(stm32_usart1, STM32_IRQ_USART1) /* 37: USART1 global interrupt */
VECTOR(stm32_usart2, STM32_IRQ_USART2) /* 38: USART2 global interrupt */
VECTOR(stm32_usart3, STM32_IRQ_USART3) /* 39: USART3 global interrupt */
VECTOR(stm32_exti1510, STM32_IRQ_EXTI1510) /* 40: EXTI Line[15:10] interrupts */
VECTOR(stm32_rtcalrm, STM32_IRQ_RTCALRM) /* 41: RTC alarm through EXTI line interrupt */
VECTOR(stm32_usbwkup, STM32_IRQ_USBWKUP) /* 42: USB wakeup from suspend through EXTI line interrupt */
VECTOR(stm32_tim6, STM32_IRQ_TIM6) /* 43: TIM6 global interrupt */
VECTOR(stm32_TIM7, STM32_IRQ_TIM7) /* 44: TIM7 global interrupt */
#endif
/* Vectors for medium+ density devices */
@ -116,67 +116,67 @@
* definition that provides the number of supported vectors.
*/
# ifdef CONFIG_ARMV7M_CMNVECTOR
#ifdef CONFIG_ARMV7M_CMNVECTOR
/* Reserve 61 interrupt table entries for I/O interrupts. */
# define ARMV7M_PERIPHERAL_INTERRUPTS 54
# define ARMV7M_PERIPHERAL_INTERRUPTS 54
#else
# VECTOR(stm32_wwdg, STM32_IRQ_WWDG) /* 0: Window Watchdog interrupt */
# VECTOR(stm32_pvd, STM32_IRQ_PVD) /* 1: PVD through EXTI Line detection interrupt */
# VECTOR(stm32_tamper, STM32_IRQ_TAMPER) /* 2: Tamper through EXTI line interrupt */
# VECTOR(stm32_rtc_wkup, STM32_IRQ_RTC_WKUP) /* 3: RTC Wakeup through EXTI line interrupt */
# VECTOR(stm32_flash, STM32_IRQ_FLASH) /* 4: Flash global interrupt */
# VECTOR(stm32_rcc, STM32_IRQ_RCC) /* 5: RCC global interrupt */
# VECTOR(stm32_exti0, STM32_IRQ_EXTI0) /* 6: EXTI Line 0 interrupt */
# VECTOR(stm32_exti1, STM32_IRQ_EXTI1) /* 7: EXTI Line 1 interrupt */
# VECTOR(stm32_exti2, STM32_IRQ_EXTI2) /* 8: EXTI Line 2 interrupt */
# VECTOR(stm32_exti3, STM32_IRQ_EXTI3) /* 9: EXTI Line 3 interrupt */
# VECTOR(stm32_exti4, STM32_IRQ_EXTI4) /* 10: EXTI Line 4 interrupt */
# VECTOR(stm32_dma1ch1, STM32_IRQ_DMA1CH1) /* 11: DMA1 channel 1 global interrupt */
# VECTOR(stm32_dma1ch2, STM32_IRQ_DMA1CH2) /* 12: DMA1 channel 2 global interrupt */
# VECTOR(stm32_dma1ch3, STM32_IRQ_DMA1CH3) /* 13: DMA1 channel 3 global interrupt */
# VECTOR(stm32_dma1ch4, STM32_IRQ_DMA1CH4) /* 14: DMA1 channel 4 global interrupt */
# VECTOR(stm32_dma1ch5, STM32_IRQ_DMA1CH5) /* 15: DMA1 channel 5 global interrupt */
# VECTOR(stm32_dma1ch6, STM32_IRQ_DMA1CH6) /* 16: DMA1 channel 6 global interrupt */
# VECTOR(stm32_dma1ch7, STM32_IRQ_DMA1CH7) /* 17: DMA1 channel 7 global interrupt */
# VECTOR(stm32_adc1, STM32_IRQ_ADC1) /* 18: ADC1 global interrupt */
# VECTOR(stm32_usbhp, STM32_IRQ_USBHP) /* 19: USB High Priority interrupts */
# VECTOR(stm32_usblp, STM32_IRQ_USBLP) /* 20: USB Low Priority interrupt */
# VECTOR(stm32_dac, STM32_IRQ_DAC) /* 21: DAC interrupt */
# VECTOR(stm32_comp, STM32_IRQ_COMP) /* 22: Comparator wakeup through EXTI interrupt */
# VECTOR(stm32_exti95, STM32_IRQ_EXTI95) /* 23: EXTI Line[9:5] interrupts */
# VECTOR(stm32_ldc, STM32_IRQ_LDC) /* 24: LCD global interrupt */
# VECTOR(stm32_tim9, STM32_IRQ_TIM9) /* 25: TIM9 global interrupt */
# VECTOR(stm32_tim10, STM32_IRQ_TIM10) /* 26: TIM10 global interrupt */
# VECTOR(stm32_tim11, STM32_IRQ_TIM11) /* 27: TIM11 global interrupt */
# VECTOR(stm32_tim2, STM32_IRQ_TIM2) /* 28: TIM2 global interrupt */
# VECTOR(stm32_tim3, STM32_IRQ_TIM3) /* 29: TIM3 global interrupt */
# VECTOR(stm32_tim4, STM32_IRQ_TIM4) /* 30: TIM4 global interrupt */
# VECTOR(stm32_i2c1ev, STM32_IRQ_I2C1EV) /* 31: I2C1 event interrupt */
# VECTOR(stm32_i2c1er, STM32_IRQ_I2C1ER) /* 32: I2C1 error interrupt */
# VECTOR(stm32_i2c2ev, STM32_IRQ_I2C2EV) /* 33: I2C2 event interrupt */
# VECTOR(stm32_i2c2er, STM32_IRQ_I2C2ER) /* 34: I2C2 error interrupt */
# VECTOR(stm32_spi1, STM32_IRQ_SPI1) /* 35: SPI1 global interrupt */
# VECTOR(stm32_spi2, STM32_IRQ_SPI2) /* 36: SPI2 global interrupt */
# VECTOR(stm32_usart1, STM32_IRQ_USART1) /* 37: USART1 global interrupt */
# VECTOR(stm32_usart2, STM32_IRQ_USART2) /* 38: USART2 global interrupt */
# VECTOR(stm32_usart3, STM32_IRQ_USART3) /* 39: USART3 global interrupt */
# VECTOR(stm32_exti1510, STM32_IRQ_EXTI1510) /* 40: EXTI Line[15:10] interrupts */
# VECTOR(stm32_rtcalrm, STM32_IRQ_RTCALRM) /* 41: RTC alarm through EXTI line interrupt */
# VECTOR(stm32_usbwkup, STM32_IRQ_USBWKUP) /* 42: USB wakeup from suspend through EXTI line interrupt */
# VECTOR(stm32_tim6, STM32_IRQ_TIM6) /* 43: TIM6 global interrupt */
# VECTOR(stm32_tim7, STM32_IRQ_TIM7) /* 44: TIM7 global interrupt */
# VECTOR(stm32_tim5, STM32_IRQ_TIM5) /* 45: TIM5 global interrupt */
# VECTOR(stm32_spi3, STM32_IRQ_SPI3) /* 46: SPI3 global interrupt */
# VECTOR(stm32_dma2ch1, STM32_IRQ_DMA2CH1) /* 47: DMA2 channel 1 global interrupt */
# VECTOR(stm32_dma2ch2, STM32_IRQ_DMA2CH2) /* 48: DMA2 channel 2 global interrupt */
# VECTOR(stm32_dma2ch3, STM32_IRQ_DMA2CH3) /* 49: DMA2 channel 3 global interrupt */
# VECTOR(stm32_dma2ch4, STM32_IRQ_DMA2CH4) /* 50: DMA2 channel 4 global interrupt */
# VECTOR(stm32_dma2ch5, STM32_IRQ_DMA2CH5) /* 51: DMA2 channel 5 global interrupt */
# VECTOR(stm32_aes, STM32_IRQ_AES) /* 52: AES global interrupt */
# VECTOR(stm32_compacq, STM32_IRQ_COMPACQ) /* 53: Comparator Channel Acquisition Interrupt */
VECTOR(stm32_wwdg, STM32_IRQ_WWDG) /* 0: Window Watchdog interrupt */
VECTOR(stm32_pvd, STM32_IRQ_PVD) /* 1: PVD through EXTI Line detection interrupt */
VECTOR(stm32_tamper, STM32_IRQ_TAMPER) /* 2: Tamper through EXTI line interrupt */
VECTOR(stm32_rtc_wkup, STM32_IRQ_RTC_WKUP) /* 3: RTC Wakeup through EXTI line interrupt */
VECTOR(stm32_flash, STM32_IRQ_FLASH) /* 4: Flash global interrupt */
VECTOR(stm32_rcc, STM32_IRQ_RCC) /* 5: RCC global interrupt */
VECTOR(stm32_exti0, STM32_IRQ_EXTI0) /* 6: EXTI Line 0 interrupt */
VECTOR(stm32_exti1, STM32_IRQ_EXTI1) /* 7: EXTI Line 1 interrupt */
VECTOR(stm32_exti2, STM32_IRQ_EXTI2) /* 8: EXTI Line 2 interrupt */
VECTOR(stm32_exti3, STM32_IRQ_EXTI3) /* 9: EXTI Line 3 interrupt */
VECTOR(stm32_exti4, STM32_IRQ_EXTI4) /* 10: EXTI Line 4 interrupt */
VECTOR(stm32_dma1ch1, STM32_IRQ_DMA1CH1) /* 11: DMA1 channel 1 global interrupt */
VECTOR(stm32_dma1ch2, STM32_IRQ_DMA1CH2) /* 12: DMA1 channel 2 global interrupt */
VECTOR(stm32_dma1ch3, STM32_IRQ_DMA1CH3) /* 13: DMA1 channel 3 global interrupt */
VECTOR(stm32_dma1ch4, STM32_IRQ_DMA1CH4) /* 14: DMA1 channel 4 global interrupt */
VECTOR(stm32_dma1ch5, STM32_IRQ_DMA1CH5) /* 15: DMA1 channel 5 global interrupt */
VECTOR(stm32_dma1ch6, STM32_IRQ_DMA1CH6) /* 16: DMA1 channel 6 global interrupt */
VECTOR(stm32_dma1ch7, STM32_IRQ_DMA1CH7) /* 17: DMA1 channel 7 global interrupt */
VECTOR(stm32_adc1, STM32_IRQ_ADC1) /* 18: ADC1 global interrupt */
VECTOR(stm32_usbhp, STM32_IRQ_USBHP) /* 19: USB High Priority interrupts */
VECTOR(stm32_usblp, STM32_IRQ_USBLP) /* 20: USB Low Priority interrupt */
VECTOR(stm32_dac, STM32_IRQ_DAC) /* 21: DAC interrupt */
VECTOR(stm32_comp, STM32_IRQ_COMP) /* 22: Comparator wakeup through EXTI interrupt */
VECTOR(stm32_exti95, STM32_IRQ_EXTI95) /* 23: EXTI Line[9:5] interrupts */
VECTOR(stm32_ldc, STM32_IRQ_LDC) /* 24: LCD global interrupt */
VECTOR(stm32_tim9, STM32_IRQ_TIM9) /* 25: TIM9 global interrupt */
VECTOR(stm32_tim10, STM32_IRQ_TIM10) /* 26: TIM10 global interrupt */
VECTOR(stm32_tim11, STM32_IRQ_TIM11) /* 27: TIM11 global interrupt */
VECTOR(stm32_tim2, STM32_IRQ_TIM2) /* 28: TIM2 global interrupt */
VECTOR(stm32_tim3, STM32_IRQ_TIM3) /* 29: TIM3 global interrupt */
VECTOR(stm32_tim4, STM32_IRQ_TIM4) /* 30: TIM4 global interrupt */
VECTOR(stm32_i2c1ev, STM32_IRQ_I2C1EV) /* 31: I2C1 event interrupt */
VECTOR(stm32_i2c1er, STM32_IRQ_I2C1ER) /* 32: I2C1 error interrupt */
VECTOR(stm32_i2c2ev, STM32_IRQ_I2C2EV) /* 33: I2C2 event interrupt */
VECTOR(stm32_i2c2er, STM32_IRQ_I2C2ER) /* 34: I2C2 error interrupt */
VECTOR(stm32_spi1, STM32_IRQ_SPI1) /* 35: SPI1 global interrupt */
VECTOR(stm32_spi2, STM32_IRQ_SPI2) /* 36: SPI2 global interrupt */
VECTOR(stm32_usart1, STM32_IRQ_USART1) /* 37: USART1 global interrupt */
VECTOR(stm32_usart2, STM32_IRQ_USART2) /* 38: USART2 global interrupt */
VECTOR(stm32_usart3, STM32_IRQ_USART3) /* 39: USART3 global interrupt */
VECTOR(stm32_exti1510, STM32_IRQ_EXTI1510) /* 40: EXTI Line[15:10] interrupts */
VECTOR(stm32_rtcalrm, STM32_IRQ_RTCALRM) /* 41: RTC alarm through EXTI line interrupt */
VECTOR(stm32_usbwkup, STM32_IRQ_USBWKUP) /* 42: USB wakeup from suspend through EXTI line interrupt */
VECTOR(stm32_tim6, STM32_IRQ_TIM6) /* 43: TIM6 global interrupt */
VECTOR(stm32_tim7, STM32_IRQ_TIM7) /* 44: TIM7 global interrupt */
VECTOR(stm32_tim5, STM32_IRQ_TIM5) /* 45: TIM5 global interrupt */
VECTOR(stm32_spi3, STM32_IRQ_SPI3) /* 46: SPI3 global interrupt */
VECTOR(stm32_dma2ch1, STM32_IRQ_DMA2CH1) /* 47: DMA2 channel 1 global interrupt */
VECTOR(stm32_dma2ch2, STM32_IRQ_DMA2CH2) /* 48: DMA2 channel 2 global interrupt */
VECTOR(stm32_dma2ch3, STM32_IRQ_DMA2CH3) /* 49: DMA2 channel 3 global interrupt */
VECTOR(stm32_dma2ch4, STM32_IRQ_DMA2CH4) /* 50: DMA2 channel 4 global interrupt */
VECTOR(stm32_dma2ch5, STM32_IRQ_DMA2CH5) /* 51: DMA2 channel 5 global interrupt */
VECTOR(stm32_aes, STM32_IRQ_AES) /* 52: AES global interrupt */
VECTOR(stm32_compacq, STM32_IRQ_COMPACQ) /* 53: Comparator Channel Acquisition Interrupt */
#endif
/* Vectors for high density devices */
@ -187,70 +187,70 @@
* definition that provides the number of supported vectors.
*/
# ifdef CONFIG_ARMV7M_CMNVECTOR
#ifdef CONFIG_ARMV7M_CMNVECTOR
/* Reserve 61 interrupt table entries for I/O interrupts. */
# define ARMV7M_PERIPHERAL_INTERRUPTS 57
# define ARMV7M_PERIPHERAL_INTERRUPTS 57
#else
# VECTOR(stm32_wwdg, STM32_IRQ_WWDG) /* 0: Window Watchdog interrupt */
# VECTOR(stm32_pvd, STM32_IRQ_PVD) /* 1: PVD through EXTI Line detection interrupt */
# VECTOR(stm32_tamper, STM32_IRQ_TAMPER) /* 2: Tamper through EXTI line interrupt */
# VECTOR(stm32_rtc_wkup, STM32_IRQ_RTC_WKUP) /* 3: RTC Wakeup through EXTI line interrupt */
# VECTOR(stm32_flash, STM32_IRQ_FLASH) /* 4: Flash global interrupt */
# VECTOR(stm32_rcc, STM32_IRQ_RCC) /* 5: RCC global interrupt */
# VECTOR(stm32_exti0, STM32_IRQ_EXTI0) /* 6: EXTI Line 0 interrupt */
# VECTOR(stm32_exti1, STM32_IRQ_EXTI1) /* 7: EXTI Line 1 interrupt */
# VECTOR(stm32_exti2, STM32_IRQ_EXTI2) /* 8: EXTI Line 2 interrupt */
# VECTOR(stm32_exti3, STM32_IRQ_EXTI3) /* 9: EXTI Line 3 interrupt */
# VECTOR(stm32_exti4, STM32_IRQ_EXTI4) /* 10: EXTI Line 4 interrupt */
# VECTOR(stm32_dma1ch1, STM32_IRQ_DMA1CH1) /* 11: DMA1 channel 1 global interrupt */
# VECTOR(stm32_dma1ch2, STM32_IRQ_DMA1CH2) /* 12: DMA1 channel 2 global interrupt */
# VECTOR(stm32_dma1ch3, STM32_IRQ_DMA1CH3) /* 13: DMA1 channel 3 global interrupt */
# VECTOR(stm32_dma1ch4, STM32_IRQ_DMA1CH4) /* 14: DMA1 channel 4 global interrupt */
# VECTOR(stm32_dma1ch5, STM32_IRQ_DMA1CH5) /* 15: DMA1 channel 5 global interrupt */
# VECTOR(stm32_dma1ch6, STM32_IRQ_DMA1CH6) /* 16: DMA1 channel 6 global interrupt */
# VECTOR(stm32_dma1ch7, STM32_IRQ_DMA1CH7) /* 17: DMA1 channel 7 global interrupt */
# VECTOR(stm32_adc1, STM32_IRQ_ADC1) /* 18: ADC1 global interrupt */
# VECTOR(stm32_usbhp, STM32_IRQ_USBHP) /* 19: USB High Priority interrupts */
# VECTOR(stm32_usblp, STM32_IRQ_USBLP) /* 20: USB Low Priority interrupt */
# VECTOR(stm32_dac, STM32_IRQ_DAC) /* 21: DAC interrupt */
# VECTOR(stm32_comp, STM32_IRQ_COMP) /* 22: Comparator wakeup through EXTI interrupt */
# VECTOR(stm32_exti95, STM32_IRQ_EXTI95) /* 23: EXTI Line[9:5] interrupts */
# VECTOR(stm32_ldc, STM32_IRQ_LDC) /* 24: LCD global interrupt */
# VECTOR(stm32_tim9, STM32_IRQ_TIM9) /* 25: TIM9 global interrupt */
# VECTOR(stm32_tim10, STM32_IRQ_TIM10) /* 26: TIM10 global interrupt */
# VECTOR(stm32_tim11, STM32_IRQ_TIM11) /* 27: TIM11 global interrupt */
# VECTOR(stm32_tim2, STM32_IRQ_TIM2) /* 28: TIM2 global interrupt */
# VECTOR(stm32_tim3, STM32_IRQ_TIM3) /* 29: TIM3 global interrupt */
# VECTOR(stm32_tim4, STM32_IRQ_TIM4) /* 30: TIM4 global interrupt */
# VECTOR(stm32_i2c1ev, STM32_IRQ_I2C1EV) /* 31: I2C1 event interrupt */
# VECTOR(stm32_i2c1er, STM32_IRQ_I2C1ER) /* 32: I2C1 error interrupt */
# VECTOR(stm32_i2c2ev, STM32_IRQ_I2C2EV) /* 33: I2C2 event interrupt */
# VECTOR(stm32_i2c2er, STM32_IRQ_I2C2ER) /* 34: I2C2 error interrupt */
# VECTOR(stm32_spi1, STM32_IRQ_SPI1) /* 35: SPI1 global interrupt */
# VECTOR(stm32_spi2, STM32_IRQ_SPI2) /* 36: SPI2 global interrupt */
# VECTOR(stm32_usart1, STM32_IRQ_USART1) /* 37: USART1 global interrupt */
# VECTOR(stm32_usart2, STM32_IRQ_USART2) /* 38: USART2 global interrupt */
# VECTOR(stm32_usart3, STM32_IRQ_USART3) /* 39: USART3 global interrupt */
# VECTOR(stm32_exti1510, STM32_IRQ_EXTI1510) /* 40: EXTI Line[15:10] interrupts */
# VECTOR(stm32_rtcalrm, STM32_IRQ_RTCALRM) /* 41: RTC alarm through EXTI line interrupt */
# VECTOR(stm32_usbwkup, STM32_IRQ_USBWKUP) /* 42: USB wakeup from suspend through EXTI line interrupt */
# VECTOR(stm32_tim6, STM32_IRQ_TIM6) /* 43: TIM6 global interrupt */
# VECTOR(stm32_tim7, STM32_IRQ_TIM7) /* 44: TIM7 global interrupt */
# VECTOR(stm32_sdio, STM32_IRQ_SDIO) /* 45: SDIO Global interrupt */
# VECTOR(stm32_tim5, STM32_IRQ_TIM5) /* 46: TIM5 global interrupt */
# VECTOR(stm32_spi3, STM32_IRQ_SPI3) /* 47: SPI3 global interrupt */
# VECTOR(stm32_usart4, STM32_IRQ_USART4) /* 48: USART4 global interrupt */
# VECTOR(stm32_usart5, STM32_IRQ_USART5) /* 49: USART5 global interrupt */
# VECTOR(stm32_dma2ch1, STM32_IRQ_DMA2CH1) /* 50: DMA2 channel 1 global interrupt */
# VECTOR(stm32_dma2ch2, STM32_IRQ_DMA2CH2) /* 51: DMA2 channel 2 global interrupt */
# VECTOR(stm32_dma2ch3, STM32_IRQ_DMA2CH3) /* 52: DMA2 channel 3 global interrupt */
# VECTOR(stm32_dma2ch4, STM32_IRQ_DMA2CH4) /* 53: DMA2 channel 4 global interrupt */
# VECTOR(stm32_dma2ch5, STM32_IRQ_DMA2CH5) /* 54: DMA2 channel 5 global interrupt */
# VECTOR(stm32_aes, STM32_IRQ_AES) /* 55: AES global interrupt */
# VECTOR(stm32_compacq, STM32_IRQ_COMPACQ) /* 56: Comparator Channel Acquisition Interrupt */
VECTOR(stm32_wwdg, STM32_IRQ_WWDG) /* 0: Window Watchdog interrupt */
VECTOR(stm32_pvd, STM32_IRQ_PVD) /* 1: PVD through EXTI Line detection interrupt */
VECTOR(stm32_tamper, STM32_IRQ_TAMPER) /* 2: Tamper through EXTI line interrupt */
VECTOR(stm32_rtc_wkup, STM32_IRQ_RTC_WKUP) /* 3: RTC Wakeup through EXTI line interrupt */
VECTOR(stm32_flash, STM32_IRQ_FLASH) /* 4: Flash global interrupt */
VECTOR(stm32_rcc, STM32_IRQ_RCC) /* 5: RCC global interrupt */
VECTOR(stm32_exti0, STM32_IRQ_EXTI0) /* 6: EXTI Line 0 interrupt */
VECTOR(stm32_exti1, STM32_IRQ_EXTI1) /* 7: EXTI Line 1 interrupt */
VECTOR(stm32_exti2, STM32_IRQ_EXTI2) /* 8: EXTI Line 2 interrupt */
VECTOR(stm32_exti3, STM32_IRQ_EXTI3) /* 9: EXTI Line 3 interrupt */
VECTOR(stm32_exti4, STM32_IRQ_EXTI4) /* 10: EXTI Line 4 interrupt */
VECTOR(stm32_dma1ch1, STM32_IRQ_DMA1CH1) /* 11: DMA1 channel 1 global interrupt */
VECTOR(stm32_dma1ch2, STM32_IRQ_DMA1CH2) /* 12: DMA1 channel 2 global interrupt */
VECTOR(stm32_dma1ch3, STM32_IRQ_DMA1CH3) /* 13: DMA1 channel 3 global interrupt */
VECTOR(stm32_dma1ch4, STM32_IRQ_DMA1CH4) /* 14: DMA1 channel 4 global interrupt */
VECTOR(stm32_dma1ch5, STM32_IRQ_DMA1CH5) /* 15: DMA1 channel 5 global interrupt */
VECTOR(stm32_dma1ch6, STM32_IRQ_DMA1CH6) /* 16: DMA1 channel 6 global interrupt */
VECTOR(stm32_dma1ch7, STM32_IRQ_DMA1CH7) /* 17: DMA1 channel 7 global interrupt */
VECTOR(stm32_adc1, STM32_IRQ_ADC1) /* 18: ADC1 global interrupt */
VECTOR(stm32_usbhp, STM32_IRQ_USBHP) /* 19: USB High Priority interrupts */
VECTOR(stm32_usblp, STM32_IRQ_USBLP) /* 20: USB Low Priority interrupt */
VECTOR(stm32_dac, STM32_IRQ_DAC) /* 21: DAC interrupt */
VECTOR(stm32_comp, STM32_IRQ_COMP) /* 22: Comparator wakeup through EXTI interrupt */
VECTOR(stm32_exti95, STM32_IRQ_EXTI95) /* 23: EXTI Line[9:5] interrupts */
VECTOR(stm32_ldc, STM32_IRQ_LDC) /* 24: LCD global interrupt */
VECTOR(stm32_tim9, STM32_IRQ_TIM9) /* 25: TIM9 global interrupt */
VECTOR(stm32_tim10, STM32_IRQ_TIM10) /* 26: TIM10 global interrupt */
VECTOR(stm32_tim11, STM32_IRQ_TIM11) /* 27: TIM11 global interrupt */
VECTOR(stm32_tim2, STM32_IRQ_TIM2) /* 28: TIM2 global interrupt */
VECTOR(stm32_tim3, STM32_IRQ_TIM3) /* 29: TIM3 global interrupt */
VECTOR(stm32_tim4, STM32_IRQ_TIM4) /* 30: TIM4 global interrupt */
VECTOR(stm32_i2c1ev, STM32_IRQ_I2C1EV) /* 31: I2C1 event interrupt */
VECTOR(stm32_i2c1er, STM32_IRQ_I2C1ER) /* 32: I2C1 error interrupt */
VECTOR(stm32_i2c2ev, STM32_IRQ_I2C2EV) /* 33: I2C2 event interrupt */
VECTOR(stm32_i2c2er, STM32_IRQ_I2C2ER) /* 34: I2C2 error interrupt */
VECTOR(stm32_spi1, STM32_IRQ_SPI1) /* 35: SPI1 global interrupt */
VECTOR(stm32_spi2, STM32_IRQ_SPI2) /* 36: SPI2 global interrupt */
VECTOR(stm32_usart1, STM32_IRQ_USART1) /* 37: USART1 global interrupt */
VECTOR(stm32_usart2, STM32_IRQ_USART2) /* 38: USART2 global interrupt */
VECTOR(stm32_usart3, STM32_IRQ_USART3) /* 39: USART3 global interrupt */
VECTOR(stm32_exti1510, STM32_IRQ_EXTI1510) /* 40: EXTI Line[15:10] interrupts */
VECTOR(stm32_rtcalrm, STM32_IRQ_RTCALRM) /* 41: RTC alarm through EXTI line interrupt */
VECTOR(stm32_usbwkup, STM32_IRQ_USBWKUP) /* 42: USB wakeup from suspend through EXTI line interrupt */
VECTOR(stm32_tim6, STM32_IRQ_TIM6) /* 43: TIM6 global interrupt */
VECTOR(stm32_tim7, STM32_IRQ_TIM7) /* 44: TIM7 global interrupt */
VECTOR(stm32_sdio, STM32_IRQ_SDIO) /* 45: SDIO Global interrupt */
VECTOR(stm32_tim5, STM32_IRQ_TIM5) /* 46: TIM5 global interrupt */
VECTOR(stm32_spi3, STM32_IRQ_SPI3) /* 47: SPI3 global interrupt */
VECTOR(stm32_usart4, STM32_IRQ_USART4) /* 48: USART4 global interrupt */
VECTOR(stm32_usart5, STM32_IRQ_USART5) /* 49: USART5 global interrupt */
VECTOR(stm32_dma2ch1, STM32_IRQ_DMA2CH1) /* 50: DMA2 channel 1 global interrupt */
VECTOR(stm32_dma2ch2, STM32_IRQ_DMA2CH2) /* 51: DMA2 channel 2 global interrupt */
VECTOR(stm32_dma2ch3, STM32_IRQ_DMA2CH3) /* 52: DMA2 channel 3 global interrupt */
VECTOR(stm32_dma2ch4, STM32_IRQ_DMA2CH4) /* 53: DMA2 channel 4 global interrupt */
VECTOR(stm32_dma2ch5, STM32_IRQ_DMA2CH5) /* 54: DMA2 channel 5 global interrupt */
VECTOR(stm32_aes, STM32_IRQ_AES) /* 55: AES global interrupt */
VECTOR(stm32_compacq, STM32_IRQ_COMPACQ) /* 56: Comparator Channel Acquisition Interrupt */
#endif
#else

View File

@ -139,15 +139,15 @@ stm32_vectors:
#define UNUSED(i) .word stm32_reserved
#if defined(CONFIG_STM32_STM32L15XX)
# include "chip/chip/stm32l15xxx_vectors.h"
# include "chip/stm32l15xxx_vectors.h"
#elif defined(CONFIG_STM32_STM32F10XX)
# include "chip/chip/stm32f10xxx_vectors.h"
# include "chip/stm32f10xxx_vectors.h"
#elif defined(CONFIG_STM32_STM32F20XX)
# include "chip/chip/stm32f20xxx_vectors.h"
# include "chip/stm32f20xxx_vectors.h"
#elif defined(CONFIG_STM32_STM32F30XX)
# include "chip/chip/stm32f30xxx_vectors.h"
# include "chip/stm32f30xxx_vectors.h"
#elif defined(CONFIG_STM32_STM32F40XX)
# include "chip/chip/stm32f40xxx_vectors.h"
# include "chip/stm32f40xxx_vectors.h"
#else
# error "No vectors for STM32 chip"
#endif
@ -179,15 +179,15 @@ handlers:
#define UNUSED(i)
#if defined(CONFIG_STM32_STM32L15XX)
# include "chip/chip/stm32l15xxx_vectors.h"
# include "chip/stm32l15xxx_vectors.h"
#elif defined(CONFIG_STM32_STM32F10XX)
# include "chip/chip/stm32f10xxx_vectors.h"
# include "chip/stm32f10xxx_vectors.h"
#elif defined(CONFIG_STM32_STM32F20XX)
# include "chip/chip/stm32f20xxx_vectors.h"
# include "chip/stm32f20xxx_vectors.h"
#elif defined(CONFIG_STM32_STM32F30XX)
# include "chip/chip/stm32f30xxx_vectors.h"
# include "chip/stm32f30xxx_vectors.h"
#elif defined(CONFIG_STM32_STM32F40XX)
# include "chip/chip/stm32f40xxx_vectors.h"
# include "chip/stm32f40xxx_vectors.h"
#else
# error "No handlers for STM32 chip"
#endif

View File

@ -500,7 +500,7 @@ static void stm32_stdclockconfig(void)
* the PLL VCO frequency can be up to 96MHz. USB and SDIO can be supported.
*
* Range 1: PLLVCO up to 96MHz in range 1 (1.8V)
* Range 2: PLLVCO up to 48MHz in range 2 (1.5V)
* Range 2: PLLVCO up to 48MHz in range 2 (1.5V) (default)
* Range 3: PLLVCO up to 24MHz in range 3 (1.2V)
*/

View File

@ -518,50 +518,57 @@ CONFIGURATION
0xa000:0000 (CS0).
6. This configuration has been used for verifying the touchscreen on
on the 4.3" LCD module by modifying the configuration in the
following ways:
on the 4.3" LCD module.
Drivers:
CONFIG_INPUT=y : Enable support for input devices
CONFIG_INPUT_ADS7843E=y : Enable support for the XPT2048
CONFIG_ADS7843E_SPIDEV=1 : Use SSP1 for communication
CONFIG_SPI=y : Enable SPI support
CONFIG_SPI_EXCHANGE=n : exchange() method is not supported
a) As of this writing, this touchscreen is still not function.
Rommel Marcelo has tracked this problem done to noise on the
PENIRQ interrupt. There are so many false interrupts that
the NuttX interrupt-driven touchscreen driver cannot be used.
System Type:
CONFIG_GPIO_IRQ=y : GPIO interrupt support
CONFIG_LPC17_SSP1=y : Enable support for SSP1
b) You can enable the touchscreen by modifying the configuration
in the following ways:
Drivers:
CONFIG_INPUT=y : Enable support for input devices
CONFIG_INPUT_ADS7843E=y : Enable support for the XPT2048
CONFIG_ADS7843E_SPIDEV=1 : Use SSP1 for communication
CONFIG_SPI=y : Enable SPI support
CONFIG_SPI_EXCHANGE=n : exchange() method is not supported
System Type:
CONFIG_GPIO_IRQ=y : GPIO interrupt support
CONFIG_LPC17_SSP1=y : Enable support for SSP1
Applicaton Configuration:
CONFIG_EXAMPLES_TOUCHSCREEN=y : Enable the touchscreen built-int test
CONFIG_EXAMPLES_TOUCHSCREEN_BUILTIN=y
Applicaton Configuration:
CONFIG_EXAMPLES_TOUCHSCREEN=y : Enable the touchscreen built-int test
CONFIG_EXAMPLES_TOUCHSCREEN_BUILTIN=y
Defaults should be okay for related touchscreen settings.
Defaults should be okay for related touchscreen settings.
You will also have to disable SD card support to use this test. The
SD card detect (CD) signal is on P0[13]. This signal is shared. It
is also used for MOSI1 and USB_UP_LED. The CD pin may be disconnected.
There is a jumper on board that enables the CD pin. OR, you can simply
remove the SD module so that it does not drive the CD pin.
c) You will also have to disable SD card support to use this test. The
SD card detect (CD) signal is on P0[13]. This signal is shared. It
is also used for MOSI1 and USB_UP_LED. The CD pin may be disconnected.
There is a jumper on board that enables the CD pin. OR, you can simply
remove the SD module so that it does not drive the CD pin.
Drivers:
CONFIG_MMCSD=n : No MMC/SD driver support
Drivers:
CONFIG_MMCSD=n : No MMC/SD driver support
System Type:
CONFIG_LPC17_GPDMA=n : No DMA
CONFIG_LPC17_SDCARD=n : No SD card driver
CONFIG_SDIO_DMA=n : No SD card DMA
CONFIG_ARCH_DMA=n
System Type:
CONFIG_LPC17_GPDMA=n : No DMA
CONFIG_LPC17_SDCARD=n : No SD card driver
CONFIG_SDIO_DMA=n : No SD card DMA
CONFIG_ARCH_DMA=n
File Systems:
CONFIG_FS_FAT=n : No FAT file system support
File Systems:
CONFIG_FS_FAT=n : No FAT file system support
For touchscreen debug output:
For touchscreen debug output:
Build Setup:
CONFIG_DEBUG=y
CONFIG_DEBUG_VERBOSE=y
CONFIG_DEBUG_INPUT=y
Build Setup:
CONFIG_DEBUG=y
CONFIG_DEBUG_VERBOSE=y
CONFIG_DEBUG_INPUT=y
7. The button test (apps/examples/buttons) can be built-in by adding
the following options. See apps/examples/README.txt for further

View File

@ -15,8 +15,8 @@ Both boards feature:
- LCD (24 segments, 4 commons),
- LEDs,
- Pushbuttons,
- A linear touch sensor, and
- four touchkeys.
- A linear touch sensor, and
- Four touchkeys.
Contents
========

View File

@ -195,7 +195,7 @@
* STM32L-Discovery. The following definitions describe how NuttX controls the LEDs:
*
* SYMBOL Meaning LED state
* LED3 LED4
* LED1 LED2
* ------------------- ----------------------- -------- --------
* LED_STARTED NuttX has been started OFF OFF
* LED_HEAPALLOCATE Heap has been allocated OFF OFF
@ -253,25 +253,25 @@
#if !defined(CONFIG_STM32_LCD)
/* Select PA9 and PA10 if the LCD is not enabled */
# define GPIO_USART1_RX GPIO_USART1_RX_1
# define GPIO_USART1_TX GPIO_USART1_TX_1
# define GPIO_USART1_RX GPIO_USART1_RX_1 /* PA10 */
# define GPIO_USART1_TX GPIO_USART1_TX_1 /* PA9 */
/* This there are no other options for USART1 on this part */
# define GPIO_USART2_RX GPIO_USART2_RX_1
# define GPIO_USART2_TX GPIO_USART2_TX_1
# define GPIO_USART2_RX GPIO_USART2_RX_1 /* PA3 */
# define GPIO_USART2_TX GPIO_USART2_TX_1 /* PA2 */
/* Arbirtrarily select PB10 and PB11 */
# define GPIO_USART3_RX GPIO_USART3_RX_1
# define GPIO_USART3_TX GPIO_USART3_TX_1
# define GPIO_USART3_RX GPIO_USART3_RX_1 /* PB11 */
# define GPIO_USART3_TX GPIO_USART3_TX_1 /* PB10 */
#elif !defined(CONFIG_ARCH_LEDS)
/* Select PB6 and PB7 if the LEDs are not enabled */
# define GPIO_USART1_RX GPIO_USART1_RX_2
# define GPIO_USART1_TX GPIO_USART1_TX_2
# define GPIO_USART1_RX GPIO_USART1_RX_2 /* PB7 */
# define GPIO_USART1_TX GPIO_USART1_TX_2 /* PB6 */
#endif

View File

@ -60,7 +60,7 @@
* controls the LEDs:
*
* SYMBOL Meaning LED state
* LED3 LED4
* LED1 LED2
* ------------------- ----------------------- -------- --------
* LED_STARTED NuttX has been started OFF OFF
* LED_HEAPALLOCATE Heap has been allocated OFF OFF
@ -146,8 +146,11 @@ void up_ledon(int led)
void up_ledoff(int led)
{
stm32_gpiowrite(GPIO_LED1, false);
stm32_gpiowrite(GPIO_LED2, false);
if (led != 2)
{
stm32_gpiowrite(GPIO_LED1, false);
stm32_gpiowrite(GPIO_LED2, false);
}
}
#endif /* CONFIG_ARCH_LEDS */