Mbed OS and Pelion Device Management example over WIFI for DISCO_L475VG_IOT01 board

Dependencies:   X_NUCLEO_COMMON ST_INTERFACES

DEPRECATED

This example application is not maintained and not recommended. It uses an old version of Mbed OS, Pelion DM and Arm toolchain. It doesn't work with Mbed Studio.

Please use: https://os.mbed.com/teams/mbed-os-examples/code/mbed-os-example-pelion/

This example is known to work on the following platforms:

DISCO_L475E_IOT01A

Follow the Quick-Start instructions: https://cloud.mbed.com/quick-start

Example functionality

This example showcases the following device functionality:

  • Read onboard temperature and humidity sensors, and report them as Pelion LWM2M resources (see image below).
  • On user button click, increment Pelion LWM2M button resource.
  • Allow the user to change the state of the board LED from Pelion LWM2M led_state resource and PUT request.
  • Uses all onboard sensors and reports them as Pelion LWM2M resources.

/media/uploads/screamer/pelion_st_humidity_reading.png?v=2

Use this example with Mbed CLI

1. Import the application into your desktop:

mbed import https://os.mbed.com/teams/ST/code/pelion-example-disco-iot01

cd pelion-example-disco-iot01

2. Install the CLOUD_SDK_API_KEY

mbed config -G CLOUD_SDK_API_KEY <PELION_DM_API_KEY>

For instructions on how to generate your API key, please see the documentation.

3. Initialize firmware credentials (done once per repository). You can use the following command:

mbed dm init -d "<your company name in Pelion DM>" --model-name "<product model identifier>" -q --force

If above command do not work for your Mbed CLI, please consider upgrading Mbed CLI to version 1.8.x or above.

4. Compile and program:

mbed compile -t <toolchain> -m DISCO_L475VG_IOT01A

(supported toolchains : GCC_ARM / ARM / IAR)

5. You can connect on a virtual terminal/COM port to the platform using:

mbed sterm -b 115200

This should give you an output similar to:

[BOOT] Mbed Bootloader
[BOOT] ARM: 00000000000000000000
[BOOT] OEM: 00000000000000000000
[BOOT] Layout: 0 80096F4
[BOOT] Active firmware integrity check:
[BOOT] SHA256: 0660E360D432225D5251461998FD8617B017098C5F1F90D5FB607BF8C27ED530
[BOOT] Version: 1553615309
[BOOT] Slot 0 is empty
[BOOT] Active firmware up-to-date
[BOOT] Application's start address: 0x8010400
[BOOT] Application's jump address: 0x8011041
[BOOT] Application's stack address: 0x20018000
[BOOT] Forwarding to application...

Starting Simple Pelion Device Management Client example
You can hold the user button during boot to format the storage and change the device identity.

Sensors configuration:
Invalid new address!
HTS221  humidity & temperature    = 0xBC
LPS22HB pressure & temperature    = 0xB1
LIS3MDL magnetometer              = 0x3D
LSM6DSL accelerometer & gyroscope = 0x6A

Connecting to the network using Wifi...
Connected to the network successfully. IP address: 192.168.1.3
Initializing Pelion Device Management Client...
Initialized Pelion Client. Registering...
Registered to Pelion Device Management. Endpoint Name: 0169********************001002d5

ADC temp:     23.0037 C,  vref:      0.3661 V
HTS221 temp:   28.700 C,  humidity:   31.90 %
LPS22HB temp:  29.600 C,  pressure: 1032.01 mbar
LIS3MDL mag:    0.217 x,  -0.284 y,  -0.053 z [gauss]
LSM6DSL acc:    0.005 x,  -0.014 y,   1.029 z [g]
LSM6DSL gyro:   0.910 x,  -0.910 y,   1.120 z [dps]
VL53L0X dist:    1855 mm
Committer:
screamer
Date:
Mon Mar 11 11:28:07 2019 +0000
Revision:
31:da14aa77f977
Parent:
30:15743b79c6cb
Revert back to Mbed OS 5.10.4 due to issues to fit in RAM2 on GCC_ARM

Who changed what in which revision?

UserRevisionLine numberNew contents of line
screamer 31:da14aa77f977 1 /**
screamer 31:da14aa77f977 2 ******************************************************************************
screamer 31:da14aa77f977 3 * @file startup_stm32l475xx.s
screamer 31:da14aa77f977 4 * @author MCD Application Team
screamer 31:da14aa77f977 5 * @version V1.2.0
screamer 31:da14aa77f977 6 * @date 28-October-2016
screamer 31:da14aa77f977 7 * @brief STM32L475xx devices vector table for GCC toolchain.
screamer 31:da14aa77f977 8 * This module performs:
screamer 31:da14aa77f977 9 * - Set the initial SP
screamer 31:da14aa77f977 10 * - Set the initial PC == Reset_Handler,
screamer 31:da14aa77f977 11 * - Set the vector table entries with the exceptions ISR address,
screamer 31:da14aa77f977 12 * - Configure the clock system
screamer 31:da14aa77f977 13 * - Branches to main in the C library (which eventually
screamer 31:da14aa77f977 14 * calls main()).
screamer 31:da14aa77f977 15 * After Reset the Cortex-M4 processor is in Thread mode,
screamer 31:da14aa77f977 16 * priority is Privileged, and the Stack is set to Main.
screamer 31:da14aa77f977 17 ******************************************************************************
screamer 31:da14aa77f977 18 * @attention
screamer 31:da14aa77f977 19 *
screamer 31:da14aa77f977 20 * <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
screamer 31:da14aa77f977 21 *
screamer 31:da14aa77f977 22 * Redistribution and use in source and binary forms, with or without modification,
screamer 31:da14aa77f977 23 * are permitted provided that the following conditions are met:
screamer 31:da14aa77f977 24 * 1. Redistributions of source code must retain the above copyright notice,
screamer 31:da14aa77f977 25 * this list of conditions and the following disclaimer.
screamer 31:da14aa77f977 26 * 2. Redistributions in binary form must reproduce the above copyright notice,
screamer 31:da14aa77f977 27 * this list of conditions and the following disclaimer in the documentation
screamer 31:da14aa77f977 28 * and/or other materials provided with the distribution.
screamer 31:da14aa77f977 29 * 3. Neither the name of STMicroelectronics nor the names of its contributors
screamer 31:da14aa77f977 30 * may be used to endorse or promote products derived from this software
screamer 31:da14aa77f977 31 * without specific prior written permission.
screamer 31:da14aa77f977 32 *
screamer 31:da14aa77f977 33 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
screamer 31:da14aa77f977 34 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
screamer 31:da14aa77f977 35 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
screamer 31:da14aa77f977 36 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
screamer 31:da14aa77f977 37 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
screamer 31:da14aa77f977 38 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
screamer 31:da14aa77f977 39 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
screamer 31:da14aa77f977 40 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
screamer 31:da14aa77f977 41 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
screamer 31:da14aa77f977 42 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
screamer 31:da14aa77f977 43 *
screamer 31:da14aa77f977 44 ******************************************************************************
screamer 31:da14aa77f977 45 */
screamer 31:da14aa77f977 46
screamer 31:da14aa77f977 47 .syntax unified
screamer 31:da14aa77f977 48 .cpu cortex-m4
screamer 31:da14aa77f977 49 .fpu softvfp
screamer 31:da14aa77f977 50 .thumb
screamer 31:da14aa77f977 51
screamer 31:da14aa77f977 52 .global g_pfnVectors
screamer 31:da14aa77f977 53 .global Default_Handler
screamer 31:da14aa77f977 54
screamer 31:da14aa77f977 55 /* start address for the initialization values of the .data section.
screamer 31:da14aa77f977 56 defined in linker script */
screamer 31:da14aa77f977 57 .word _sidata
screamer 31:da14aa77f977 58 /* start address for the .data section. defined in linker script */
screamer 31:da14aa77f977 59 .word _sdata
screamer 31:da14aa77f977 60 /* end address for the .data section. defined in linker script */
screamer 31:da14aa77f977 61 .word _edata
screamer 31:da14aa77f977 62
screamer 31:da14aa77f977 63 .equ BootRAM, 0xF1E0F85F
screamer 31:da14aa77f977 64 /**
screamer 31:da14aa77f977 65 * @brief This is the code that gets called when the processor first
screamer 31:da14aa77f977 66 * starts execution following a reset event. Only the absolutely
screamer 31:da14aa77f977 67 * necessary set is performed, after which the application
screamer 31:da14aa77f977 68 * supplied main() routine is called.
screamer 31:da14aa77f977 69 * @param None
screamer 31:da14aa77f977 70 * @retval : None
screamer 31:da14aa77f977 71 */
screamer 31:da14aa77f977 72
screamer 31:da14aa77f977 73 .section .text.Reset_Handler
screamer 31:da14aa77f977 74 .weak Reset_Handler
screamer 31:da14aa77f977 75 .type Reset_Handler, %function
screamer 31:da14aa77f977 76 Reset_Handler:
screamer 31:da14aa77f977 77 ldr sp, =_estack /* Atollic update: set stack pointer */
screamer 31:da14aa77f977 78
screamer 31:da14aa77f977 79 /* Copy the data segment initializers from flash to SRAM */
screamer 31:da14aa77f977 80 movs r1, #0
screamer 31:da14aa77f977 81 b LoopCopyDataInit
screamer 31:da14aa77f977 82
screamer 31:da14aa77f977 83 CopyDataInit:
screamer 31:da14aa77f977 84 ldr r3, =_sidata
screamer 31:da14aa77f977 85 ldr r3, [r3, r1]
screamer 31:da14aa77f977 86 str r3, [r0, r1]
screamer 31:da14aa77f977 87 adds r1, r1, #4
screamer 31:da14aa77f977 88
screamer 31:da14aa77f977 89 LoopCopyDataInit:
screamer 31:da14aa77f977 90 ldr r0, =_sdata
screamer 31:da14aa77f977 91 ldr r3, =_edata
screamer 31:da14aa77f977 92 adds r2, r0, r1
screamer 31:da14aa77f977 93 cmp r2, r3
screamer 31:da14aa77f977 94 bcc CopyDataInit
screamer 31:da14aa77f977 95
screamer 31:da14aa77f977 96 /* Call the clock system intitialization function.*/
screamer 31:da14aa77f977 97 bl SystemInit
screamer 31:da14aa77f977 98 /* Call static constructors */
screamer 31:da14aa77f977 99 //bl __libc_init_array
screamer 31:da14aa77f977 100 /* Call the application's entry point.*/
screamer 31:da14aa77f977 101 //bl main
screamer 31:da14aa77f977 102 // Calling the crt0 'cold-start' entry point. There __libc_init_array is called
screamer 31:da14aa77f977 103 // and when existing hardware_init_hook() and software_init_hook() before
screamer 31:da14aa77f977 104 // starting main(). software_init_hook() is available and has to be called due
screamer 31:da14aa77f977 105 // to initializsation when using rtos.
screamer 31:da14aa77f977 106 bl _start
screamer 31:da14aa77f977 107 bx lr
screamer 31:da14aa77f977 108 .size Reset_Handler, .-Reset_Handler
screamer 31:da14aa77f977 109
screamer 31:da14aa77f977 110 /**
screamer 31:da14aa77f977 111 * @brief This is the code that gets called when the processor receives an
screamer 31:da14aa77f977 112 * unexpected interrupt. This simply enters an infinite loop, preserving
screamer 31:da14aa77f977 113 * the system state for examination by a debugger.
screamer 31:da14aa77f977 114 *
screamer 31:da14aa77f977 115 * @param None
screamer 31:da14aa77f977 116 * @retval : None
screamer 31:da14aa77f977 117 */
screamer 31:da14aa77f977 118 .section .text.Default_Handler,"ax",%progbits
screamer 31:da14aa77f977 119 Default_Handler:
screamer 31:da14aa77f977 120 Infinite_Loop:
screamer 31:da14aa77f977 121 b Infinite_Loop
screamer 31:da14aa77f977 122 .size Default_Handler, .-Default_Handler
screamer 31:da14aa77f977 123 /******************************************************************************
screamer 31:da14aa77f977 124 *
screamer 31:da14aa77f977 125 * The minimal vector table for a Cortex-M4. Note that the proper constructs
screamer 31:da14aa77f977 126 * must be placed on this to ensure that it ends up at physical address
screamer 31:da14aa77f977 127 * 0x0000.0000.
screamer 31:da14aa77f977 128 *
screamer 31:da14aa77f977 129 ******************************************************************************/
screamer 31:da14aa77f977 130 .section .isr_vector,"a",%progbits
screamer 31:da14aa77f977 131 .type g_pfnVectors, %object
screamer 31:da14aa77f977 132 .size g_pfnVectors, .-g_pfnVectors
screamer 31:da14aa77f977 133
screamer 31:da14aa77f977 134
screamer 31:da14aa77f977 135 g_pfnVectors:
screamer 31:da14aa77f977 136 .word _estack
screamer 31:da14aa77f977 137 .word Reset_Handler
screamer 31:da14aa77f977 138 .word NMI_Handler
screamer 31:da14aa77f977 139 .word HardFault_Handler
screamer 31:da14aa77f977 140 .word MemManage_Handler
screamer 31:da14aa77f977 141 .word BusFault_Handler
screamer 31:da14aa77f977 142 .word UsageFault_Handler
screamer 31:da14aa77f977 143 .word 0
screamer 31:da14aa77f977 144 .word 0
screamer 31:da14aa77f977 145 .word 0
screamer 31:da14aa77f977 146 .word 0
screamer 31:da14aa77f977 147 .word SVC_Handler
screamer 31:da14aa77f977 148 .word DebugMon_Handler
screamer 31:da14aa77f977 149 .word 0
screamer 31:da14aa77f977 150 .word PendSV_Handler
screamer 31:da14aa77f977 151 .word SysTick_Handler
screamer 31:da14aa77f977 152 .word WWDG_IRQHandler
screamer 31:da14aa77f977 153 .word PVD_PVM_IRQHandler
screamer 31:da14aa77f977 154 .word TAMP_STAMP_IRQHandler
screamer 31:da14aa77f977 155 .word RTC_WKUP_IRQHandler
screamer 31:da14aa77f977 156 .word FLASH_IRQHandler
screamer 31:da14aa77f977 157 .word RCC_IRQHandler
screamer 31:da14aa77f977 158 .word EXTI0_IRQHandler
screamer 31:da14aa77f977 159 .word EXTI1_IRQHandler
screamer 31:da14aa77f977 160 .word EXTI2_IRQHandler
screamer 31:da14aa77f977 161 .word EXTI3_IRQHandler
screamer 31:da14aa77f977 162 .word EXTI4_IRQHandler
screamer 31:da14aa77f977 163 .word DMA1_Channel1_IRQHandler
screamer 31:da14aa77f977 164 .word DMA1_Channel2_IRQHandler
screamer 31:da14aa77f977 165 .word DMA1_Channel3_IRQHandler
screamer 31:da14aa77f977 166 .word DMA1_Channel4_IRQHandler
screamer 31:da14aa77f977 167 .word DMA1_Channel5_IRQHandler
screamer 31:da14aa77f977 168 .word DMA1_Channel6_IRQHandler
screamer 31:da14aa77f977 169 .word DMA1_Channel7_IRQHandler
screamer 31:da14aa77f977 170 .word ADC1_2_IRQHandler
screamer 31:da14aa77f977 171 .word CAN1_TX_IRQHandler
screamer 31:da14aa77f977 172 .word CAN1_RX0_IRQHandler
screamer 31:da14aa77f977 173 .word CAN1_RX1_IRQHandler
screamer 31:da14aa77f977 174 .word CAN1_SCE_IRQHandler
screamer 31:da14aa77f977 175 .word EXTI9_5_IRQHandler
screamer 31:da14aa77f977 176 .word TIM1_BRK_TIM15_IRQHandler
screamer 31:da14aa77f977 177 .word TIM1_UP_TIM16_IRQHandler
screamer 31:da14aa77f977 178 .word TIM1_TRG_COM_TIM17_IRQHandler
screamer 31:da14aa77f977 179 .word TIM1_CC_IRQHandler
screamer 31:da14aa77f977 180 .word TIM2_IRQHandler
screamer 31:da14aa77f977 181 .word TIM3_IRQHandler
screamer 31:da14aa77f977 182 .word TIM4_IRQHandler
screamer 31:da14aa77f977 183 .word I2C1_EV_IRQHandler
screamer 31:da14aa77f977 184 .word I2C1_ER_IRQHandler
screamer 31:da14aa77f977 185 .word I2C2_EV_IRQHandler
screamer 31:da14aa77f977 186 .word I2C2_ER_IRQHandler
screamer 31:da14aa77f977 187 .word SPI1_IRQHandler
screamer 31:da14aa77f977 188 .word SPI2_IRQHandler
screamer 31:da14aa77f977 189 .word USART1_IRQHandler
screamer 31:da14aa77f977 190 .word USART2_IRQHandler
screamer 31:da14aa77f977 191 .word USART3_IRQHandler
screamer 31:da14aa77f977 192 .word EXTI15_10_IRQHandler
screamer 31:da14aa77f977 193 .word RTC_Alarm_IRQHandler
screamer 31:da14aa77f977 194 .word DFSDM1_FLT3_IRQHandler
screamer 31:da14aa77f977 195 .word TIM8_BRK_IRQHandler
screamer 31:da14aa77f977 196 .word TIM8_UP_IRQHandler
screamer 31:da14aa77f977 197 .word TIM8_TRG_COM_IRQHandler
screamer 31:da14aa77f977 198 .word TIM8_CC_IRQHandler
screamer 31:da14aa77f977 199 .word ADC3_IRQHandler
screamer 31:da14aa77f977 200 .word FMC_IRQHandler
screamer 31:da14aa77f977 201 .word SDMMC1_IRQHandler
screamer 31:da14aa77f977 202 .word TIM5_IRQHandler
screamer 31:da14aa77f977 203 .word SPI3_IRQHandler
screamer 31:da14aa77f977 204 .word UART4_IRQHandler
screamer 31:da14aa77f977 205 .word UART5_IRQHandler
screamer 31:da14aa77f977 206 .word TIM6_DAC_IRQHandler
screamer 31:da14aa77f977 207 .word TIM7_IRQHandler
screamer 31:da14aa77f977 208 .word DMA2_Channel1_IRQHandler
screamer 31:da14aa77f977 209 .word DMA2_Channel2_IRQHandler
screamer 31:da14aa77f977 210 .word DMA2_Channel3_IRQHandler
screamer 31:da14aa77f977 211 .word DMA2_Channel4_IRQHandler
screamer 31:da14aa77f977 212 .word DMA2_Channel5_IRQHandler
screamer 31:da14aa77f977 213 .word DFSDM1_FLT0_IRQHandler
screamer 31:da14aa77f977 214 .word DFSDM1_FLT1_IRQHandler
screamer 31:da14aa77f977 215 .word DFSDM1_FLT2_IRQHandler
screamer 31:da14aa77f977 216 .word COMP_IRQHandler
screamer 31:da14aa77f977 217 .word LPTIM1_IRQHandler
screamer 31:da14aa77f977 218 .word LPTIM2_IRQHandler
screamer 31:da14aa77f977 219 .word OTG_FS_IRQHandler
screamer 31:da14aa77f977 220 .word DMA2_Channel6_IRQHandler
screamer 31:da14aa77f977 221 .word DMA2_Channel7_IRQHandler
screamer 31:da14aa77f977 222 .word LPUART1_IRQHandler
screamer 31:da14aa77f977 223 .word QUADSPI_IRQHandler
screamer 31:da14aa77f977 224 .word I2C3_EV_IRQHandler
screamer 31:da14aa77f977 225 .word I2C3_ER_IRQHandler
screamer 31:da14aa77f977 226 .word SAI1_IRQHandler
screamer 31:da14aa77f977 227 .word SAI2_IRQHandler
screamer 31:da14aa77f977 228 .word SWPMI1_IRQHandler
screamer 31:da14aa77f977 229 .word TSC_IRQHandler
screamer 31:da14aa77f977 230 .word 0
screamer 31:da14aa77f977 231 .word 0
screamer 31:da14aa77f977 232 .word RNG_IRQHandler
screamer 31:da14aa77f977 233 .word FPU_IRQHandler
screamer 31:da14aa77f977 234
screamer 31:da14aa77f977 235
screamer 31:da14aa77f977 236 /*******************************************************************************
screamer 31:da14aa77f977 237 *
screamer 31:da14aa77f977 238 * Provide weak aliases for each Exception handler to the Default_Handler.
screamer 31:da14aa77f977 239 * As they are weak aliases, any function with the same name will override
screamer 31:da14aa77f977 240 * this definition.
screamer 31:da14aa77f977 241 *
screamer 31:da14aa77f977 242 *******************************************************************************/
screamer 31:da14aa77f977 243
screamer 31:da14aa77f977 244 .weak NMI_Handler
screamer 31:da14aa77f977 245 .thumb_set NMI_Handler,Default_Handler
screamer 31:da14aa77f977 246
screamer 31:da14aa77f977 247 .weak HardFault_Handler
screamer 31:da14aa77f977 248 .thumb_set HardFault_Handler,Default_Handler
screamer 31:da14aa77f977 249
screamer 31:da14aa77f977 250 .weak MemManage_Handler
screamer 31:da14aa77f977 251 .thumb_set MemManage_Handler,Default_Handler
screamer 31:da14aa77f977 252
screamer 31:da14aa77f977 253 .weak BusFault_Handler
screamer 31:da14aa77f977 254 .thumb_set BusFault_Handler,Default_Handler
screamer 31:da14aa77f977 255
screamer 31:da14aa77f977 256 .weak UsageFault_Handler
screamer 31:da14aa77f977 257 .thumb_set UsageFault_Handler,Default_Handler
screamer 31:da14aa77f977 258
screamer 31:da14aa77f977 259 .weak SVC_Handler
screamer 31:da14aa77f977 260 .thumb_set SVC_Handler,Default_Handler
screamer 31:da14aa77f977 261
screamer 31:da14aa77f977 262 .weak DebugMon_Handler
screamer 31:da14aa77f977 263 .thumb_set DebugMon_Handler,Default_Handler
screamer 31:da14aa77f977 264
screamer 31:da14aa77f977 265 .weak PendSV_Handler
screamer 31:da14aa77f977 266 .thumb_set PendSV_Handler,Default_Handler
screamer 31:da14aa77f977 267
screamer 31:da14aa77f977 268 .weak SysTick_Handler
screamer 31:da14aa77f977 269 .thumb_set SysTick_Handler,Default_Handler
screamer 31:da14aa77f977 270
screamer 31:da14aa77f977 271 .weak WWDG_IRQHandler
screamer 31:da14aa77f977 272 .thumb_set WWDG_IRQHandler,Default_Handler
screamer 31:da14aa77f977 273
screamer 31:da14aa77f977 274 .weak PVD_PVM_IRQHandler
screamer 31:da14aa77f977 275 .thumb_set PVD_PVM_IRQHandler,Default_Handler
screamer 31:da14aa77f977 276
screamer 31:da14aa77f977 277 .weak TAMP_STAMP_IRQHandler
screamer 31:da14aa77f977 278 .thumb_set TAMP_STAMP_IRQHandler,Default_Handler
screamer 31:da14aa77f977 279
screamer 31:da14aa77f977 280 .weak RTC_WKUP_IRQHandler
screamer 31:da14aa77f977 281 .thumb_set RTC_WKUP_IRQHandler,Default_Handler
screamer 31:da14aa77f977 282
screamer 31:da14aa77f977 283 .weak FLASH_IRQHandler
screamer 31:da14aa77f977 284 .thumb_set FLASH_IRQHandler,Default_Handler
screamer 31:da14aa77f977 285
screamer 31:da14aa77f977 286 .weak RCC_IRQHandler
screamer 31:da14aa77f977 287 .thumb_set RCC_IRQHandler,Default_Handler
screamer 31:da14aa77f977 288
screamer 31:da14aa77f977 289 .weak EXTI0_IRQHandler
screamer 31:da14aa77f977 290 .thumb_set EXTI0_IRQHandler,Default_Handler
screamer 31:da14aa77f977 291
screamer 31:da14aa77f977 292 .weak EXTI1_IRQHandler
screamer 31:da14aa77f977 293 .thumb_set EXTI1_IRQHandler,Default_Handler
screamer 31:da14aa77f977 294
screamer 31:da14aa77f977 295 .weak EXTI2_IRQHandler
screamer 31:da14aa77f977 296 .thumb_set EXTI2_IRQHandler,Default_Handler
screamer 31:da14aa77f977 297
screamer 31:da14aa77f977 298 .weak EXTI3_IRQHandler
screamer 31:da14aa77f977 299 .thumb_set EXTI3_IRQHandler,Default_Handler
screamer 31:da14aa77f977 300
screamer 31:da14aa77f977 301 .weak EXTI4_IRQHandler
screamer 31:da14aa77f977 302 .thumb_set EXTI4_IRQHandler,Default_Handler
screamer 31:da14aa77f977 303
screamer 31:da14aa77f977 304 .weak DMA1_Channel1_IRQHandler
screamer 31:da14aa77f977 305 .thumb_set DMA1_Channel1_IRQHandler,Default_Handler
screamer 31:da14aa77f977 306
screamer 31:da14aa77f977 307 .weak DMA1_Channel2_IRQHandler
screamer 31:da14aa77f977 308 .thumb_set DMA1_Channel2_IRQHandler,Default_Handler
screamer 31:da14aa77f977 309
screamer 31:da14aa77f977 310 .weak DMA1_Channel3_IRQHandler
screamer 31:da14aa77f977 311 .thumb_set DMA1_Channel3_IRQHandler,Default_Handler
screamer 31:da14aa77f977 312
screamer 31:da14aa77f977 313 .weak DMA1_Channel4_IRQHandler
screamer 31:da14aa77f977 314 .thumb_set DMA1_Channel4_IRQHandler,Default_Handler
screamer 31:da14aa77f977 315
screamer 31:da14aa77f977 316 .weak DMA1_Channel5_IRQHandler
screamer 31:da14aa77f977 317 .thumb_set DMA1_Channel5_IRQHandler,Default_Handler
screamer 31:da14aa77f977 318
screamer 31:da14aa77f977 319 .weak DMA1_Channel6_IRQHandler
screamer 31:da14aa77f977 320 .thumb_set DMA1_Channel6_IRQHandler,Default_Handler
screamer 31:da14aa77f977 321
screamer 31:da14aa77f977 322 .weak DMA1_Channel7_IRQHandler
screamer 31:da14aa77f977 323 .thumb_set DMA1_Channel7_IRQHandler,Default_Handler
screamer 31:da14aa77f977 324
screamer 31:da14aa77f977 325 .weak ADC1_2_IRQHandler
screamer 31:da14aa77f977 326 .thumb_set ADC1_2_IRQHandler,Default_Handler
screamer 31:da14aa77f977 327
screamer 31:da14aa77f977 328 .weak CAN1_TX_IRQHandler
screamer 31:da14aa77f977 329 .thumb_set CAN1_TX_IRQHandler,Default_Handler
screamer 31:da14aa77f977 330
screamer 31:da14aa77f977 331 .weak CAN1_RX0_IRQHandler
screamer 31:da14aa77f977 332 .thumb_set CAN1_RX0_IRQHandler,Default_Handler
screamer 31:da14aa77f977 333
screamer 31:da14aa77f977 334 .weak CAN1_RX1_IRQHandler
screamer 31:da14aa77f977 335 .thumb_set CAN1_RX1_IRQHandler,Default_Handler
screamer 31:da14aa77f977 336
screamer 31:da14aa77f977 337 .weak CAN1_SCE_IRQHandler
screamer 31:da14aa77f977 338 .thumb_set CAN1_SCE_IRQHandler,Default_Handler
screamer 31:da14aa77f977 339
screamer 31:da14aa77f977 340 .weak EXTI9_5_IRQHandler
screamer 31:da14aa77f977 341 .thumb_set EXTI9_5_IRQHandler,Default_Handler
screamer 31:da14aa77f977 342
screamer 31:da14aa77f977 343 .weak TIM1_BRK_TIM15_IRQHandler
screamer 31:da14aa77f977 344 .thumb_set TIM1_BRK_TIM15_IRQHandler,Default_Handler
screamer 31:da14aa77f977 345
screamer 31:da14aa77f977 346 .weak TIM1_UP_TIM16_IRQHandler
screamer 31:da14aa77f977 347 .thumb_set TIM1_UP_TIM16_IRQHandler,Default_Handler
screamer 31:da14aa77f977 348
screamer 31:da14aa77f977 349 .weak TIM1_TRG_COM_TIM17_IRQHandler
screamer 31:da14aa77f977 350 .thumb_set TIM1_TRG_COM_TIM17_IRQHandler,Default_Handler
screamer 31:da14aa77f977 351
screamer 31:da14aa77f977 352 .weak TIM1_CC_IRQHandler
screamer 31:da14aa77f977 353 .thumb_set TIM1_CC_IRQHandler,Default_Handler
screamer 31:da14aa77f977 354
screamer 31:da14aa77f977 355 .weak TIM2_IRQHandler
screamer 31:da14aa77f977 356 .thumb_set TIM2_IRQHandler,Default_Handler
screamer 31:da14aa77f977 357
screamer 31:da14aa77f977 358 .weak TIM3_IRQHandler
screamer 31:da14aa77f977 359 .thumb_set TIM3_IRQHandler,Default_Handler
screamer 31:da14aa77f977 360
screamer 31:da14aa77f977 361 .weak TIM4_IRQHandler
screamer 31:da14aa77f977 362 .thumb_set TIM4_IRQHandler,Default_Handler
screamer 31:da14aa77f977 363
screamer 31:da14aa77f977 364 .weak I2C1_EV_IRQHandler
screamer 31:da14aa77f977 365 .thumb_set I2C1_EV_IRQHandler,Default_Handler
screamer 31:da14aa77f977 366
screamer 31:da14aa77f977 367 .weak I2C1_ER_IRQHandler
screamer 31:da14aa77f977 368 .thumb_set I2C1_ER_IRQHandler,Default_Handler
screamer 31:da14aa77f977 369
screamer 31:da14aa77f977 370 .weak I2C2_EV_IRQHandler
screamer 31:da14aa77f977 371 .thumb_set I2C2_EV_IRQHandler,Default_Handler
screamer 31:da14aa77f977 372
screamer 31:da14aa77f977 373 .weak I2C2_ER_IRQHandler
screamer 31:da14aa77f977 374 .thumb_set I2C2_ER_IRQHandler,Default_Handler
screamer 31:da14aa77f977 375
screamer 31:da14aa77f977 376 .weak SPI1_IRQHandler
screamer 31:da14aa77f977 377 .thumb_set SPI1_IRQHandler,Default_Handler
screamer 31:da14aa77f977 378
screamer 31:da14aa77f977 379 .weak SPI2_IRQHandler
screamer 31:da14aa77f977 380 .thumb_set SPI2_IRQHandler,Default_Handler
screamer 31:da14aa77f977 381
screamer 31:da14aa77f977 382 .weak USART1_IRQHandler
screamer 31:da14aa77f977 383 .thumb_set USART1_IRQHandler,Default_Handler
screamer 31:da14aa77f977 384
screamer 31:da14aa77f977 385 .weak USART2_IRQHandler
screamer 31:da14aa77f977 386 .thumb_set USART2_IRQHandler,Default_Handler
screamer 31:da14aa77f977 387
screamer 31:da14aa77f977 388 .weak USART3_IRQHandler
screamer 31:da14aa77f977 389 .thumb_set USART3_IRQHandler,Default_Handler
screamer 31:da14aa77f977 390
screamer 31:da14aa77f977 391 .weak EXTI15_10_IRQHandler
screamer 31:da14aa77f977 392 .thumb_set EXTI15_10_IRQHandler,Default_Handler
screamer 31:da14aa77f977 393
screamer 31:da14aa77f977 394 .weak RTC_Alarm_IRQHandler
screamer 31:da14aa77f977 395 .thumb_set RTC_Alarm_IRQHandler,Default_Handler
screamer 31:da14aa77f977 396
screamer 31:da14aa77f977 397 .weak DFSDM1_FLT3_IRQHandler
screamer 31:da14aa77f977 398 .thumb_set DFSDM1_FLT3_IRQHandler,Default_Handler
screamer 31:da14aa77f977 399
screamer 31:da14aa77f977 400 .weak TIM8_BRK_IRQHandler
screamer 31:da14aa77f977 401 .thumb_set TIM8_BRK_IRQHandler,Default_Handler
screamer 31:da14aa77f977 402
screamer 31:da14aa77f977 403 .weak TIM8_UP_IRQHandler
screamer 31:da14aa77f977 404 .thumb_set TIM8_UP_IRQHandler,Default_Handler
screamer 31:da14aa77f977 405
screamer 31:da14aa77f977 406 .weak TIM8_TRG_COM_IRQHandler
screamer 31:da14aa77f977 407 .thumb_set TIM8_TRG_COM_IRQHandler,Default_Handler
screamer 31:da14aa77f977 408
screamer 31:da14aa77f977 409 .weak TIM8_CC_IRQHandler
screamer 31:da14aa77f977 410 .thumb_set TIM8_CC_IRQHandler,Default_Handler
screamer 31:da14aa77f977 411
screamer 31:da14aa77f977 412 .weak ADC3_IRQHandler
screamer 31:da14aa77f977 413 .thumb_set ADC3_IRQHandler,Default_Handler
screamer 31:da14aa77f977 414
screamer 31:da14aa77f977 415 .weak FMC_IRQHandler
screamer 31:da14aa77f977 416 .thumb_set FMC_IRQHandler,Default_Handler
screamer 31:da14aa77f977 417
screamer 31:da14aa77f977 418 .weak SDMMC1_IRQHandler
screamer 31:da14aa77f977 419 .thumb_set SDMMC1_IRQHandler,Default_Handler
screamer 31:da14aa77f977 420
screamer 31:da14aa77f977 421 .weak TIM5_IRQHandler
screamer 31:da14aa77f977 422 .thumb_set TIM5_IRQHandler,Default_Handler
screamer 31:da14aa77f977 423
screamer 31:da14aa77f977 424 .weak SPI3_IRQHandler
screamer 31:da14aa77f977 425 .thumb_set SPI3_IRQHandler,Default_Handler
screamer 31:da14aa77f977 426
screamer 31:da14aa77f977 427 .weak UART4_IRQHandler
screamer 31:da14aa77f977 428 .thumb_set UART4_IRQHandler,Default_Handler
screamer 31:da14aa77f977 429
screamer 31:da14aa77f977 430 .weak UART5_IRQHandler
screamer 31:da14aa77f977 431 .thumb_set UART5_IRQHandler,Default_Handler
screamer 31:da14aa77f977 432
screamer 31:da14aa77f977 433 .weak TIM6_DAC_IRQHandler
screamer 31:da14aa77f977 434 .thumb_set TIM6_DAC_IRQHandler,Default_Handler
screamer 31:da14aa77f977 435
screamer 31:da14aa77f977 436 .weak TIM7_IRQHandler
screamer 31:da14aa77f977 437 .thumb_set TIM7_IRQHandler,Default_Handler
screamer 31:da14aa77f977 438
screamer 31:da14aa77f977 439 .weak DMA2_Channel1_IRQHandler
screamer 31:da14aa77f977 440 .thumb_set DMA2_Channel1_IRQHandler,Default_Handler
screamer 31:da14aa77f977 441
screamer 31:da14aa77f977 442 .weak DMA2_Channel2_IRQHandler
screamer 31:da14aa77f977 443 .thumb_set DMA2_Channel2_IRQHandler,Default_Handler
screamer 31:da14aa77f977 444
screamer 31:da14aa77f977 445 .weak DMA2_Channel3_IRQHandler
screamer 31:da14aa77f977 446 .thumb_set DMA2_Channel3_IRQHandler,Default_Handler
screamer 31:da14aa77f977 447
screamer 31:da14aa77f977 448 .weak DMA2_Channel4_IRQHandler
screamer 31:da14aa77f977 449 .thumb_set DMA2_Channel4_IRQHandler,Default_Handler
screamer 31:da14aa77f977 450
screamer 31:da14aa77f977 451 .weak DMA2_Channel5_IRQHandler
screamer 31:da14aa77f977 452 .thumb_set DMA2_Channel5_IRQHandler,Default_Handler
screamer 31:da14aa77f977 453
screamer 31:da14aa77f977 454 .weak DFSDM1_FLT0_IRQHandler
screamer 31:da14aa77f977 455 .thumb_set DFSDM1_FLT0_IRQHandler,Default_Handler
screamer 31:da14aa77f977 456
screamer 31:da14aa77f977 457 .weak DFSDM1_FLT1_IRQHandler
screamer 31:da14aa77f977 458 .thumb_set DFSDM1_FLT1_IRQHandler,Default_Handler
screamer 31:da14aa77f977 459
screamer 31:da14aa77f977 460 .weak DFSDM1_FLT2_IRQHandler
screamer 31:da14aa77f977 461 .thumb_set DFSDM1_FLT2_IRQHandler,Default_Handler
screamer 31:da14aa77f977 462
screamer 31:da14aa77f977 463 .weak COMP_IRQHandler
screamer 31:da14aa77f977 464 .thumb_set COMP_IRQHandler,Default_Handler
screamer 31:da14aa77f977 465
screamer 31:da14aa77f977 466 .weak LPTIM1_IRQHandler
screamer 31:da14aa77f977 467 .thumb_set LPTIM1_IRQHandler,Default_Handler
screamer 31:da14aa77f977 468
screamer 31:da14aa77f977 469 .weak LPTIM2_IRQHandler
screamer 31:da14aa77f977 470 .thumb_set LPTIM2_IRQHandler,Default_Handler
screamer 31:da14aa77f977 471
screamer 31:da14aa77f977 472 .weak OTG_FS_IRQHandler
screamer 31:da14aa77f977 473 .thumb_set OTG_FS_IRQHandler,Default_Handler
screamer 31:da14aa77f977 474
screamer 31:da14aa77f977 475 .weak DMA2_Channel6_IRQHandler
screamer 31:da14aa77f977 476 .thumb_set DMA2_Channel6_IRQHandler,Default_Handler
screamer 31:da14aa77f977 477
screamer 31:da14aa77f977 478 .weak DMA2_Channel7_IRQHandler
screamer 31:da14aa77f977 479 .thumb_set DMA2_Channel7_IRQHandler,Default_Handler
screamer 31:da14aa77f977 480
screamer 31:da14aa77f977 481 .weak LPUART1_IRQHandler
screamer 31:da14aa77f977 482 .thumb_set LPUART1_IRQHandler,Default_Handler
screamer 31:da14aa77f977 483
screamer 31:da14aa77f977 484 .weak QUADSPI_IRQHandler
screamer 31:da14aa77f977 485 .thumb_set QUADSPI_IRQHandler,Default_Handler
screamer 31:da14aa77f977 486
screamer 31:da14aa77f977 487 .weak I2C3_EV_IRQHandler
screamer 31:da14aa77f977 488 .thumb_set I2C3_EV_IRQHandler,Default_Handler
screamer 31:da14aa77f977 489
screamer 31:da14aa77f977 490 .weak I2C3_ER_IRQHandler
screamer 31:da14aa77f977 491 .thumb_set I2C3_ER_IRQHandler,Default_Handler
screamer 31:da14aa77f977 492
screamer 31:da14aa77f977 493 .weak SAI1_IRQHandler
screamer 31:da14aa77f977 494 .thumb_set SAI1_IRQHandler,Default_Handler
screamer 31:da14aa77f977 495
screamer 31:da14aa77f977 496 .weak SAI2_IRQHandler
screamer 31:da14aa77f977 497 .thumb_set SAI2_IRQHandler,Default_Handler
screamer 31:da14aa77f977 498
screamer 31:da14aa77f977 499 .weak SWPMI1_IRQHandler
screamer 31:da14aa77f977 500 .thumb_set SWPMI1_IRQHandler,Default_Handler
screamer 31:da14aa77f977 501
screamer 31:da14aa77f977 502 .weak TSC_IRQHandler
screamer 31:da14aa77f977 503 .thumb_set TSC_IRQHandler,Default_Handler
screamer 31:da14aa77f977 504
screamer 31:da14aa77f977 505 .weak RNG_IRQHandler
screamer 31:da14aa77f977 506 .thumb_set RNG_IRQHandler,Default_Handler
screamer 31:da14aa77f977 507
screamer 31:da14aa77f977 508 .weak FPU_IRQHandler
screamer 31:da14aa77f977 509 .thumb_set FPU_IRQHandler,Default_Handler
screamer 31:da14aa77f977 510 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/