EXTI internal peripheral

Stable: 15.02.2019 - 15:11 / Revision: 15.02.2019 - 15:11

I am here to prevent the first-page-empty bug!


Template:ArticleMainWriter Template:ArticleApprovedVersion


1 Peripheral overview

The EXTI peripheral is used to get an interrupt when a GPIO is toggling. It can also wake up the system from Stop low power mode, by means of the PWR internal peripheral when a wake up event occurs, before (eventualy - see the note below) propagating an interrupt to the client processor (Cortex-A7 GIC or Cortex-M4 NVIC). The wake up events can be internal (from other IPs clocked by the LSE, LSI or HSI from RCC), or external (from GPIO).

Notice that:

  • Up to 16 GPIO pins can be configured as external interrupts: for each index between 0 and 15, one EXTI can be selected among all banks (EXTI<index> = GPIO<one_bank><index>).
  • The 16 GPIO and 4 internal peripheral events can generate interrupts connected to the GIC and NVIC. All the other internal peripheral events can wake up the system, but the EXTI does not generate any interrupt to the GIC or NVIC for them; in such cases, another peripheral interrupt has to be used as a trigger via the GIC or NVIC.

1.1 Features

Refer to STM32MP15 reference manuals for the complete feature list, and to the software components, introduced below, to see which features are implemented.

1.2 Security support

The EXTI is a secure peripheral. By default, at reset, all EXTI wake up events are non-secure.

2 Peripheral usage and associated software

2.1 Boot time

The EXTI is not used by the boot chain, but is configured during Linux initialization. Since wake-up event configuration is done via register bit-field reads and writes, concurrent accesses from Linux and the co-processor are not possible at boot time:

  • Linux configures all EXTI events during their respective consumer driver probing
  • The co-processor uses the resource management mechanisms to request and configure the EXTI events it needs.

The article STM32MP15 interrupts gives more information on the EXTI configuration strategy.

2.2 Runtime

2.2.1 Overview

The EXTI can be allocated to:

  • the Cortex-A7 non-secure for use in Linux with the interrupts framework

or


2.2.2 Software frameworks

Internal peripherals software table template

| Core/Interrupts
| EXTI
| 
| Linux interrupt framework
| STM32Cube EXTI driver
|
|-
|}

2.2.3 Peripheral configuration

The configuration is applied by the firmware running in the context to which the peripheral is assigned. The configuration can be done alone via the STM32CubeMX tool for all internal peripherals. It can then be manually completed (particularly for external peripherals), according to the information given in the corresponding software framework article.

2.2.4 Peripheral assignment

Internal peripherals assignment table template

| rowspan="1" | Core/Interrupts
| rowspan="1" | EXTI
| EXTI
|
| 
| 
| Shareable (multiple choices supported)
|-

|}
IMPORTANT NOTICE – READ CAREFULLY
STMicroelectronics NV and its subsidiaries ("ST") reserve the right to make changes, corrections, enhancements, modifications, and improvements to ST products and/or to this document at any time without notice. Purchasers should obtain the latest relevant information on ST products before placing orders. ST products are sold pursuant to ST’s terms and conditions of sale in place at the time of order acknowledgment.

Purchasers are solely responsible for the choice, selection, and use of ST products and ST assumes no liability for application assistance or the design of purchasers’ products.

No license, express or implied, to any intellectual property right is granted by ST herein.

Resale of ST products with provisions different from the information set forth herein shall void any warranty granted by ST for such product.

ST and the ST logo are trademarks of ST. For additional information about ST trademarks, refer to www.st.com/trademarks. All other product or service names are the property of their respective owners.

Information in this document supersedes and replaces information previously supplied in any prior versions of this document.