mirror of
https://github.com/apache/nuttx.git
synced 2026-05-31 23:40:19 +08: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:
@@ -4752,4 +4752,7 @@
|
|||||||
* nuttx/arch/arm/src/lm/chip/lm_flash.h and nuttx/arch/arm/src/lm/lm_flash.c:
|
* 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
|
Add support for TI/Stellaris internal FLASH MTD driver. From Max
|
||||||
Holtzberg (2013-5-20).
|
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">
|
<tr align="center" bgcolor="#e4e4e4">
|
||||||
<td>
|
<td>
|
||||||
<h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1>
|
<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>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
@@ -1554,7 +1554,7 @@
|
|||||||
<li><a href="#arm920t">ARM920T</a> (1) </li>
|
<li><a href="#arm920t">ARM920T</a> (1) </li>
|
||||||
<li><a href="#arm926ejs">ARM926EJS</a> (3) </li>
|
<li><a href="#arm926ejs">ARM926EJS</a> (3) </li>
|
||||||
<li><a href="#armcortexm0">ARM Cortex-M0/M0+</a> (2)</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>
|
<li><a href="#armcortexm4">ARM Cortex-M4</a> (7)</li>
|
||||||
</ul>
|
</ul>
|
||||||
<li>Atmel AVR
|
<li>Atmel AVR
|
||||||
@@ -1906,7 +1906,7 @@ $ size nuttx
|
|||||||
</pre></ul>
|
</pre></ul>
|
||||||
<p>
|
<p>
|
||||||
NuttX, the NSH application, and GCC libraries use 34.2KB of FLASH leaving 93.8KB of FLASH (72%) free from additional application development.
|
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:
|
SRAM usage at run-time can be shown with the NSH <code>free</code> command:
|
||||||
</p>
|
</p>
|
||||||
<ul><pre>
|
<ul><pre>
|
||||||
@@ -2093,6 +2093,69 @@ nsh>
|
|||||||
</ul>
|
</ul>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</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>
|
<tr>
|
||||||
<td><br></td>
|
<td><br></td>
|
||||||
<td><hr></td>
|
<td><hr></td>
|
||||||
|
|||||||
@@ -54,58 +54,58 @@
|
|||||||
* definition that provides the number of supported vectors.
|
* 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. */
|
/* Reserve 61 interrupt table entries for I/O interrupts. */
|
||||||
|
|
||||||
# define ARMV7M_PERIPHERAL_INTERRUPTS 45
|
# define ARMV7M_PERIPHERAL_INTERRUPTS 45
|
||||||
|
|
||||||
#else
|
#else
|
||||||
# VECTOR(stm32_wwdg, STM32_IRQ_WWDG) /* 0: Window Watchdog 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_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_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_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_flash, STM32_IRQ_FLASH) /* 4: Flash global interrupt */
|
||||||
# VECTOR(stm32_rcc, STM32_IRQ_RCC) /* 5: RCC 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_exti0, STM32_IRQ_EXTI0) /* 6: EXTI Line 0 interrupt */
|
||||||
# VECTOR(stm32_exti1, STM32_IRQ_EXTI1) /* 7: EXTI Line 1 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_exti2, STM32_IRQ_EXTI2) /* 8: EXTI Line 2 interrupt */
|
||||||
# VECTOR(stm32_exti3, STM32_IRQ_EXTI3) /* 9: EXTI Line 3 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_exti4, STM32_IRQ_EXTI4) /* 10: EXTI Line 4 interrupt */
|
||||||
# VECTOR(stm32_dma1ch1, STM32_IRQ_DMA1CH1) /* 11: DMA1 channel 1 global 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_dma1ch2, STM32_IRQ_DMA1CH2) /* 12: DMA1 channel 2 global interrupt */
|
||||||
# VECTOR(stm32_dma1ch3, STM32_IRQ_DMA1CH3) /* 13: DMA1 channel 3 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_dma1ch4, STM32_IRQ_DMA1CH4) /* 14: DMA1 channel 4 global interrupt */
|
||||||
# VECTOR(stm32_dma1ch5, STM32_IRQ_DMA1CH5) /* 15: DMA1 channel 5 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_dma1ch6, STM32_IRQ_DMA1CH6) /* 16: DMA1 channel 6 global interrupt */
|
||||||
# VECTOR(stm32_dma1ch7, STM32_IRQ_DMA1CH7) /* 17: DMA1 channel 7 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_adc1, STM32_IRQ_ADC1) /* 18: ADC1 global interrupt */
|
||||||
# VECTOR(stm32_usbhp, STM32_IRQ_USBHP) /* 19: USB High Priority interrupts */
|
VECTOR(stm32_usbhp, STM32_IRQ_USBHP) /* 19: USB High Priority interrupts */
|
||||||
# VECTOR(stm32_usblp, STM32_IRQ_USBLP) /* 20: USB Low Priority interrupt */
|
VECTOR(stm32_usblp, STM32_IRQ_USBLP) /* 20: USB Low Priority interrupt */
|
||||||
# VECTOR(stm32_dac, STM32_IRQ_DAC) /* 21: DAC interrupt */
|
VECTOR(stm32_dac, STM32_IRQ_DAC) /* 21: DAC interrupt */
|
||||||
# VECTOR(stm32_comp, STM32_IRQ_COMP) /* 22: Comparator wakeup through EXTI 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_exti95, STM32_IRQ_EXTI95) /* 23: EXTI Line[9:5] interrupts */
|
||||||
# VECTOR(stm32_ldc, STM32_IRQ_LDC) /* 24: LCD global interrupt */
|
VECTOR(stm32_ldc, STM32_IRQ_LDC) /* 24: LCD global interrupt */
|
||||||
# VECTOR(stm32_tim9, STM32_IRQ_TIM9) /* 25: TIM9 global interrupt */
|
VECTOR(stm32_tim9, STM32_IRQ_TIM9) /* 25: TIM9 global interrupt */
|
||||||
# VECTOR(stm32_tim10, STM32_IRQ_TIM10) /* 26: TIM10 global interrupt */
|
VECTOR(stm32_tim10, STM32_IRQ_TIM10) /* 26: TIM10 global interrupt */
|
||||||
# VECTOR(stm32_tim11, STM32_IRQ_TIM11) /* 27: TIM11 global interrupt */
|
VECTOR(stm32_tim11, STM32_IRQ_TIM11) /* 27: TIM11 global interrupt */
|
||||||
# VECTOR(stm32_tim2, STM32_IRQ_TIM2) /* 28: TIM2 global interrupt */
|
VECTOR(stm32_tim2, STM32_IRQ_TIM2) /* 28: TIM2 global interrupt */
|
||||||
# VECTOR(stm32_tim3, STM32_IRQ_TIM3) /* 29: TIM3 global interrupt */
|
VECTOR(stm32_tim3, STM32_IRQ_TIM3) /* 29: TIM3 global interrupt */
|
||||||
# VECTOR(stm32_tim4, STM32_IRQ_TIM4) /* 30: TIM4 global interrupt */
|
VECTOR(stm32_tim4, STM32_IRQ_TIM4) /* 30: TIM4 global interrupt */
|
||||||
# VECTOR(stm32_i2c1ev, STM32_IRQ_I2C1EV) /* 31: I2C1 event interrupt */
|
VECTOR(stm32_i2c1ev, STM32_IRQ_I2C1EV) /* 31: I2C1 event interrupt */
|
||||||
# VECTOR(stm32_i2c1er, STM32_IRQ_I2C1ER) /* 32: I2C1 error interrupt */
|
VECTOR(stm32_i2c1er, STM32_IRQ_I2C1ER) /* 32: I2C1 error interrupt */
|
||||||
# VECTOR(stm32_i2c2ev, STM32_IRQ_I2C2EV) /* 33: I2C2 event interrupt */
|
VECTOR(stm32_i2c2ev, STM32_IRQ_I2C2EV) /* 33: I2C2 event interrupt */
|
||||||
# VECTOR(stm32_i2c2er, STM32_IRQ_I2C2ER) /* 34: I2C2 error interrupt */
|
VECTOR(stm32_i2c2er, STM32_IRQ_I2C2ER) /* 34: I2C2 error interrupt */
|
||||||
# VECTOR(stm32_spi1, STM32_IRQ_SPI1) /* 35: SPI1 global interrupt */
|
VECTOR(stm32_spi1, STM32_IRQ_SPI1) /* 35: SPI1 global interrupt */
|
||||||
# VECTOR(stm32_spi2, STM32_IRQ_SPI2) /* 36: SPI2 global interrupt */
|
VECTOR(stm32_spi2, STM32_IRQ_SPI2) /* 36: SPI2 global interrupt */
|
||||||
# VECTOR(stm32_usart1, STM32_IRQ_USART1) /* 37: USART1 global interrupt */
|
VECTOR(stm32_usart1, STM32_IRQ_USART1) /* 37: USART1 global interrupt */
|
||||||
# VECTOR(stm32_usart2, STM32_IRQ_USART2) /* 38: USART2 global interrupt */
|
VECTOR(stm32_usart2, STM32_IRQ_USART2) /* 38: USART2 global interrupt */
|
||||||
# VECTOR(stm32_usart3, STM32_IRQ_USART3) /* 39: USART3 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_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_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_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_tim6, STM32_IRQ_TIM6) /* 43: TIM6 global interrupt */
|
||||||
# VECTOR(stm32_TIM7, STM32_IRQ_TIM7) /* 44: TIM7 global interrupt */
|
VECTOR(stm32_TIM7, STM32_IRQ_TIM7) /* 44: TIM7 global interrupt */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Vectors for medium+ density devices */
|
/* Vectors for medium+ density devices */
|
||||||
@@ -116,67 +116,67 @@
|
|||||||
* definition that provides the number of supported vectors.
|
* 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. */
|
/* Reserve 61 interrupt table entries for I/O interrupts. */
|
||||||
|
|
||||||
# define ARMV7M_PERIPHERAL_INTERRUPTS 54
|
# define ARMV7M_PERIPHERAL_INTERRUPTS 54
|
||||||
|
|
||||||
#else
|
#else
|
||||||
# VECTOR(stm32_wwdg, STM32_IRQ_WWDG) /* 0: Window Watchdog 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_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_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_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_flash, STM32_IRQ_FLASH) /* 4: Flash global interrupt */
|
||||||
# VECTOR(stm32_rcc, STM32_IRQ_RCC) /* 5: RCC 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_exti0, STM32_IRQ_EXTI0) /* 6: EXTI Line 0 interrupt */
|
||||||
# VECTOR(stm32_exti1, STM32_IRQ_EXTI1) /* 7: EXTI Line 1 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_exti2, STM32_IRQ_EXTI2) /* 8: EXTI Line 2 interrupt */
|
||||||
# VECTOR(stm32_exti3, STM32_IRQ_EXTI3) /* 9: EXTI Line 3 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_exti4, STM32_IRQ_EXTI4) /* 10: EXTI Line 4 interrupt */
|
||||||
# VECTOR(stm32_dma1ch1, STM32_IRQ_DMA1CH1) /* 11: DMA1 channel 1 global 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_dma1ch2, STM32_IRQ_DMA1CH2) /* 12: DMA1 channel 2 global interrupt */
|
||||||
# VECTOR(stm32_dma1ch3, STM32_IRQ_DMA1CH3) /* 13: DMA1 channel 3 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_dma1ch4, STM32_IRQ_DMA1CH4) /* 14: DMA1 channel 4 global interrupt */
|
||||||
# VECTOR(stm32_dma1ch5, STM32_IRQ_DMA1CH5) /* 15: DMA1 channel 5 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_dma1ch6, STM32_IRQ_DMA1CH6) /* 16: DMA1 channel 6 global interrupt */
|
||||||
# VECTOR(stm32_dma1ch7, STM32_IRQ_DMA1CH7) /* 17: DMA1 channel 7 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_adc1, STM32_IRQ_ADC1) /* 18: ADC1 global interrupt */
|
||||||
# VECTOR(stm32_usbhp, STM32_IRQ_USBHP) /* 19: USB High Priority interrupts */
|
VECTOR(stm32_usbhp, STM32_IRQ_USBHP) /* 19: USB High Priority interrupts */
|
||||||
# VECTOR(stm32_usblp, STM32_IRQ_USBLP) /* 20: USB Low Priority interrupt */
|
VECTOR(stm32_usblp, STM32_IRQ_USBLP) /* 20: USB Low Priority interrupt */
|
||||||
# VECTOR(stm32_dac, STM32_IRQ_DAC) /* 21: DAC interrupt */
|
VECTOR(stm32_dac, STM32_IRQ_DAC) /* 21: DAC interrupt */
|
||||||
# VECTOR(stm32_comp, STM32_IRQ_COMP) /* 22: Comparator wakeup through EXTI 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_exti95, STM32_IRQ_EXTI95) /* 23: EXTI Line[9:5] interrupts */
|
||||||
# VECTOR(stm32_ldc, STM32_IRQ_LDC) /* 24: LCD global interrupt */
|
VECTOR(stm32_ldc, STM32_IRQ_LDC) /* 24: LCD global interrupt */
|
||||||
# VECTOR(stm32_tim9, STM32_IRQ_TIM9) /* 25: TIM9 global interrupt */
|
VECTOR(stm32_tim9, STM32_IRQ_TIM9) /* 25: TIM9 global interrupt */
|
||||||
# VECTOR(stm32_tim10, STM32_IRQ_TIM10) /* 26: TIM10 global interrupt */
|
VECTOR(stm32_tim10, STM32_IRQ_TIM10) /* 26: TIM10 global interrupt */
|
||||||
# VECTOR(stm32_tim11, STM32_IRQ_TIM11) /* 27: TIM11 global interrupt */
|
VECTOR(stm32_tim11, STM32_IRQ_TIM11) /* 27: TIM11 global interrupt */
|
||||||
# VECTOR(stm32_tim2, STM32_IRQ_TIM2) /* 28: TIM2 global interrupt */
|
VECTOR(stm32_tim2, STM32_IRQ_TIM2) /* 28: TIM2 global interrupt */
|
||||||
# VECTOR(stm32_tim3, STM32_IRQ_TIM3) /* 29: TIM3 global interrupt */
|
VECTOR(stm32_tim3, STM32_IRQ_TIM3) /* 29: TIM3 global interrupt */
|
||||||
# VECTOR(stm32_tim4, STM32_IRQ_TIM4) /* 30: TIM4 global interrupt */
|
VECTOR(stm32_tim4, STM32_IRQ_TIM4) /* 30: TIM4 global interrupt */
|
||||||
# VECTOR(stm32_i2c1ev, STM32_IRQ_I2C1EV) /* 31: I2C1 event interrupt */
|
VECTOR(stm32_i2c1ev, STM32_IRQ_I2C1EV) /* 31: I2C1 event interrupt */
|
||||||
# VECTOR(stm32_i2c1er, STM32_IRQ_I2C1ER) /* 32: I2C1 error interrupt */
|
VECTOR(stm32_i2c1er, STM32_IRQ_I2C1ER) /* 32: I2C1 error interrupt */
|
||||||
# VECTOR(stm32_i2c2ev, STM32_IRQ_I2C2EV) /* 33: I2C2 event interrupt */
|
VECTOR(stm32_i2c2ev, STM32_IRQ_I2C2EV) /* 33: I2C2 event interrupt */
|
||||||
# VECTOR(stm32_i2c2er, STM32_IRQ_I2C2ER) /* 34: I2C2 error interrupt */
|
VECTOR(stm32_i2c2er, STM32_IRQ_I2C2ER) /* 34: I2C2 error interrupt */
|
||||||
# VECTOR(stm32_spi1, STM32_IRQ_SPI1) /* 35: SPI1 global interrupt */
|
VECTOR(stm32_spi1, STM32_IRQ_SPI1) /* 35: SPI1 global interrupt */
|
||||||
# VECTOR(stm32_spi2, STM32_IRQ_SPI2) /* 36: SPI2 global interrupt */
|
VECTOR(stm32_spi2, STM32_IRQ_SPI2) /* 36: SPI2 global interrupt */
|
||||||
# VECTOR(stm32_usart1, STM32_IRQ_USART1) /* 37: USART1 global interrupt */
|
VECTOR(stm32_usart1, STM32_IRQ_USART1) /* 37: USART1 global interrupt */
|
||||||
# VECTOR(stm32_usart2, STM32_IRQ_USART2) /* 38: USART2 global interrupt */
|
VECTOR(stm32_usart2, STM32_IRQ_USART2) /* 38: USART2 global interrupt */
|
||||||
# VECTOR(stm32_usart3, STM32_IRQ_USART3) /* 39: USART3 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_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_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_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_tim6, STM32_IRQ_TIM6) /* 43: TIM6 global interrupt */
|
||||||
# VECTOR(stm32_tim7, STM32_IRQ_TIM7) /* 44: TIM7 global interrupt */
|
VECTOR(stm32_tim7, STM32_IRQ_TIM7) /* 44: TIM7 global interrupt */
|
||||||
# VECTOR(stm32_tim5, STM32_IRQ_TIM5) /* 45: TIM5 global interrupt */
|
VECTOR(stm32_tim5, STM32_IRQ_TIM5) /* 45: TIM5 global interrupt */
|
||||||
# VECTOR(stm32_spi3, STM32_IRQ_SPI3) /* 46: SPI3 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_dma2ch1, STM32_IRQ_DMA2CH1) /* 47: DMA2 channel 1 global interrupt */
|
||||||
# VECTOR(stm32_dma2ch2, STM32_IRQ_DMA2CH2) /* 48: DMA2 channel 2 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_dma2ch3, STM32_IRQ_DMA2CH3) /* 49: DMA2 channel 3 global interrupt */
|
||||||
# VECTOR(stm32_dma2ch4, STM32_IRQ_DMA2CH4) /* 50: DMA2 channel 4 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_dma2ch5, STM32_IRQ_DMA2CH5) /* 51: DMA2 channel 5 global interrupt */
|
||||||
# VECTOR(stm32_aes, STM32_IRQ_AES) /* 52: AES 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_compacq, STM32_IRQ_COMPACQ) /* 53: Comparator Channel Acquisition Interrupt */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Vectors for high density devices */
|
/* Vectors for high density devices */
|
||||||
@@ -187,70 +187,70 @@
|
|||||||
* definition that provides the number of supported vectors.
|
* 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. */
|
/* Reserve 61 interrupt table entries for I/O interrupts. */
|
||||||
|
|
||||||
# define ARMV7M_PERIPHERAL_INTERRUPTS 57
|
# define ARMV7M_PERIPHERAL_INTERRUPTS 57
|
||||||
|
|
||||||
#else
|
#else
|
||||||
# VECTOR(stm32_wwdg, STM32_IRQ_WWDG) /* 0: Window Watchdog 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_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_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_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_flash, STM32_IRQ_FLASH) /* 4: Flash global interrupt */
|
||||||
# VECTOR(stm32_rcc, STM32_IRQ_RCC) /* 5: RCC 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_exti0, STM32_IRQ_EXTI0) /* 6: EXTI Line 0 interrupt */
|
||||||
# VECTOR(stm32_exti1, STM32_IRQ_EXTI1) /* 7: EXTI Line 1 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_exti2, STM32_IRQ_EXTI2) /* 8: EXTI Line 2 interrupt */
|
||||||
# VECTOR(stm32_exti3, STM32_IRQ_EXTI3) /* 9: EXTI Line 3 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_exti4, STM32_IRQ_EXTI4) /* 10: EXTI Line 4 interrupt */
|
||||||
# VECTOR(stm32_dma1ch1, STM32_IRQ_DMA1CH1) /* 11: DMA1 channel 1 global 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_dma1ch2, STM32_IRQ_DMA1CH2) /* 12: DMA1 channel 2 global interrupt */
|
||||||
# VECTOR(stm32_dma1ch3, STM32_IRQ_DMA1CH3) /* 13: DMA1 channel 3 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_dma1ch4, STM32_IRQ_DMA1CH4) /* 14: DMA1 channel 4 global interrupt */
|
||||||
# VECTOR(stm32_dma1ch5, STM32_IRQ_DMA1CH5) /* 15: DMA1 channel 5 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_dma1ch6, STM32_IRQ_DMA1CH6) /* 16: DMA1 channel 6 global interrupt */
|
||||||
# VECTOR(stm32_dma1ch7, STM32_IRQ_DMA1CH7) /* 17: DMA1 channel 7 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_adc1, STM32_IRQ_ADC1) /* 18: ADC1 global interrupt */
|
||||||
# VECTOR(stm32_usbhp, STM32_IRQ_USBHP) /* 19: USB High Priority interrupts */
|
VECTOR(stm32_usbhp, STM32_IRQ_USBHP) /* 19: USB High Priority interrupts */
|
||||||
# VECTOR(stm32_usblp, STM32_IRQ_USBLP) /* 20: USB Low Priority interrupt */
|
VECTOR(stm32_usblp, STM32_IRQ_USBLP) /* 20: USB Low Priority interrupt */
|
||||||
# VECTOR(stm32_dac, STM32_IRQ_DAC) /* 21: DAC interrupt */
|
VECTOR(stm32_dac, STM32_IRQ_DAC) /* 21: DAC interrupt */
|
||||||
# VECTOR(stm32_comp, STM32_IRQ_COMP) /* 22: Comparator wakeup through EXTI 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_exti95, STM32_IRQ_EXTI95) /* 23: EXTI Line[9:5] interrupts */
|
||||||
# VECTOR(stm32_ldc, STM32_IRQ_LDC) /* 24: LCD global interrupt */
|
VECTOR(stm32_ldc, STM32_IRQ_LDC) /* 24: LCD global interrupt */
|
||||||
# VECTOR(stm32_tim9, STM32_IRQ_TIM9) /* 25: TIM9 global interrupt */
|
VECTOR(stm32_tim9, STM32_IRQ_TIM9) /* 25: TIM9 global interrupt */
|
||||||
# VECTOR(stm32_tim10, STM32_IRQ_TIM10) /* 26: TIM10 global interrupt */
|
VECTOR(stm32_tim10, STM32_IRQ_TIM10) /* 26: TIM10 global interrupt */
|
||||||
# VECTOR(stm32_tim11, STM32_IRQ_TIM11) /* 27: TIM11 global interrupt */
|
VECTOR(stm32_tim11, STM32_IRQ_TIM11) /* 27: TIM11 global interrupt */
|
||||||
# VECTOR(stm32_tim2, STM32_IRQ_TIM2) /* 28: TIM2 global interrupt */
|
VECTOR(stm32_tim2, STM32_IRQ_TIM2) /* 28: TIM2 global interrupt */
|
||||||
# VECTOR(stm32_tim3, STM32_IRQ_TIM3) /* 29: TIM3 global interrupt */
|
VECTOR(stm32_tim3, STM32_IRQ_TIM3) /* 29: TIM3 global interrupt */
|
||||||
# VECTOR(stm32_tim4, STM32_IRQ_TIM4) /* 30: TIM4 global interrupt */
|
VECTOR(stm32_tim4, STM32_IRQ_TIM4) /* 30: TIM4 global interrupt */
|
||||||
# VECTOR(stm32_i2c1ev, STM32_IRQ_I2C1EV) /* 31: I2C1 event interrupt */
|
VECTOR(stm32_i2c1ev, STM32_IRQ_I2C1EV) /* 31: I2C1 event interrupt */
|
||||||
# VECTOR(stm32_i2c1er, STM32_IRQ_I2C1ER) /* 32: I2C1 error interrupt */
|
VECTOR(stm32_i2c1er, STM32_IRQ_I2C1ER) /* 32: I2C1 error interrupt */
|
||||||
# VECTOR(stm32_i2c2ev, STM32_IRQ_I2C2EV) /* 33: I2C2 event interrupt */
|
VECTOR(stm32_i2c2ev, STM32_IRQ_I2C2EV) /* 33: I2C2 event interrupt */
|
||||||
# VECTOR(stm32_i2c2er, STM32_IRQ_I2C2ER) /* 34: I2C2 error interrupt */
|
VECTOR(stm32_i2c2er, STM32_IRQ_I2C2ER) /* 34: I2C2 error interrupt */
|
||||||
# VECTOR(stm32_spi1, STM32_IRQ_SPI1) /* 35: SPI1 global interrupt */
|
VECTOR(stm32_spi1, STM32_IRQ_SPI1) /* 35: SPI1 global interrupt */
|
||||||
# VECTOR(stm32_spi2, STM32_IRQ_SPI2) /* 36: SPI2 global interrupt */
|
VECTOR(stm32_spi2, STM32_IRQ_SPI2) /* 36: SPI2 global interrupt */
|
||||||
# VECTOR(stm32_usart1, STM32_IRQ_USART1) /* 37: USART1 global interrupt */
|
VECTOR(stm32_usart1, STM32_IRQ_USART1) /* 37: USART1 global interrupt */
|
||||||
# VECTOR(stm32_usart2, STM32_IRQ_USART2) /* 38: USART2 global interrupt */
|
VECTOR(stm32_usart2, STM32_IRQ_USART2) /* 38: USART2 global interrupt */
|
||||||
# VECTOR(stm32_usart3, STM32_IRQ_USART3) /* 39: USART3 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_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_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_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_tim6, STM32_IRQ_TIM6) /* 43: TIM6 global interrupt */
|
||||||
# VECTOR(stm32_tim7, STM32_IRQ_TIM7) /* 44: TIM7 global interrupt */
|
VECTOR(stm32_tim7, STM32_IRQ_TIM7) /* 44: TIM7 global interrupt */
|
||||||
# VECTOR(stm32_sdio, STM32_IRQ_SDIO) /* 45: SDIO Global interrupt */
|
VECTOR(stm32_sdio, STM32_IRQ_SDIO) /* 45: SDIO Global interrupt */
|
||||||
# VECTOR(stm32_tim5, STM32_IRQ_TIM5) /* 46: TIM5 global interrupt */
|
VECTOR(stm32_tim5, STM32_IRQ_TIM5) /* 46: TIM5 global interrupt */
|
||||||
# VECTOR(stm32_spi3, STM32_IRQ_SPI3) /* 47: SPI3 global interrupt */
|
VECTOR(stm32_spi3, STM32_IRQ_SPI3) /* 47: SPI3 global interrupt */
|
||||||
# VECTOR(stm32_usart4, STM32_IRQ_USART4) /* 48: USART4 global interrupt */
|
VECTOR(stm32_usart4, STM32_IRQ_USART4) /* 48: USART4 global interrupt */
|
||||||
# VECTOR(stm32_usart5, STM32_IRQ_USART5) /* 49: USART5 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_dma2ch1, STM32_IRQ_DMA2CH1) /* 50: DMA2 channel 1 global interrupt */
|
||||||
# VECTOR(stm32_dma2ch2, STM32_IRQ_DMA2CH2) /* 51: DMA2 channel 2 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_dma2ch3, STM32_IRQ_DMA2CH3) /* 52: DMA2 channel 3 global interrupt */
|
||||||
# VECTOR(stm32_dma2ch4, STM32_IRQ_DMA2CH4) /* 53: DMA2 channel 4 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_dma2ch5, STM32_IRQ_DMA2CH5) /* 54: DMA2 channel 5 global interrupt */
|
||||||
# VECTOR(stm32_aes, STM32_IRQ_AES) /* 55: AES 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_compacq, STM32_IRQ_COMPACQ) /* 56: Comparator Channel Acquisition Interrupt */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|||||||
@@ -139,15 +139,15 @@ stm32_vectors:
|
|||||||
#define UNUSED(i) .word stm32_reserved
|
#define UNUSED(i) .word stm32_reserved
|
||||||
|
|
||||||
#if defined(CONFIG_STM32_STM32L15XX)
|
#if defined(CONFIG_STM32_STM32L15XX)
|
||||||
# include "chip/chip/stm32l15xxx_vectors.h"
|
# include "chip/stm32l15xxx_vectors.h"
|
||||||
#elif defined(CONFIG_STM32_STM32F10XX)
|
#elif defined(CONFIG_STM32_STM32F10XX)
|
||||||
# include "chip/chip/stm32f10xxx_vectors.h"
|
# include "chip/stm32f10xxx_vectors.h"
|
||||||
#elif defined(CONFIG_STM32_STM32F20XX)
|
#elif defined(CONFIG_STM32_STM32F20XX)
|
||||||
# include "chip/chip/stm32f20xxx_vectors.h"
|
# include "chip/stm32f20xxx_vectors.h"
|
||||||
#elif defined(CONFIG_STM32_STM32F30XX)
|
#elif defined(CONFIG_STM32_STM32F30XX)
|
||||||
# include "chip/chip/stm32f30xxx_vectors.h"
|
# include "chip/stm32f30xxx_vectors.h"
|
||||||
#elif defined(CONFIG_STM32_STM32F40XX)
|
#elif defined(CONFIG_STM32_STM32F40XX)
|
||||||
# include "chip/chip/stm32f40xxx_vectors.h"
|
# include "chip/stm32f40xxx_vectors.h"
|
||||||
#else
|
#else
|
||||||
# error "No vectors for STM32 chip"
|
# error "No vectors for STM32 chip"
|
||||||
#endif
|
#endif
|
||||||
@@ -179,15 +179,15 @@ handlers:
|
|||||||
#define UNUSED(i)
|
#define UNUSED(i)
|
||||||
|
|
||||||
#if defined(CONFIG_STM32_STM32L15XX)
|
#if defined(CONFIG_STM32_STM32L15XX)
|
||||||
# include "chip/chip/stm32l15xxx_vectors.h"
|
# include "chip/stm32l15xxx_vectors.h"
|
||||||
#elif defined(CONFIG_STM32_STM32F10XX)
|
#elif defined(CONFIG_STM32_STM32F10XX)
|
||||||
# include "chip/chip/stm32f10xxx_vectors.h"
|
# include "chip/stm32f10xxx_vectors.h"
|
||||||
#elif defined(CONFIG_STM32_STM32F20XX)
|
#elif defined(CONFIG_STM32_STM32F20XX)
|
||||||
# include "chip/chip/stm32f20xxx_vectors.h"
|
# include "chip/stm32f20xxx_vectors.h"
|
||||||
#elif defined(CONFIG_STM32_STM32F30XX)
|
#elif defined(CONFIG_STM32_STM32F30XX)
|
||||||
# include "chip/chip/stm32f30xxx_vectors.h"
|
# include "chip/stm32f30xxx_vectors.h"
|
||||||
#elif defined(CONFIG_STM32_STM32F40XX)
|
#elif defined(CONFIG_STM32_STM32F40XX)
|
||||||
# include "chip/chip/stm32f40xxx_vectors.h"
|
# include "chip/stm32f40xxx_vectors.h"
|
||||||
#else
|
#else
|
||||||
# error "No handlers for STM32 chip"
|
# error "No handlers for STM32 chip"
|
||||||
#endif
|
#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.
|
* 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 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)
|
* Range 3: PLLVCO up to 24MHz in range 3 (1.2V)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
+41
-34
@@ -518,50 +518,57 @@ CONFIGURATION
|
|||||||
0xa000:0000 (CS0).
|
0xa000:0000 (CS0).
|
||||||
|
|
||||||
6. This configuration has been used for verifying the touchscreen on
|
6. This configuration has been used for verifying the touchscreen on
|
||||||
on the 4.3" LCD module by modifying the configuration in the
|
on the 4.3" LCD module.
|
||||||
following ways:
|
|
||||||
|
|
||||||
Drivers:
|
a) As of this writing, this touchscreen is still not function.
|
||||||
CONFIG_INPUT=y : Enable support for input devices
|
Rommel Marcelo has tracked this problem done to noise on the
|
||||||
CONFIG_INPUT_ADS7843E=y : Enable support for the XPT2048
|
PENIRQ interrupt. There are so many false interrupts that
|
||||||
CONFIG_ADS7843E_SPIDEV=1 : Use SSP1 for communication
|
the NuttX interrupt-driven touchscreen driver cannot be used.
|
||||||
CONFIG_SPI=y : Enable SPI support
|
|
||||||
CONFIG_SPI_EXCHANGE=n : exchange() method is not supported
|
|
||||||
|
|
||||||
System Type:
|
b) You can enable the touchscreen by modifying the configuration
|
||||||
CONFIG_GPIO_IRQ=y : GPIO interrupt support
|
in the following ways:
|
||||||
CONFIG_LPC17_SSP1=y : Enable support for SSP1
|
|
||||||
|
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:
|
Applicaton Configuration:
|
||||||
CONFIG_EXAMPLES_TOUCHSCREEN=y : Enable the touchscreen built-int test
|
CONFIG_EXAMPLES_TOUCHSCREEN=y : Enable the touchscreen built-int test
|
||||||
CONFIG_EXAMPLES_TOUCHSCREEN_BUILTIN=y
|
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
|
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
|
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.
|
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
|
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.
|
remove the SD module so that it does not drive the CD pin.
|
||||||
|
|
||||||
Drivers:
|
Drivers:
|
||||||
CONFIG_MMCSD=n : No MMC/SD driver support
|
CONFIG_MMCSD=n : No MMC/SD driver support
|
||||||
|
|
||||||
System Type:
|
System Type:
|
||||||
CONFIG_LPC17_GPDMA=n : No DMA
|
CONFIG_LPC17_GPDMA=n : No DMA
|
||||||
CONFIG_LPC17_SDCARD=n : No SD card driver
|
CONFIG_LPC17_SDCARD=n : No SD card driver
|
||||||
CONFIG_SDIO_DMA=n : No SD card DMA
|
CONFIG_SDIO_DMA=n : No SD card DMA
|
||||||
CONFIG_ARCH_DMA=n
|
CONFIG_ARCH_DMA=n
|
||||||
|
|
||||||
File Systems:
|
File Systems:
|
||||||
CONFIG_FS_FAT=n : No FAT file system support
|
CONFIG_FS_FAT=n : No FAT file system support
|
||||||
|
|
||||||
For touchscreen debug output:
|
For touchscreen debug output:
|
||||||
|
|
||||||
Build Setup:
|
Build Setup:
|
||||||
CONFIG_DEBUG=y
|
CONFIG_DEBUG=y
|
||||||
CONFIG_DEBUG_VERBOSE=y
|
CONFIG_DEBUG_VERBOSE=y
|
||||||
CONFIG_DEBUG_INPUT=y
|
CONFIG_DEBUG_INPUT=y
|
||||||
|
|
||||||
7. The button test (apps/examples/buttons) can be built-in by adding
|
7. The button test (apps/examples/buttons) can be built-in by adding
|
||||||
the following options. See apps/examples/README.txt for further
|
the following options. See apps/examples/README.txt for further
|
||||||
|
|||||||
@@ -15,8 +15,8 @@ Both boards feature:
|
|||||||
- LCD (24 segments, 4 commons),
|
- LCD (24 segments, 4 commons),
|
||||||
- LEDs,
|
- LEDs,
|
||||||
- Pushbuttons,
|
- Pushbuttons,
|
||||||
- A linear touch sensor, and
|
- A linear touch sensor, and
|
||||||
- four touchkeys.
|
- Four touchkeys.
|
||||||
|
|
||||||
Contents
|
Contents
|
||||||
========
|
========
|
||||||
|
|||||||
@@ -195,7 +195,7 @@
|
|||||||
* STM32L-Discovery. The following definitions describe how NuttX controls the LEDs:
|
* STM32L-Discovery. The following definitions describe how NuttX controls the LEDs:
|
||||||
*
|
*
|
||||||
* SYMBOL Meaning LED state
|
* SYMBOL Meaning LED state
|
||||||
* LED3 LED4
|
* LED1 LED2
|
||||||
* ------------------- ----------------------- -------- --------
|
* ------------------- ----------------------- -------- --------
|
||||||
* LED_STARTED NuttX has been started OFF OFF
|
* LED_STARTED NuttX has been started OFF OFF
|
||||||
* LED_HEAPALLOCATE Heap has been allocated OFF OFF
|
* LED_HEAPALLOCATE Heap has been allocated OFF OFF
|
||||||
@@ -253,25 +253,25 @@
|
|||||||
#if !defined(CONFIG_STM32_LCD)
|
#if !defined(CONFIG_STM32_LCD)
|
||||||
/* Select PA9 and PA10 if the LCD is not enabled */
|
/* Select PA9 and PA10 if the LCD is not enabled */
|
||||||
|
|
||||||
# define GPIO_USART1_RX GPIO_USART1_RX_1
|
# define GPIO_USART1_RX GPIO_USART1_RX_1 /* PA10 */
|
||||||
# define GPIO_USART1_TX GPIO_USART1_TX_1
|
# define GPIO_USART1_TX GPIO_USART1_TX_1 /* PA9 */
|
||||||
|
|
||||||
/* This there are no other options for USART1 on this part */
|
/* This there are no other options for USART1 on this part */
|
||||||
|
|
||||||
# define GPIO_USART2_RX GPIO_USART2_RX_1
|
# define GPIO_USART2_RX GPIO_USART2_RX_1 /* PA3 */
|
||||||
# define GPIO_USART2_TX GPIO_USART2_TX_1
|
# define GPIO_USART2_TX GPIO_USART2_TX_1 /* PA2 */
|
||||||
|
|
||||||
/* Arbirtrarily select PB10 and PB11 */
|
/* Arbirtrarily select PB10 and PB11 */
|
||||||
|
|
||||||
# define GPIO_USART3_RX GPIO_USART3_RX_1
|
# define GPIO_USART3_RX GPIO_USART3_RX_1 /* PB11 */
|
||||||
# define GPIO_USART3_TX GPIO_USART3_TX_1
|
# define GPIO_USART3_TX GPIO_USART3_TX_1 /* PB10 */
|
||||||
|
|
||||||
#elif !defined(CONFIG_ARCH_LEDS)
|
#elif !defined(CONFIG_ARCH_LEDS)
|
||||||
|
|
||||||
/* Select PB6 and PB7 if the LEDs are not enabled */
|
/* Select PB6 and PB7 if the LEDs are not enabled */
|
||||||
|
|
||||||
# define GPIO_USART1_RX GPIO_USART1_RX_2
|
# define GPIO_USART1_RX GPIO_USART1_RX_2 /* PB7 */
|
||||||
# define GPIO_USART1_TX GPIO_USART1_TX_2
|
# define GPIO_USART1_TX GPIO_USART1_TX_2 /* PB6 */
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -60,7 +60,7 @@
|
|||||||
* controls the LEDs:
|
* controls the LEDs:
|
||||||
*
|
*
|
||||||
* SYMBOL Meaning LED state
|
* SYMBOL Meaning LED state
|
||||||
* LED3 LED4
|
* LED1 LED2
|
||||||
* ------------------- ----------------------- -------- --------
|
* ------------------- ----------------------- -------- --------
|
||||||
* LED_STARTED NuttX has been started OFF OFF
|
* LED_STARTED NuttX has been started OFF OFF
|
||||||
* LED_HEAPALLOCATE Heap has been allocated OFF OFF
|
* LED_HEAPALLOCATE Heap has been allocated OFF OFF
|
||||||
@@ -146,8 +146,11 @@ void up_ledon(int led)
|
|||||||
|
|
||||||
void up_ledoff(int led)
|
void up_ledoff(int led)
|
||||||
{
|
{
|
||||||
stm32_gpiowrite(GPIO_LED1, false);
|
if (led != 2)
|
||||||
stm32_gpiowrite(GPIO_LED2, false);
|
{
|
||||||
|
stm32_gpiowrite(GPIO_LED1, false);
|
||||||
|
stm32_gpiowrite(GPIO_LED2, false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* CONFIG_ARCH_LEDS */
|
#endif /* CONFIG_ARCH_LEDS */
|
||||||
|
|||||||
Reference in New Issue
Block a user