mirror of
https://github.com/apache/nuttx.git
synced 2026-10-06 22:05:21 +00:00
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:
parent
9ea58951b4
commit
e4d906960a
9 changed files with 301 additions and 225 deletions
|
|
@ -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).
|
||||
|
|
|
|||
|
|
@ -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 (<4%) and leaves 13.8KB (86%) available for heap at runtime.
|
||||
Static SRAM usage is about 1.2KB (<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 "EnergyLite" 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 (<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>
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
*/
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
========
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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 */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue