t
Fork of mbed-dev by
Diff: targets/TARGET_ONSEMI/TARGET_NCS36510/device/cmsis_nvic.c
- Revision:
- 149:156823d33999
- Child:
- 165:e614a9f1c9e2
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/targets/TARGET_ONSEMI/TARGET_NCS36510/device/cmsis_nvic.c Fri Oct 28 11:17:30 2016 +0100 @@ -0,0 +1,43 @@ +/** +****************************************************************************** +* @file cmsis_nvic.c +* @brief Contains relocatable exception table. +* @internal +* @author ON Semiconductor. +* $Rev: 0.1 $ +* $Date: 2015-11-06 $ +****************************************************************************** +* Copyright 2016 Semiconductor Components Industries LLC (d/b/a “ON Semiconductor”). +* All rights reserved. This software and/or documentation is licensed by ON Semiconductor +* under limited terms and conditions. The terms and conditions pertaining to the software +* and/or documentation are available at http://www.onsemi.com/site/pdf/ONSEMI_T&C.pdf +* (“ON Semiconductor Standard Terms and Conditions of Sale, Section 8 Software”) and +* if applicable the software license agreement. Do not use this software and/or +* documentation unless you have carefully read and you agree to the limited terms and +* conditions. By using this software and/or documentation, you agree to the limited +* terms and conditions. +* +* THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED +* OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF +* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. +* ON SEMICONDUCTOR SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, +* INCIDENTAL, OR CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER. +* @endinternal +* +* @ingroup +* +* @details +*/ + +#include <cmsis_nvic.h> + +#define NVIC_RAM_VECTOR_ADDRESS (0x20000000) // Vectors positioned at start of RAM +#define NVIC_FLASH_VECTOR_ADDRESS (0x00000000) // Initial vector position in flash + + +void NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) +{ + static volatile uint32_t *vectors = (uint32_t *)NVIC_FLASH_VECTOR_ADDRESS; + + vectors[IRQn + 16] = vector; +}