git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@4112 35acf78f-673a-0410-8e92-d51de3d6d3f4
parent
e394b3218a
commit
814b642a0c
|
@ -53,7 +53,7 @@ static unsigned cnt;
|
||||||
static EventSource inserted_event, removed_event;
|
static EventSource inserted_event, removed_event;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Inserion monitor function.
|
* @brief Insertion monitor function.
|
||||||
*
|
*
|
||||||
* @param[in] sdcp pointer to the @p SDCDriver object
|
* @param[in] sdcp pointer to the @p SDCDriver object
|
||||||
*
|
*
|
||||||
|
@ -80,7 +80,7 @@ bool_t sdc_lld_is_write_protected(SDCDriver *sdcp) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Inserion monitor timer callback function.
|
* @brief Insertion monitor timer callback function.
|
||||||
*
|
*
|
||||||
* @param[in] p pointer to the @p SDCDriver object
|
* @param[in] p pointer to the @p SDCDriver object
|
||||||
*
|
*
|
||||||
|
|
|
@ -128,7 +128,7 @@ DEBUG = dwarf-2
|
||||||
|
|
||||||
|
|
||||||
# List any extra directories to look for include files here.
|
# List any extra directories to look for include files here.
|
||||||
# Each directory must be seperated by a space.
|
# Each directory must be separated by a space.
|
||||||
# Use forward slashes for directory separators.
|
# Use forward slashes for directory separators.
|
||||||
# For a directory that has spaces, enclose it in quotes.
|
# For a directory that has spaces, enclose it in quotes.
|
||||||
EXTRAINCDIRS = $(PORTINC) $(KERNINC) $(TESTINC) \
|
EXTRAINCDIRS = $(PORTINC) $(KERNINC) $(TESTINC) \
|
||||||
|
@ -254,7 +254,7 @@ MATH_LIB = -lm
|
||||||
|
|
||||||
|
|
||||||
# List any extra directories to look for libraries here.
|
# List any extra directories to look for libraries here.
|
||||||
# Each directory must be seperated by a space.
|
# Each directory must be separated by a space.
|
||||||
# Use forward slashes for directory separators.
|
# Use forward slashes for directory separators.
|
||||||
# For a directory that has spaces, enclose it in quotes.
|
# For a directory that has spaces, enclose it in quotes.
|
||||||
EXTRALIBDIRS =
|
EXTRALIBDIRS =
|
||||||
|
|
|
@ -128,7 +128,7 @@ DEBUG = dwarf-2
|
||||||
|
|
||||||
|
|
||||||
# List any extra directories to look for include files here.
|
# List any extra directories to look for include files here.
|
||||||
# Each directory must be seperated by a space.
|
# Each directory must be separated by a space.
|
||||||
# Use forward slashes for directory separators.
|
# Use forward slashes for directory separators.
|
||||||
# For a directory that has spaces, enclose it in quotes.
|
# For a directory that has spaces, enclose it in quotes.
|
||||||
EXTRAINCDIRS = $(PORTINC) $(KERNINC) $(TESTINC) \
|
EXTRAINCDIRS = $(PORTINC) $(KERNINC) $(TESTINC) \
|
||||||
|
@ -254,7 +254,7 @@ MATH_LIB = -lm
|
||||||
|
|
||||||
|
|
||||||
# List any extra directories to look for libraries here.
|
# List any extra directories to look for libraries here.
|
||||||
# Each directory must be seperated by a space.
|
# Each directory must be separated by a space.
|
||||||
# Use forward slashes for directory separators.
|
# Use forward slashes for directory separators.
|
||||||
# For a directory that has spaces, enclose it in quotes.
|
# For a directory that has spaces, enclose it in quotes.
|
||||||
EXTRALIBDIRS =
|
EXTRALIBDIRS =
|
||||||
|
|
|
@ -137,20 +137,6 @@
|
||||||
#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__)
|
#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__)
|
||||||
#define SDC_NICE_WAITING TRUE
|
#define SDC_NICE_WAITING TRUE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Write timeout in milliseconds.
|
|
||||||
*/
|
|
||||||
#if !defined(SDC_WRITE_TIMEOUT_MS) || defined(__DOXYGEN__)
|
|
||||||
#define SDC_WRITE_TIMEOUT_MS 250
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Write timeout in milliseconds.
|
|
||||||
*/
|
|
||||||
#if !defined(SDC_READ_TIMEOUT_MS) || defined(__DOXYGEN__)
|
|
||||||
#define SDC_READ_TIMEOUT_MS 5
|
|
||||||
#endif
|
|
||||||
/** @} */
|
/** @} */
|
||||||
|
|
||||||
/*===========================================================================*/
|
/*===========================================================================*/
|
||||||
|
@ -262,7 +248,11 @@ typedef enum {
|
||||||
* @api
|
* @api
|
||||||
*/
|
*/
|
||||||
#define sdcGetCardCapacity(sdcp) ((sdcp)->capacity)
|
#define sdcGetCardCapacity(sdcp) ((sdcp)->capacity)
|
||||||
|
/** @} */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @name CSD record offsets
|
||||||
|
*/
|
||||||
/**
|
/**
|
||||||
* @brief Slice position of values in CSD register.
|
* @brief Slice position of values in CSD register.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -249,7 +249,10 @@ static void sdc_lld_collect_errors(SDCDriver *sdcp) {
|
||||||
*
|
*
|
||||||
* @notapi
|
* @notapi
|
||||||
*/
|
*/
|
||||||
static void sdc_lld_error_cleanup(SDCDriver *sdcp, uint32_t n, uint32_t *resp){
|
static void sdc_lld_error_cleanup(SDCDriver *sdcp,
|
||||||
|
uint32_t n,
|
||||||
|
uint32_t *resp) {
|
||||||
|
|
||||||
dmaStreamClearInterrupt(sdcp->dma);
|
dmaStreamClearInterrupt(sdcp->dma);
|
||||||
dmaStreamDisable(sdcp->dma);
|
dmaStreamDisable(sdcp->dma);
|
||||||
SDIO->ICR = STM32_SDIO_ICR_ALL_FLAGS;
|
SDIO->ICR = STM32_SDIO_ICR_ALL_FLAGS;
|
||||||
|
@ -324,11 +327,11 @@ void sdc_lld_start(SDCDriver *sdcp) {
|
||||||
STM32_DMA_CR_MSIZE_WORD |
|
STM32_DMA_CR_MSIZE_WORD |
|
||||||
STM32_DMA_CR_MINC;
|
STM32_DMA_CR_MINC;
|
||||||
|
|
||||||
#if (defined(STM32F4XX) || defined(STM32F2XX))
|
#if (defined(STM32F4XX) || defined(STM32F2XX))
|
||||||
sdcp->dmamode |= STM32_DMA_CR_PFCTRL |
|
sdcp->dmamode |= STM32_DMA_CR_PFCTRL |
|
||||||
STM32_DMA_CR_PBURST_INCR4 |
|
STM32_DMA_CR_PBURST_INCR4 |
|
||||||
STM32_DMA_CR_MBURST_INCR4;
|
STM32_DMA_CR_MBURST_INCR4;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (sdcp->state == SDC_STOP) {
|
if (sdcp->state == SDC_STOP) {
|
||||||
/* Note, the DMA must be enabled before the IRQs.*/
|
/* Note, the DMA must be enabled before the IRQs.*/
|
||||||
|
@ -336,9 +339,9 @@ void sdc_lld_start(SDCDriver *sdcp) {
|
||||||
b = dmaStreamAllocate(sdcp->dma, STM32_SDC_SDIO_IRQ_PRIORITY, NULL, NULL);
|
b = dmaStreamAllocate(sdcp->dma, STM32_SDC_SDIO_IRQ_PRIORITY, NULL, NULL);
|
||||||
chDbgAssert(!b, "i2c_lld_start(), #3", "stream already allocated");
|
chDbgAssert(!b, "i2c_lld_start(), #3", "stream already allocated");
|
||||||
dmaStreamSetPeripheral(sdcp->dma, &SDIO->FIFO);
|
dmaStreamSetPeripheral(sdcp->dma, &SDIO->FIFO);
|
||||||
#if (defined(STM32F4XX) || defined(STM32F2XX))
|
#if (defined(STM32F4XX) || defined(STM32F2XX))
|
||||||
dmaStreamSetFIFO(sdcp->dma, STM32_DMA_FCR_DMDIS | STM32_DMA_FCR_FTH_FULL);
|
dmaStreamSetFIFO(sdcp->dma, STM32_DMA_FCR_DMDIS | STM32_DMA_FCR_FTH_FULL);
|
||||||
#endif
|
#endif
|
||||||
nvicEnableVector(SDIO_IRQn,
|
nvicEnableVector(SDIO_IRQn,
|
||||||
CORTEX_PRIORITY_MASK(STM32_SDC_SDIO_IRQ_PRIORITY));
|
CORTEX_PRIORITY_MASK(STM32_SDC_SDIO_IRQ_PRIORITY));
|
||||||
rccEnableSDIO(FALSE);
|
rccEnableSDIO(FALSE);
|
||||||
|
@ -383,6 +386,7 @@ void sdc_lld_stop(SDCDriver *sdcp) {
|
||||||
void sdc_lld_start_clk(SDCDriver *sdcp) {
|
void sdc_lld_start_clk(SDCDriver *sdcp) {
|
||||||
|
|
||||||
(void)sdcp;
|
(void)sdcp;
|
||||||
|
|
||||||
/* Initial clock setting: 400kHz, 1bit mode.*/
|
/* Initial clock setting: 400kHz, 1bit mode.*/
|
||||||
SDIO->CLKCR = STM32_SDIO_DIV_LS;
|
SDIO->CLKCR = STM32_SDIO_DIV_LS;
|
||||||
SDIO->POWER |= SDIO_POWER_PWRCTRL_0 | SDIO_POWER_PWRCTRL_1;
|
SDIO->POWER |= SDIO_POWER_PWRCTRL_0 | SDIO_POWER_PWRCTRL_1;
|
||||||
|
@ -399,6 +403,7 @@ void sdc_lld_start_clk(SDCDriver *sdcp) {
|
||||||
void sdc_lld_set_data_clk(SDCDriver *sdcp) {
|
void sdc_lld_set_data_clk(SDCDriver *sdcp) {
|
||||||
|
|
||||||
(void)sdcp;
|
(void)sdcp;
|
||||||
|
|
||||||
SDIO->CLKCR = (SDIO->CLKCR & 0xFFFFFF00) | STM32_SDIO_DIV_HS;
|
SDIO->CLKCR = (SDIO->CLKCR & 0xFFFFFF00) | STM32_SDIO_DIV_HS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -412,6 +417,7 @@ void sdc_lld_set_data_clk(SDCDriver *sdcp) {
|
||||||
void sdc_lld_stop_clk(SDCDriver *sdcp) {
|
void sdc_lld_stop_clk(SDCDriver *sdcp) {
|
||||||
|
|
||||||
(void)sdcp;
|
(void)sdcp;
|
||||||
|
|
||||||
SDIO->CLKCR = 0;
|
SDIO->CLKCR = 0;
|
||||||
SDIO->POWER = 0;
|
SDIO->POWER = 0;
|
||||||
}
|
}
|
||||||
|
@ -428,6 +434,7 @@ void sdc_lld_set_bus_mode(SDCDriver *sdcp, sdcbusmode_t mode) {
|
||||||
uint32_t clk = SDIO->CLKCR & ~SDIO_CLKCR_WIDBUS;
|
uint32_t clk = SDIO->CLKCR & ~SDIO_CLKCR_WIDBUS;
|
||||||
|
|
||||||
(void)sdcp;
|
(void)sdcp;
|
||||||
|
|
||||||
switch (mode) {
|
switch (mode) {
|
||||||
case SDC_MODE_1BIT:
|
case SDC_MODE_1BIT:
|
||||||
SDIO->CLKCR = clk;
|
SDIO->CLKCR = clk;
|
||||||
|
@ -453,6 +460,7 @@ void sdc_lld_set_bus_mode(SDCDriver *sdcp, sdcbusmode_t mode) {
|
||||||
void sdc_lld_send_cmd_none(SDCDriver *sdcp, uint8_t cmd, uint32_t arg) {
|
void sdc_lld_send_cmd_none(SDCDriver *sdcp, uint8_t cmd, uint32_t arg) {
|
||||||
|
|
||||||
(void)sdcp;
|
(void)sdcp;
|
||||||
|
|
||||||
SDIO->ARG = arg;
|
SDIO->ARG = arg;
|
||||||
SDIO->CMD = (uint32_t)cmd | SDIO_CMD_CPSMEN;
|
SDIO->CMD = (uint32_t)cmd | SDIO_CMD_CPSMEN;
|
||||||
while ((SDIO->STA & SDIO_STA_CMDSENT) == 0)
|
while ((SDIO->STA & SDIO_STA_CMDSENT) == 0)
|
||||||
|
@ -480,6 +488,7 @@ bool_t sdc_lld_send_cmd_short(SDCDriver *sdcp, uint8_t cmd, uint32_t arg,
|
||||||
uint32_t sta;
|
uint32_t sta;
|
||||||
|
|
||||||
(void)sdcp;
|
(void)sdcp;
|
||||||
|
|
||||||
SDIO->ARG = arg;
|
SDIO->ARG = arg;
|
||||||
SDIO->CMD = (uint32_t)cmd | SDIO_CMD_WAITRESP_0 | SDIO_CMD_CPSMEN;
|
SDIO->CMD = (uint32_t)cmd | SDIO_CMD_WAITRESP_0 | SDIO_CMD_CPSMEN;
|
||||||
while (((sta = SDIO->STA) & (SDIO_STA_CMDREND | SDIO_STA_CTIMEOUT |
|
while (((sta = SDIO->STA) & (SDIO_STA_CMDREND | SDIO_STA_CTIMEOUT |
|
||||||
|
@ -513,6 +522,7 @@ bool_t sdc_lld_send_cmd_short_crc(SDCDriver *sdcp, uint8_t cmd, uint32_t arg,
|
||||||
uint32_t sta;
|
uint32_t sta;
|
||||||
|
|
||||||
(void)sdcp;
|
(void)sdcp;
|
||||||
|
|
||||||
SDIO->ARG = arg;
|
SDIO->ARG = arg;
|
||||||
SDIO->CMD = (uint32_t)cmd | SDIO_CMD_WAITRESP_0 | SDIO_CMD_CPSMEN;
|
SDIO->CMD = (uint32_t)cmd | SDIO_CMD_WAITRESP_0 | SDIO_CMD_CPSMEN;
|
||||||
while (((sta = SDIO->STA) & (SDIO_STA_CMDREND | SDIO_STA_CTIMEOUT |
|
while (((sta = SDIO->STA) & (SDIO_STA_CMDREND | SDIO_STA_CTIMEOUT |
|
||||||
|
@ -543,10 +553,10 @@ bool_t sdc_lld_send_cmd_short_crc(SDCDriver *sdcp, uint8_t cmd, uint32_t arg,
|
||||||
*/
|
*/
|
||||||
bool_t sdc_lld_send_cmd_long_crc(SDCDriver *sdcp, uint8_t cmd, uint32_t arg,
|
bool_t sdc_lld_send_cmd_long_crc(SDCDriver *sdcp, uint8_t cmd, uint32_t arg,
|
||||||
uint32_t *resp) {
|
uint32_t *resp) {
|
||||||
|
|
||||||
uint32_t sta;
|
uint32_t sta;
|
||||||
|
|
||||||
(void)sdcp;
|
(void)sdcp;
|
||||||
|
|
||||||
SDIO->ARG = arg;
|
SDIO->ARG = arg;
|
||||||
SDIO->CMD = (uint32_t)cmd | SDIO_CMD_WAITRESP_0 | SDIO_CMD_WAITRESP_1 |
|
SDIO->CMD = (uint32_t)cmd | SDIO_CMD_WAITRESP_0 | SDIO_CMD_WAITRESP_1 |
|
||||||
SDIO_CMD_CPSMEN;
|
SDIO_CMD_CPSMEN;
|
||||||
|
@ -620,8 +630,8 @@ bool_t sdc_lld_read_aligned(SDCDriver *sdcp, uint32_t startblk,
|
||||||
SDIO_DCTRL_DTEN;
|
SDIO_DCTRL_DTEN;
|
||||||
if (sdc_lld_wait_transaction_end(sdcp, n, resp) == TRUE)
|
if (sdc_lld_wait_transaction_end(sdcp, n, resp) == TRUE)
|
||||||
goto error;
|
goto error;
|
||||||
else
|
|
||||||
return CH_SUCCESS;
|
return CH_SUCCESS;
|
||||||
|
|
||||||
error:
|
error:
|
||||||
sdc_lld_error_cleanup(sdcp, n, resp);
|
sdc_lld_error_cleanup(sdcp, n, resp);
|
||||||
|
@ -681,8 +691,8 @@ bool_t sdc_lld_write_aligned(SDCDriver *sdcp, uint32_t startblk,
|
||||||
SDIO_DCTRL_DTEN;
|
SDIO_DCTRL_DTEN;
|
||||||
if (sdc_lld_wait_transaction_end(sdcp, n, resp) == TRUE)
|
if (sdc_lld_wait_transaction_end(sdcp, n, resp) == TRUE)
|
||||||
goto error;
|
goto error;
|
||||||
else
|
|
||||||
return CH_SUCCESS;
|
return CH_SUCCESS;
|
||||||
|
|
||||||
error:
|
error:
|
||||||
sdc_lld_error_cleanup(sdcp, n, resp);
|
sdc_lld_error_cleanup(sdcp, n, resp);
|
||||||
|
|
|
@ -75,6 +75,19 @@
|
||||||
#define STM32_SDC_SDIO_IRQ_PRIORITY 9
|
#define STM32_SDC_SDIO_IRQ_PRIORITY 9
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Write timeout in milliseconds.
|
||||||
|
*/
|
||||||
|
#if !defined(SDC_WRITE_TIMEOUT_MS) || defined(__DOXYGEN__)
|
||||||
|
#define SDC_WRITE_TIMEOUT_MS 250
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Read timeout in milliseconds.
|
||||||
|
*/
|
||||||
|
#if !defined(SDC_READ_TIMEOUT_MS) || defined(__DOXYGEN__)
|
||||||
|
#define SDC_READ_TIMEOUT_MS 5
|
||||||
|
#endif
|
||||||
/** @} */
|
/** @} */
|
||||||
|
|
||||||
/*===========================================================================*/
|
/*===========================================================================*/
|
||||||
|
@ -93,31 +106,33 @@
|
||||||
* SDIO clock divider.
|
* SDIO clock divider.
|
||||||
*/
|
*/
|
||||||
#if (defined(STM32F4XX) || defined(STM32F2XX))
|
#if (defined(STM32F4XX) || defined(STM32F2XX))
|
||||||
#define STM32_SDIO_DIV_HS 0
|
#define STM32_SDIO_DIV_HS 0
|
||||||
#define STM32_SDIO_DIV_LS 120
|
#define STM32_SDIO_DIV_LS 120
|
||||||
|
|
||||||
#elif STM32_HCLK > 48000000
|
#elif STM32_HCLK > 48000000
|
||||||
#define STM32_SDIO_DIV_HS 1
|
#define STM32_SDIO_DIV_HS 1
|
||||||
#define STM32_SDIO_DIV_LS 178
|
#define STM32_SDIO_DIV_LS 178
|
||||||
#else
|
#else
|
||||||
#define STM32_SDIO_DIV_HS 0
|
|
||||||
#define STM32_SDIO_DIV_LS 118
|
#define STM32_SDIO_DIV_HS 0
|
||||||
|
#define STM32_SDIO_DIV_LS 118
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief SDIO data timeouts in SDIO clock cycles.
|
* @brief SDIO data timeouts in SDIO clock cycles.
|
||||||
*/
|
*/
|
||||||
#if (defined(STM32F4XX) || defined(STM32F2XX))
|
#if (defined(STM32F4XX) || defined(STM32F2XX))
|
||||||
#define STM32_SDC_WRITE_TIMEOUT \
|
#define STM32_SDC_WRITE_TIMEOUT \
|
||||||
(((48000000 / (STM32_SDIO_DIV_HS + 2)) / 1000) * SDC_WRITE_TIMEOUT_MS)
|
(((STM32_PLL48CLK / (STM32_SDIO_DIV_HS + 2)) / 1000) * SDC_WRITE_TIMEOUT_MS)
|
||||||
#define STM32_SDC_READ_TIMEOUT \
|
#define STM32_SDC_READ_TIMEOUT \
|
||||||
(((48000000 / (STM32_SDIO_DIV_HS + 2)) / 1000) * SDC_READ_TIMEOUT_MS)
|
(((STM32_PLL48CLK / (STM32_SDIO_DIV_HS + 2)) / 1000) * SDC_READ_TIMEOUT_MS)
|
||||||
#else
|
|
||||||
#define STM32_SDC_WRITE_TIMEOUT \
|
|
||||||
(((STM32_HCLK /((STM32_SDIO_DIV_HS + 2)) / 1000) * SDC_WRITE_TIMEOUT_MS)
|
|
||||||
#define STM32_SDC_READ_TIMEOUT \
|
|
||||||
(((STM32_HCLK /((STM32_SDIO_DIV_HS + 2)) / 1000) * SDC_READ_TIMEOUT_MS)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
#else
|
||||||
|
#define STM32_SDC_WRITE_TIMEOUT \
|
||||||
|
(((STM32_HCLK /((STM32_SDIO_DIV_HS + 2)) / 1000) * SDC_WRITE_TIMEOUT_MS)
|
||||||
|
#define STM32_SDC_READ_TIMEOUT \
|
||||||
|
(((STM32_HCLK /((STM32_SDIO_DIV_HS + 2)) / 1000) * SDC_READ_TIMEOUT_MS)
|
||||||
|
#endif
|
||||||
|
|
||||||
/*===========================================================================*/
|
/*===========================================================================*/
|
||||||
/* Driver data structures and types. */
|
/* Driver data structures and types. */
|
||||||
|
|
|
@ -62,25 +62,43 @@
|
||||||
#define CH_KERNEL_PATCH 0
|
#define CH_KERNEL_PATCH 0
|
||||||
/** @} */
|
/** @} */
|
||||||
|
|
||||||
/*
|
/**
|
||||||
* Common values.
|
* @name Common constants
|
||||||
*/
|
*/
|
||||||
#ifndef FALSE
|
/**
|
||||||
|
* @brief Generic 'false' boolean constant.
|
||||||
|
*/
|
||||||
|
#if !defined(FALSE) || defined(__DOXYGEN__)
|
||||||
#define FALSE 0
|
#define FALSE 0
|
||||||
#endif
|
#endif
|
||||||
#ifndef TRUE
|
|
||||||
|
/**
|
||||||
|
* @brief Generic 'true' boolean constant.
|
||||||
|
*/
|
||||||
|
#if !defined(TRUE) || defined(__DOXYGEN__)
|
||||||
#define TRUE (!FALSE)
|
#define TRUE (!FALSE)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
/**
|
||||||
* Human readable boolean error conditions.
|
* @brief Generic success constant.
|
||||||
|
* @details This constant is functionally equivalent to @p FALSE but more
|
||||||
|
* readable, it can be used as return value of all those functions
|
||||||
|
* returning a @p bool_t as a status indicator.
|
||||||
*/
|
*/
|
||||||
#ifndef CH_SUCCESS
|
#if !defined(CH_SUCCESS) || defined(__DOXYGEN__)
|
||||||
#define CH_SUCCESS FALSE
|
#define CH_SUCCESS FALSE
|
||||||
#endif
|
#endif
|
||||||
#ifndef CH_FAILED
|
|
||||||
|
/**
|
||||||
|
* @brief Generic failure constant.
|
||||||
|
* @details This constant is functionally equivalent to @p TRUE but more
|
||||||
|
* readable, it can be used as return value of all those functions
|
||||||
|
* returning a @p bool_t as a status indicator.
|
||||||
|
*/
|
||||||
|
#if !defined(CH_FAILED) || defined(__DOXYGEN__)
|
||||||
#define CH_FAILED TRUE
|
#define CH_FAILED TRUE
|
||||||
#endif
|
#endif
|
||||||
|
/** @} */
|
||||||
|
|
||||||
#include "chconf.h"
|
#include "chconf.h"
|
||||||
#include "chtypes.h"
|
#include "chtypes.h"
|
||||||
|
|
|
@ -258,7 +258,7 @@ Mutex *chMtxUnlock(void) {
|
||||||
chDbgAssert(ctp->p_mtxlist->m_owner == ctp,
|
chDbgAssert(ctp->p_mtxlist->m_owner == ctp,
|
||||||
"chMtxUnlock(), #2",
|
"chMtxUnlock(), #2",
|
||||||
"ownership failure");
|
"ownership failure");
|
||||||
/* Removes the top Mutex from the Thread's owned mutexes list and matk it
|
/* Removes the top Mutex from the Thread's owned mutexes list and marks it
|
||||||
as not owned.*/
|
as not owned.*/
|
||||||
ump = ctp->p_mtxlist;
|
ump = ctp->p_mtxlist;
|
||||||
ctp->p_mtxlist = ump->m_next;
|
ctp->p_mtxlist = ump->m_next;
|
||||||
|
|
|
@ -114,57 +114,55 @@ __attribute__ ((naked))
|
||||||
#endif
|
#endif
|
||||||
void _unhandled_exception(void) {
|
void _unhandled_exception(void) {
|
||||||
|
|
||||||
asm volatile (
|
|
||||||
".weak NMIVector \nNMIVector: \n\t"
|
|
||||||
".weak HardFaultVector \nHardFaultVector: \n\t"
|
|
||||||
".weak MemManageVector \nMemManageVector: \n\t"
|
|
||||||
".weak BusFaultVector \nBusFaultVector: \n\t"
|
|
||||||
".weak UsageFaultVector \nUsageFaultVector: \n\t"
|
|
||||||
".weak Vector1C \nVector1C: \n\t"
|
|
||||||
".weak Vector20 \nVector20: \n\t"
|
|
||||||
".weak Vector24 \nVector24: \n\t"
|
|
||||||
".weak Vector28 \nVector28: \n\t"
|
|
||||||
".weak SVCallVector \nSVCallVector: \n\t"
|
|
||||||
".weak DebugMonitorVector \nDebugMonitorVector: \n\t"
|
|
||||||
".weak Vector34 \nVector34: \n\t"
|
|
||||||
".weak PendSVVector \nPendSVVector: \n\t"
|
|
||||||
".weak SysTickVector \nSysTickVector: \n\t"
|
|
||||||
".weak Vector40 \nVector40: \n\t"
|
|
||||||
".weak Vector44 \nVector44: \n\t"
|
|
||||||
".weak Vector48 \nVector48: \n\t"
|
|
||||||
".weak Vector4C \nVector4C: \n\t"
|
|
||||||
".weak Vector50 \nVector50: \n\t"
|
|
||||||
".weak Vector54 \nVector54: \n\t"
|
|
||||||
".weak Vector58 \nVector58: \n\t"
|
|
||||||
".weak Vector5C \nVector5C: \n\t"
|
|
||||||
".weak Vector60 \nVector60: \n\t"
|
|
||||||
".weak Vector64 \nVector64: \n\t"
|
|
||||||
".weak Vector68 \nVector68: \n\t"
|
|
||||||
".weak Vector6C \nVector6C: \n\t"
|
|
||||||
".weak Vector70 \nVector70: \n\t"
|
|
||||||
".weak Vector74 \nVector74: \n\t"
|
|
||||||
".weak Vector78 \nVector78: \n\t"
|
|
||||||
".weak Vector7C \nVector7C: \n\t"
|
|
||||||
".weak Vector80 \nVector80: \n\t"
|
|
||||||
".weak Vector84 \nVector84: \n\t"
|
|
||||||
".weak Vector88 \nVector88: \n\t"
|
|
||||||
".weak Vector8C \nVector8C: \n\t"
|
|
||||||
".weak Vector90 \nVector90: \n\t"
|
|
||||||
".weak Vector94 \nVector94: \n\t"
|
|
||||||
".weak Vector98 \nVector98: \n\t"
|
|
||||||
".weak Vector9C \nVector9C: \n\t"
|
|
||||||
".weak VectorA0 \nVectorA0: \n\t"
|
|
||||||
".weak VectorA4 \nVectorA4: \n\t"
|
|
||||||
".weak VectorA8 \nVectorA8: \n\t"
|
|
||||||
".weak VectorAC \nVectorAC: \n\t"
|
|
||||||
".weak VectorB0 \nVectorB0: \n\t"
|
|
||||||
".weak VectorB4 \nVectorB4: \n\t"
|
|
||||||
".weak VectorB8 \nVectorB8: \n\t"
|
|
||||||
".weak VectorBC \nVectorBC: \n\t"
|
|
||||||
);
|
|
||||||
|
|
||||||
while (TRUE)
|
while (TRUE)
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void NMIVector(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void HardFaultVector(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void MemManageVector(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void BusFaultVector(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void UsageFaultVector(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector1C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector20(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector24(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector28(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void SVCallVector(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void DebugMonitorVector(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector34(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void PendSVVector(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void SysTickVector(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector40(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector44(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector48(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector4C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector50(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector54(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector58(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector5C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector60(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector64(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector68(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector6C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector70(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector74(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector78(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector7C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector80(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector84(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector88(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector8C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector90(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector94(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector98(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector9C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorA0(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorA4(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorA8(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorAC(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorB0(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorB4(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorB8(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorBC(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
|
||||||
/** @} */
|
/** @} */
|
||||||
|
|
|
@ -144,81 +144,79 @@ __attribute__ ((naked))
|
||||||
#endif
|
#endif
|
||||||
void _unhandled_exception(void) {
|
void _unhandled_exception(void) {
|
||||||
|
|
||||||
asm volatile (
|
|
||||||
".weak NMIVector \nNMIVector: \n\t"
|
|
||||||
".weak HardFaultVector \nHardFaultVector: \n\t"
|
|
||||||
".weak MemManageVector \nMemManageVector: \n\t"
|
|
||||||
".weak BusFaultVector \nBusFaultVector: \n\t"
|
|
||||||
".weak UsageFaultVector \nUsageFaultVector: \n\t"
|
|
||||||
".weak Vector1C \nVector1C: \n\t"
|
|
||||||
".weak Vector20 \nVector20: \n\t"
|
|
||||||
".weak Vector24 \nVector24: \n\t"
|
|
||||||
".weak Vector28 \nVector28: \n\t"
|
|
||||||
".weak SVCallVector \nSVCallVector: \n\t"
|
|
||||||
".weak DebugMonitorVector \nDebugMonitorVector: \n\t"
|
|
||||||
".weak Vector34 \nVector34: \n\t"
|
|
||||||
".weak PendSVVector \nPendSVVector: \n\t"
|
|
||||||
".weak SysTickVector \nSysTickVector: \n\t"
|
|
||||||
".weak Vector40 \nVector40: \n\t"
|
|
||||||
".weak Vector44 \nVector44: \n\t"
|
|
||||||
".weak Vector48 \nVector48: \n\t"
|
|
||||||
".weak Vector4C \nVector4C: \n\t"
|
|
||||||
".weak Vector50 \nVector50: \n\t"
|
|
||||||
".weak Vector54 \nVector54: \n\t"
|
|
||||||
".weak Vector58 \nVector58: \n\t"
|
|
||||||
".weak Vector5C \nVector5C: \n\t"
|
|
||||||
".weak Vector60 \nVector60: \n\t"
|
|
||||||
".weak Vector64 \nVector64: \n\t"
|
|
||||||
".weak Vector68 \nVector68: \n\t"
|
|
||||||
".weak Vector6C \nVector6C: \n\t"
|
|
||||||
".weak Vector70 \nVector70: \n\t"
|
|
||||||
".weak Vector74 \nVector74: \n\t"
|
|
||||||
".weak Vector78 \nVector78: \n\t"
|
|
||||||
".weak Vector7C \nVector7C: \n\t"
|
|
||||||
".weak Vector80 \nVector80: \n\t"
|
|
||||||
".weak Vector84 \nVector84: \n\t"
|
|
||||||
".weak Vector88 \nVector88: \n\t"
|
|
||||||
".weak Vector8C \nVector8C: \n\t"
|
|
||||||
".weak Vector90 \nVector90: \n\t"
|
|
||||||
".weak Vector94 \nVector94: \n\t"
|
|
||||||
".weak Vector98 \nVector98: \n\t"
|
|
||||||
".weak Vector9C \nVector9C: \n\t"
|
|
||||||
".weak VectorA0 \nVectorA0: \n\t"
|
|
||||||
".weak VectorA4 \nVectorA4: \n\t"
|
|
||||||
".weak VectorA8 \nVectorA8: \n\t"
|
|
||||||
".weak VectorAC \nVectorAC: \n\t"
|
|
||||||
".weak VectorB0 \nVectorB0: \n\t"
|
|
||||||
".weak VectorB4 \nVectorB4: \n\t"
|
|
||||||
".weak VectorB8 \nVectorB8: \n\t"
|
|
||||||
".weak VectorBC \nVectorBC: \n\t"
|
|
||||||
".weak VectorC0 \nVectorC0: \n\t"
|
|
||||||
".weak VectorC4 \nVectorC4: \n\t"
|
|
||||||
".weak VectorC8 \nVectorC8: \n\t"
|
|
||||||
".weak VectorCC \nVectorCC: \n\t"
|
|
||||||
".weak VectorD0 \nVectorD0: \n\t"
|
|
||||||
".weak VectorD4 \nVectorD4: \n\t"
|
|
||||||
".weak VectorD8 \nVectorD8: \n\t"
|
|
||||||
".weak VectorDC \nVectorDC: \n\t"
|
|
||||||
".weak VectorE0 \nVectorE0: \n\t"
|
|
||||||
".weak VectorE4 \nVectorE4: \n\t"
|
|
||||||
".weak VectorE8 \nVectorE8: \n\t"
|
|
||||||
".weak VectorEC \nVectorEC: \n\t"
|
|
||||||
".weak VectorF0 \nVectorF0: \n\t"
|
|
||||||
".weak VectorF4 \nVectorF4: \n\t"
|
|
||||||
".weak VectorF8 \nVectorF8: \n\t"
|
|
||||||
".weak VectorFC \nVectorFC: \n\t"
|
|
||||||
".weak Vector100 \nVector100: \n\t"
|
|
||||||
".weak Vector104 \nVector104: \n\t"
|
|
||||||
".weak Vector108 \nVector108: \n\t"
|
|
||||||
".weak Vector10C \nVector10C: \n\t"
|
|
||||||
".weak Vector110 \nVector110: \n\t"
|
|
||||||
".weak Vector114 \nVector114: \n\t"
|
|
||||||
".weak Vector118 \nVector118: \n\t"
|
|
||||||
".weak Vector11C \nVector11C: \n\t"
|
|
||||||
);
|
|
||||||
|
|
||||||
while (TRUE)
|
while (TRUE)
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void NMIVector(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void HardFaultVector(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void MemManageVector(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void BusFaultVector(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void UsageFaultVector(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector1C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector20(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector24(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector28(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void SVCallVector(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void DebugMonitorVector(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector34(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void PendSVVector(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void SysTickVector(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector40(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector44(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector48(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector4C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector50(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector54(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector58(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector5C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector60(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector64(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector68(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector6C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector70(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector74(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector78(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector7C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector80(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector84(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector88(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector8C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector90(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector94(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector98(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector9C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorA0(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorA4(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorA8(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorAC(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorB0(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorB4(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorB8(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorBC(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorC0(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorC4(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorC8(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorCC(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorD0(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorD4(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorD8(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorDC(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorE0(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorE4(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorE8(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorEC(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorF0(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorF4(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorF8(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorFC(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector100(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector104(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector108(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector10C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector110(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector114(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector118(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector11C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
|
||||||
/** @} */
|
/** @} */
|
||||||
|
|
|
@ -193,100 +193,98 @@ __attribute__ ((naked))
|
||||||
#endif
|
#endif
|
||||||
void _unhandled_exception(void) {
|
void _unhandled_exception(void) {
|
||||||
|
|
||||||
asm volatile (
|
|
||||||
".weak NMIVector \nNMIVector: \n\t"
|
|
||||||
".weak HardFaultVector \nHardFaultVector: \n\t"
|
|
||||||
".weak MemManageVector \nMemManageVector: \n\t"
|
|
||||||
".weak BusFaultVector \nBusFaultVector: \n\t"
|
|
||||||
".weak UsageFaultVector \nUsageFaultVector: \n\t"
|
|
||||||
".weak Vector1C \nVector1C: \n\t"
|
|
||||||
".weak Vector20 \nVector20: \n\t"
|
|
||||||
".weak Vector24 \nVector24: \n\t"
|
|
||||||
".weak Vector28 \nVector28: \n\t"
|
|
||||||
".weak SVCallVector \nSVCallVector: \n\t"
|
|
||||||
".weak DebugMonitorVector \nDebugMonitorVector: \n\t"
|
|
||||||
".weak Vector34 \nVector34: \n\t"
|
|
||||||
".weak PendSVVector \nPendSVVector: \n\t"
|
|
||||||
".weak SysTickVector \nSysTickVector: \n\t"
|
|
||||||
".weak Vector40 \nVector40: \n\t"
|
|
||||||
".weak Vector44 \nVector44: \n\t"
|
|
||||||
".weak Vector48 \nVector48: \n\t"
|
|
||||||
".weak Vector4C \nVector4C: \n\t"
|
|
||||||
".weak Vector50 \nVector50: \n\t"
|
|
||||||
".weak Vector54 \nVector54: \n\t"
|
|
||||||
".weak Vector58 \nVector58: \n\t"
|
|
||||||
".weak Vector5C \nVector5C: \n\t"
|
|
||||||
".weak Vector60 \nVector60: \n\t"
|
|
||||||
".weak Vector64 \nVector64: \n\t"
|
|
||||||
".weak Vector68 \nVector68: \n\t"
|
|
||||||
".weak Vector6C \nVector6C: \n\t"
|
|
||||||
".weak Vector70 \nVector70: \n\t"
|
|
||||||
".weak Vector74 \nVector74: \n\t"
|
|
||||||
".weak Vector78 \nVector78: \n\t"
|
|
||||||
".weak Vector7C \nVector7C: \n\t"
|
|
||||||
".weak Vector80 \nVector80: \n\t"
|
|
||||||
".weak Vector84 \nVector84: \n\t"
|
|
||||||
".weak Vector88 \nVector88: \n\t"
|
|
||||||
".weak Vector8C \nVector8C: \n\t"
|
|
||||||
".weak Vector90 \nVector90: \n\t"
|
|
||||||
".weak Vector94 \nVector94: \n\t"
|
|
||||||
".weak Vector98 \nVector98: \n\t"
|
|
||||||
".weak Vector9C \nVector9C: \n\t"
|
|
||||||
".weak VectorA0 \nVectorA0: \n\t"
|
|
||||||
".weak VectorA4 \nVectorA4: \n\t"
|
|
||||||
".weak VectorA8 \nVectorA8: \n\t"
|
|
||||||
".weak VectorAC \nVectorAC: \n\t"
|
|
||||||
".weak VectorB0 \nVectorB0: \n\t"
|
|
||||||
".weak VectorB4 \nVectorB4: \n\t"
|
|
||||||
".weak VectorB8 \nVectorB8: \n\t"
|
|
||||||
".weak VectorBC \nVectorBC: \n\t"
|
|
||||||
".weak VectorC0 \nVectorC0: \n\t"
|
|
||||||
".weak VectorC4 \nVectorC4: \n\t"
|
|
||||||
".weak VectorC8 \nVectorC8: \n\t"
|
|
||||||
".weak VectorCC \nVectorCC: \n\t"
|
|
||||||
".weak VectorD0 \nVectorD0: \n\t"
|
|
||||||
".weak VectorD4 \nVectorD4: \n\t"
|
|
||||||
".weak VectorD8 \nVectorD8: \n\t"
|
|
||||||
".weak VectorDC \nVectorDC: \n\t"
|
|
||||||
".weak VectorE0 \nVectorE0: \n\t"
|
|
||||||
".weak VectorE4 \nVectorE4: \n\t"
|
|
||||||
".weak VectorE8 \nVectorE8: \n\t"
|
|
||||||
#if defined(STM32F10X_MD_VL) || defined(STM32F10X_HD) || \
|
|
||||||
defined(STM32F10X_XL) || defined(STM32F10X_CL)
|
|
||||||
".weak VectorEC \nVectorEC: \n\t"
|
|
||||||
".weak VectorF0 \nVectorF0: \n\t"
|
|
||||||
".weak VectorF4 \nVectorF4: \n\t"
|
|
||||||
#endif
|
|
||||||
#if defined(STM32F10X_HD) || defined(STM32F10X_XL) || defined(STM32F10X_CL)
|
|
||||||
".weak VectorF8 \nVectorF8: \n\t"
|
|
||||||
".weak VectorFC \nVectorFC: \n\t"
|
|
||||||
".weak Vector100 \nVector100: \n\t"
|
|
||||||
".weak Vector104 \nVector104: \n\t"
|
|
||||||
".weak Vector108 \nVector108: \n\t"
|
|
||||||
".weak Vector10C \nVector10C: \n\t"
|
|
||||||
".weak Vector110 \nVector110: \n\t"
|
|
||||||
".weak Vector114 \nVector114: \n\t"
|
|
||||||
".weak Vector118 \nVector118: \n\t"
|
|
||||||
".weak Vector11C \nVector11C: \n\t"
|
|
||||||
".weak Vector120 \nVector120: \n\t"
|
|
||||||
".weak Vector124 \nVector124: \n\t"
|
|
||||||
".weak Vector128 \nVector128: \n\t"
|
|
||||||
".weak Vector12C \nVector12C: \n\t"
|
|
||||||
#endif
|
|
||||||
#if defined(STM32F10X_CL)
|
|
||||||
".weak Vector130 \nVector130: \n\t"
|
|
||||||
".weak Vector134 \nVector134: \n\t"
|
|
||||||
".weak Vector138 \nVector138: \n\t"
|
|
||||||
".weak Vector13C \nVector13C: \n\t"
|
|
||||||
".weak Vector140 \nVector140: \n\t"
|
|
||||||
".weak Vector144 \nVector144: \n\t"
|
|
||||||
".weak Vector148 \nVector148: \n\t"
|
|
||||||
".weak Vector14C \nVector14C: \n\t"
|
|
||||||
#endif
|
|
||||||
);
|
|
||||||
|
|
||||||
while (TRUE)
|
while (TRUE)
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void NMIVector(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void HardFaultVector(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void MemManageVector(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void BusFaultVector(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void UsageFaultVector(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector1C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector20(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector24(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector28(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void SVCallVector(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void DebugMonitorVector(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector34(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void PendSVVector(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void SysTickVector(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector40(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector44(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector48(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector4C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector50(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector54(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector58(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector5C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector60(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector64(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector68(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector6C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector70(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector74(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector78(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector7C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector80(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector84(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector88(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector8C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector90(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector94(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector98(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector9C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorA0(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorA4(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorA8(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorAC(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorB0(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorB4(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorB8(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorBC(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorC0(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorC4(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorC8(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorCC(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorD0(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorD4(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorD8(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorDC(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorE0(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorE4(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorE8(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
#if defined(STM32F10X_MD_VL) || defined(STM32F10X_HD) || \
|
||||||
|
defined(STM32F10X_XL) || defined(STM32F10X_CL)
|
||||||
|
void VectorEC(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorF0(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorF4(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
#endif
|
||||||
|
#if defined(STM32F10X_HD) || defined(STM32F10X_XL) || defined(STM32F10X_CL)
|
||||||
|
void VectorF8(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorFC(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector100(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector104(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector108(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector10C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector110(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector114(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector118(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector11C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector120(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector124(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector128(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector12C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
#endif
|
||||||
|
#if defined(STM32F10X_CL)
|
||||||
|
void Vector130(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector134(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector138(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector13C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector140(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector144(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector148(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector14C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
#endif
|
||||||
|
|
||||||
/** @} */
|
/** @} */
|
||||||
|
|
|
@ -176,106 +176,104 @@ __attribute__ ((naked))
|
||||||
#endif
|
#endif
|
||||||
void _unhandled_exception(void) {
|
void _unhandled_exception(void) {
|
||||||
|
|
||||||
asm volatile (
|
|
||||||
".weak NMIVector \nNMIVector: \n\t"
|
|
||||||
".weak HardFaultVector \nHardFaultVector: \n\t"
|
|
||||||
".weak MemManageVector \nMemManageVector: \n\t"
|
|
||||||
".weak BusFaultVector \nBusFaultVector: \n\t"
|
|
||||||
".weak UsageFaultVector \nUsageFaultVector: \n\t"
|
|
||||||
".weak Vector1C \nVector1C: \n\t"
|
|
||||||
".weak Vector20 \nVector20: \n\t"
|
|
||||||
".weak Vector24 \nVector24: \n\t"
|
|
||||||
".weak Vector28 \nVector28: \n\t"
|
|
||||||
".weak SVCallVector \nSVCallVector: \n\t"
|
|
||||||
".weak DebugMonitorVector \nDebugMonitorVector: \n\t"
|
|
||||||
".weak Vector34 \nVector34: \n\t"
|
|
||||||
".weak PendSVVector \nPendSVVector: \n\t"
|
|
||||||
".weak SysTickVector \nSysTickVector: \n\t"
|
|
||||||
".weak Vector40 \nVector40: \n\t"
|
|
||||||
".weak Vector44 \nVector44: \n\t"
|
|
||||||
".weak Vector48 \nVector48: \n\t"
|
|
||||||
".weak Vector4C \nVector4C: \n\t"
|
|
||||||
".weak Vector50 \nVector50: \n\t"
|
|
||||||
".weak Vector54 \nVector54: \n\t"
|
|
||||||
".weak Vector58 \nVector58: \n\t"
|
|
||||||
".weak Vector5C \nVector5C: \n\t"
|
|
||||||
".weak Vector60 \nVector60: \n\t"
|
|
||||||
".weak Vector64 \nVector64: \n\t"
|
|
||||||
".weak Vector68 \nVector68: \n\t"
|
|
||||||
".weak Vector6C \nVector6C: \n\t"
|
|
||||||
".weak Vector70 \nVector70: \n\t"
|
|
||||||
".weak Vector74 \nVector74: \n\t"
|
|
||||||
".weak Vector78 \nVector78: \n\t"
|
|
||||||
".weak Vector7C \nVector7C: \n\t"
|
|
||||||
".weak Vector80 \nVector80: \n\t"
|
|
||||||
".weak Vector84 \nVector84: \n\t"
|
|
||||||
".weak Vector88 \nVector88: \n\t"
|
|
||||||
".weak Vector8C \nVector8C: \n\t"
|
|
||||||
".weak Vector90 \nVector90: \n\t"
|
|
||||||
".weak Vector94 \nVector94: \n\t"
|
|
||||||
".weak Vector98 \nVector98: \n\t"
|
|
||||||
".weak Vector9C \nVector9C: \n\t"
|
|
||||||
".weak VectorA0 \nVectorA0: \n\t"
|
|
||||||
".weak VectorA4 \nVectorA4: \n\t"
|
|
||||||
".weak VectorA8 \nVectorA8: \n\t"
|
|
||||||
".weak VectorAC \nVectorAC: \n\t"
|
|
||||||
".weak VectorB0 \nVectorB0: \n\t"
|
|
||||||
".weak VectorB4 \nVectorB4: \n\t"
|
|
||||||
".weak VectorB8 \nVectorB8: \n\t"
|
|
||||||
".weak VectorBC \nVectorBC: \n\t"
|
|
||||||
".weak VectorC0 \nVectorC0: \n\t"
|
|
||||||
".weak VectorC4 \nVectorC4: \n\t"
|
|
||||||
".weak VectorC8 \nVectorC8: \n\t"
|
|
||||||
".weak VectorCC \nVectorCC: \n\t"
|
|
||||||
".weak VectorD0 \nVectorD0: \n\t"
|
|
||||||
".weak VectorD4 \nVectorD4: \n\t"
|
|
||||||
".weak VectorD8 \nVectorD8: \n\t"
|
|
||||||
".weak VectorDC \nVectorDC: \n\t"
|
|
||||||
".weak VectorE0 \nVectorE0: \n\t"
|
|
||||||
".weak VectorE4 \nVectorE4: \n\t"
|
|
||||||
".weak VectorE8 \nVectorE8: \n\t"
|
|
||||||
".weak VectorEC \nVectorEC: \n\t"
|
|
||||||
".weak VectorF0 \nVectorF0: \n\t"
|
|
||||||
".weak VectorF4 \nVectorF4: \n\t"
|
|
||||||
".weak VectorF8 \nVectorF8: \n\t"
|
|
||||||
".weak VectorFC \nVectorFC: \n\t"
|
|
||||||
".weak Vector100 \nVector100: \n\t"
|
|
||||||
".weak Vector104 \nVector104: \n\t"
|
|
||||||
".weak Vector108 \nVector108: \n\t"
|
|
||||||
".weak Vector10C \nVector10C: \n\t"
|
|
||||||
".weak Vector110 \nVector110: \n\t"
|
|
||||||
".weak Vector114 \nVector114: \n\t"
|
|
||||||
".weak Vector118 \nVector118: \n\t"
|
|
||||||
".weak Vector11C \nVector11C: \n\t"
|
|
||||||
".weak Vector120 \nVector120: \n\t"
|
|
||||||
".weak Vector124 \nVector124: \n\t"
|
|
||||||
".weak Vector128 \nVector128: \n\t"
|
|
||||||
".weak Vector12C \nVector12C: \n\t"
|
|
||||||
".weak Vector130 \nVector130: \n\t"
|
|
||||||
".weak Vector134 \nVector134: \n\t"
|
|
||||||
".weak Vector138 \nVector138: \n\t"
|
|
||||||
".weak Vector13C \nVector13C: \n\t"
|
|
||||||
".weak Vector140 \nVector140: \n\t"
|
|
||||||
".weak Vector144 \nVector144: \n\t"
|
|
||||||
".weak Vector148 \nVector148: \n\t"
|
|
||||||
".weak Vector14C \nVector14C: \n\t"
|
|
||||||
".weak Vector150 \nVector150: \n\t"
|
|
||||||
".weak Vector154 \nVector154: \n\t"
|
|
||||||
".weak Vector158 \nVector158: \n\t"
|
|
||||||
".weak Vector15C \nVector15C: \n\t"
|
|
||||||
".weak Vector160 \nVector160: \n\t"
|
|
||||||
".weak Vector164 \nVector164: \n\t"
|
|
||||||
".weak Vector168 \nVector168: \n\t"
|
|
||||||
".weak Vector16C \nVector16C: \n\t"
|
|
||||||
".weak Vector170 \nVector170: \n\t"
|
|
||||||
".weak Vector174 \nVector174: \n\t"
|
|
||||||
".weak Vector178 \nVector178: \n\t"
|
|
||||||
".weak Vector17C \nVector17C: \n\t"
|
|
||||||
".weak Vector180 \nVector180: \n\t"
|
|
||||||
);
|
|
||||||
|
|
||||||
while (TRUE)
|
while (TRUE)
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void NMIVector(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void HardFaultVector(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void MemManageVector(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void BusFaultVector(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void UsageFaultVector(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector1C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector20(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector24(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector28(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void SVCallVector(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void DebugMonitorVector(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector34(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void PendSVVector(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void SysTickVector(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector40(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector44(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector48(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector4C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector50(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector54(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector58(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector5C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector60(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector64(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector68(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector6C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector70(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector74(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector78(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector7C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector80(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector84(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector88(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector8C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector90(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector94(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector98(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector9C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorA0(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorA4(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorA8(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorAC(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorB0(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorB4(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorB8(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorBC(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorC0(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorC4(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorC8(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorCC(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorD0(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorD4(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorD8(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorDC(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorE0(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorE4(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorE8(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorEC(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorF0(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorF4(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorF8(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorFC(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector100(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector104(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector108(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector10C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector110(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector114(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector118(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector11C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector120(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector124(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector128(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector12C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector130(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector134(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector138(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector13C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector140(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector144(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector148(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector14C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector150(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector154(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector158(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector15C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector160(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector164(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector168(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector16C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector170(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector174(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector178(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector17C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector180(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
|
||||||
/** @} */
|
/** @} */
|
||||||
|
|
|
@ -177,107 +177,105 @@ __attribute__ ((naked))
|
||||||
#endif
|
#endif
|
||||||
void _unhandled_exception(void) {
|
void _unhandled_exception(void) {
|
||||||
|
|
||||||
asm volatile (
|
|
||||||
".weak NMIVector \nNMIVector: \n\t"
|
|
||||||
".weak HardFaultVector \nHardFaultVector: \n\t"
|
|
||||||
".weak MemManageVector \nMemManageVector: \n\t"
|
|
||||||
".weak BusFaultVector \nBusFaultVector: \n\t"
|
|
||||||
".weak UsageFaultVector \nUsageFaultVector: \n\t"
|
|
||||||
".weak Vector1C \nVector1C: \n\t"
|
|
||||||
".weak Vector20 \nVector20: \n\t"
|
|
||||||
".weak Vector24 \nVector24: \n\t"
|
|
||||||
".weak Vector28 \nVector28: \n\t"
|
|
||||||
".weak SVCallVector \nSVCallVector: \n\t"
|
|
||||||
".weak DebugMonitorVector \nDebugMonitorVector: \n\t"
|
|
||||||
".weak Vector34 \nVector34: \n\t"
|
|
||||||
".weak PendSVVector \nPendSVVector: \n\t"
|
|
||||||
".weak SysTickVector \nSysTickVector: \n\t"
|
|
||||||
".weak Vector40 \nVector40: \n\t"
|
|
||||||
".weak Vector44 \nVector44: \n\t"
|
|
||||||
".weak Vector48 \nVector48: \n\t"
|
|
||||||
".weak Vector4C \nVector4C: \n\t"
|
|
||||||
".weak Vector50 \nVector50: \n\t"
|
|
||||||
".weak Vector54 \nVector54: \n\t"
|
|
||||||
".weak Vector58 \nVector58: \n\t"
|
|
||||||
".weak Vector5C \nVector5C: \n\t"
|
|
||||||
".weak Vector60 \nVector60: \n\t"
|
|
||||||
".weak Vector64 \nVector64: \n\t"
|
|
||||||
".weak Vector68 \nVector68: \n\t"
|
|
||||||
".weak Vector6C \nVector6C: \n\t"
|
|
||||||
".weak Vector70 \nVector70: \n\t"
|
|
||||||
".weak Vector74 \nVector74: \n\t"
|
|
||||||
".weak Vector78 \nVector78: \n\t"
|
|
||||||
".weak Vector7C \nVector7C: \n\t"
|
|
||||||
".weak Vector80 \nVector80: \n\t"
|
|
||||||
".weak Vector84 \nVector84: \n\t"
|
|
||||||
".weak Vector88 \nVector88: \n\t"
|
|
||||||
".weak Vector8C \nVector8C: \n\t"
|
|
||||||
".weak Vector90 \nVector90: \n\t"
|
|
||||||
".weak Vector94 \nVector94: \n\t"
|
|
||||||
".weak Vector98 \nVector98: \n\t"
|
|
||||||
".weak Vector9C \nVector9C: \n\t"
|
|
||||||
".weak VectorA0 \nVectorA0: \n\t"
|
|
||||||
".weak VectorA4 \nVectorA4: \n\t"
|
|
||||||
".weak VectorA8 \nVectorA8: \n\t"
|
|
||||||
".weak VectorAC \nVectorAC: \n\t"
|
|
||||||
".weak VectorB0 \nVectorB0: \n\t"
|
|
||||||
".weak VectorB4 \nVectorB4: \n\t"
|
|
||||||
".weak VectorB8 \nVectorB8: \n\t"
|
|
||||||
".weak VectorBC \nVectorBC: \n\t"
|
|
||||||
".weak VectorC0 \nVectorC0: \n\t"
|
|
||||||
".weak VectorC4 \nVectorC4: \n\t"
|
|
||||||
".weak VectorC8 \nVectorC8: \n\t"
|
|
||||||
".weak VectorCC \nVectorCC: \n\t"
|
|
||||||
".weak VectorD0 \nVectorD0: \n\t"
|
|
||||||
".weak VectorD4 \nVectorD4: \n\t"
|
|
||||||
".weak VectorD8 \nVectorD8: \n\t"
|
|
||||||
".weak VectorDC \nVectorDC: \n\t"
|
|
||||||
".weak VectorE0 \nVectorE0: \n\t"
|
|
||||||
".weak VectorE4 \nVectorE4: \n\t"
|
|
||||||
".weak VectorE8 \nVectorE8: \n\t"
|
|
||||||
".weak VectorEC \nVectorEC: \n\t"
|
|
||||||
".weak VectorF0 \nVectorF0: \n\t"
|
|
||||||
".weak VectorF4 \nVectorF4: \n\t"
|
|
||||||
".weak VectorF8 \nVectorF8: \n\t"
|
|
||||||
".weak VectorFC \nVectorFC: \n\t"
|
|
||||||
".weak Vector100 \nVector100: \n\t"
|
|
||||||
".weak Vector104 \nVector104: \n\t"
|
|
||||||
".weak Vector108 \nVector108: \n\t"
|
|
||||||
".weak Vector10C \nVector10C: \n\t"
|
|
||||||
".weak Vector110 \nVector110: \n\t"
|
|
||||||
".weak Vector114 \nVector114: \n\t"
|
|
||||||
".weak Vector118 \nVector118: \n\t"
|
|
||||||
".weak Vector11C \nVector11C: \n\t"
|
|
||||||
".weak Vector120 \nVector120: \n\t"
|
|
||||||
".weak Vector124 \nVector124: \n\t"
|
|
||||||
".weak Vector128 \nVector128: \n\t"
|
|
||||||
".weak Vector12C \nVector12C: \n\t"
|
|
||||||
".weak Vector130 \nVector130: \n\t"
|
|
||||||
".weak Vector134 \nVector134: \n\t"
|
|
||||||
".weak Vector138 \nVector138: \n\t"
|
|
||||||
".weak Vector13C \nVector13C: \n\t"
|
|
||||||
".weak Vector140 \nVector140: \n\t"
|
|
||||||
".weak Vector144 \nVector144: \n\t"
|
|
||||||
".weak Vector148 \nVector148: \n\t"
|
|
||||||
".weak Vector14C \nVector14C: \n\t"
|
|
||||||
".weak Vector150 \nVector150: \n\t"
|
|
||||||
".weak Vector154 \nVector154: \n\t"
|
|
||||||
".weak Vector158 \nVector158: \n\t"
|
|
||||||
".weak Vector15C \nVector15C: \n\t"
|
|
||||||
".weak Vector160 \nVector160: \n\t"
|
|
||||||
".weak Vector164 \nVector164: \n\t"
|
|
||||||
".weak Vector168 \nVector168: \n\t"
|
|
||||||
".weak Vector16C \nVector16C: \n\t"
|
|
||||||
".weak Vector170 \nVector170: \n\t"
|
|
||||||
".weak Vector174 \nVector174: \n\t"
|
|
||||||
".weak Vector178 \nVector178: \n\t"
|
|
||||||
".weak Vector17C \nVector17C: \n\t"
|
|
||||||
".weak Vector180 \nVector180: \n\t"
|
|
||||||
".weak Vector184 \nVector184: \n\t"
|
|
||||||
);
|
|
||||||
|
|
||||||
while (TRUE)
|
while (TRUE)
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void NMIVector(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void HardFaultVector(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void MemManageVector(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void BusFaultVector(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void UsageFaultVector(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector1C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector20(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector24(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector28(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void SVCallVector(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void DebugMonitorVector(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector34(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void PendSVVector(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void SysTickVector(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector40(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector44(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector48(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector4C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector50(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector54(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector58(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector5C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector60(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector64(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector68(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector6C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector70(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector74(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector78(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector7C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector80(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector84(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector88(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector8C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector90(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector94(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector98(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector9C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorA0(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorA4(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorA8(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorAC(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorB0(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorB4(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorB8(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorBC(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorC0(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorC4(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorC8(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorCC(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorD0(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorD4(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorD8(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorDC(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorE0(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorE4(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorE8(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorEC(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorF0(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorF4(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorF8(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorFC(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector100(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector104(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector108(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector10C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector110(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector114(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector118(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector11C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector120(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector124(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector128(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector12C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector130(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector134(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector138(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector13C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector140(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector144(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector148(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector14C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector150(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector154(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector158(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector15C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector160(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector164(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector168(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector16C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector170(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector174(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector178(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector17C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector180(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector184(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
|
||||||
/** @} */
|
/** @} */
|
||||||
|
|
|
@ -131,70 +131,68 @@ __attribute__ ((naked))
|
||||||
#endif
|
#endif
|
||||||
void _unhandled_exception(void) {
|
void _unhandled_exception(void) {
|
||||||
|
|
||||||
asm volatile (
|
|
||||||
".weak NMIVector \nNMIVector: \n\t"
|
|
||||||
".weak HardFaultVector \nHardFaultVector: \n\t"
|
|
||||||
".weak MemManageVector \nMemManageVector: \n\t"
|
|
||||||
".weak BusFaultVector \nBusFaultVector: \n\t"
|
|
||||||
".weak UsageFaultVector \nUsageFaultVector: \n\t"
|
|
||||||
".weak Vector1C \nVector1C: \n\t"
|
|
||||||
".weak Vector20 \nVector20: \n\t"
|
|
||||||
".weak Vector24 \nVector24: \n\t"
|
|
||||||
".weak Vector28 \nVector28: \n\t"
|
|
||||||
".weak SVCallVector \nSVCallVector: \n\t"
|
|
||||||
".weak DebugMonitorVector \nDebugMonitorVector: \n\t"
|
|
||||||
".weak Vector34 \nVector34: \n\t"
|
|
||||||
".weak PendSVVector \nPendSVVector: \n\t"
|
|
||||||
".weak SysTickVector \nSysTickVector: \n\t"
|
|
||||||
".weak Vector40 \nVector40: \n\t"
|
|
||||||
".weak Vector44 \nVector44: \n\t"
|
|
||||||
".weak Vector48 \nVector48: \n\t"
|
|
||||||
".weak Vector4C \nVector4C: \n\t"
|
|
||||||
".weak Vector50 \nVector50: \n\t"
|
|
||||||
".weak Vector54 \nVector54: \n\t"
|
|
||||||
".weak Vector58 \nVector58: \n\t"
|
|
||||||
".weak Vector5C \nVector5C: \n\t"
|
|
||||||
".weak Vector60 \nVector60: \n\t"
|
|
||||||
".weak Vector64 \nVector64: \n\t"
|
|
||||||
".weak Vector68 \nVector68: \n\t"
|
|
||||||
".weak Vector6C \nVector6C: \n\t"
|
|
||||||
".weak Vector70 \nVector70: \n\t"
|
|
||||||
".weak Vector74 \nVector74: \n\t"
|
|
||||||
".weak Vector78 \nVector78: \n\t"
|
|
||||||
".weak Vector7C \nVector7C: \n\t"
|
|
||||||
".weak Vector80 \nVector80: \n\t"
|
|
||||||
".weak Vector84 \nVector84: \n\t"
|
|
||||||
".weak Vector88 \nVector88: \n\t"
|
|
||||||
".weak Vector8C \nVector8C: \n\t"
|
|
||||||
".weak Vector90 \nVector90: \n\t"
|
|
||||||
".weak Vector94 \nVector94: \n\t"
|
|
||||||
".weak Vector98 \nVector98: \n\t"
|
|
||||||
".weak Vector9C \nVector9C: \n\t"
|
|
||||||
".weak VectorA0 \nVectorA0: \n\t"
|
|
||||||
".weak VectorA4 \nVectorA4: \n\t"
|
|
||||||
".weak VectorA8 \nVectorA8: \n\t"
|
|
||||||
".weak VectorAC \nVectorAC: \n\t"
|
|
||||||
".weak VectorB0 \nVectorB0: \n\t"
|
|
||||||
".weak VectorB4 \nVectorB4: \n\t"
|
|
||||||
".weak VectorB8 \nVectorB8: \n\t"
|
|
||||||
".weak VectorBC \nVectorBC: \n\t"
|
|
||||||
".weak VectorC0 \nVectorC0: \n\t"
|
|
||||||
".weak VectorC4 \nVectorC4: \n\t"
|
|
||||||
".weak VectorC8 \nVectorC8: \n\t"
|
|
||||||
".weak VectorCC \nVectorCC: \n\t"
|
|
||||||
".weak VectorD0 \nVectorD0: \n\t"
|
|
||||||
".weak VectorD4 \nVectorD4: \n\t"
|
|
||||||
".weak VectorD8 \nVectorD8: \n\t"
|
|
||||||
".weak VectorDC \nVectorDC: \n\t"
|
|
||||||
".weak VectorE0 \nVectorE0: \n\t"
|
|
||||||
".weak VectorE4 \nVectorE4: \n\t"
|
|
||||||
".weak VectorE8 \nVectorE8: \n\t"
|
|
||||||
".weak VectorEC \nVectorEC: \n\t"
|
|
||||||
".weak VectorF0 \nVectorF0: \n\t"
|
|
||||||
);
|
|
||||||
|
|
||||||
while (TRUE)
|
while (TRUE)
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void NMIVector(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void HardFaultVector(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void MemManageVector(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void BusFaultVector(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void UsageFaultVector(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector1C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector20(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector24(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector28(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void SVCallVector(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void DebugMonitorVector(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector34(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void PendSVVector(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void SysTickVector(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector40(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector44(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector48(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector4C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector50(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector54(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector58(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector5C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector60(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector64(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector68(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector6C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector70(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector74(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector78(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector7C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector80(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector84(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector88(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector8C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector90(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector94(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector98(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void Vector9C(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorA0(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorA4(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorA8(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorAC(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorB0(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorB4(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorB8(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorBC(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorC0(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorC4(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorC8(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorCC(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorD0(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorD4(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorD8(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorDC(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorE0(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorE4(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorE8(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorEC(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
void VectorF0(void) __attribute__((weak, alias("_unhandled_exception")));
|
||||||
|
|
||||||
/** @} */
|
/** @} */
|
||||||
|
|
|
@ -165,7 +165,7 @@ struct intctx {};
|
||||||
|
|
||||||
#if (CH_TIME_QUANTUM > 0) || defined(__DOXYGEN__)
|
#if (CH_TIME_QUANTUM > 0) || defined(__DOXYGEN__)
|
||||||
/**
|
/**
|
||||||
* @brief Inlineable version of this kernel function.
|
* @brief Inline-able version of this kernel function.
|
||||||
*/
|
*/
|
||||||
#define chSchIsPreemptionRequired() \
|
#define chSchIsPreemptionRequired() \
|
||||||
(currp->p_preempt ? firstprio(&rlist.r_queue) > currp->p_prio : \
|
(currp->p_preempt ? firstprio(&rlist.r_queue) > currp->p_prio : \
|
||||||
|
|
|
@ -166,7 +166,7 @@ struct intctx {};
|
||||||
|
|
||||||
#if (CH_TIME_QUANTUM > 0) || defined(__DOXYGEN__)
|
#if (CH_TIME_QUANTUM > 0) || defined(__DOXYGEN__)
|
||||||
/**
|
/**
|
||||||
* @brief Inlineable version of this kernel function.
|
* @brief Inline-able version of this kernel function.
|
||||||
*/
|
*/
|
||||||
#define chSchIsPreemptionRequired() \
|
#define chSchIsPreemptionRequired() \
|
||||||
(currp->p_preempt ? firstprio(&rlist.r_queue) > currp->p_prio : \
|
(currp->p_preempt ? firstprio(&rlist.r_queue) > currp->p_prio : \
|
||||||
|
|
|
@ -165,7 +165,7 @@ struct intctx {};
|
||||||
|
|
||||||
#if (CH_TIME_QUANTUM > 0) || defined(__DOXYGEN__)
|
#if (CH_TIME_QUANTUM > 0) || defined(__DOXYGEN__)
|
||||||
/**
|
/**
|
||||||
* @brief Inlineable version of this kernel function.
|
* @brief Inline-able version of this kernel function.
|
||||||
*/
|
*/
|
||||||
#define chSchIsPreemptionRequired() \
|
#define chSchIsPreemptionRequired() \
|
||||||
(currp->p_preempt ? firstprio(&rlist.r_queue) > currp->p_prio : \
|
(currp->p_preempt ? firstprio(&rlist.r_queue) > currp->p_prio : \
|
||||||
|
|
|
@ -96,7 +96,7 @@ static void low_level_init(struct netif *netif) {
|
||||||
netif->mtu = 1500;
|
netif->mtu = 1500;
|
||||||
|
|
||||||
/* device capabilities */
|
/* device capabilities */
|
||||||
/* don't set NETIF_FLAG_ETHARP if this device is not an ethernet one */
|
/* don't set NETIF_FLAG_ETHARP if this device is not an Ethernet one */
|
||||||
netif->flags = NETIF_FLAG_BROADCAST | NETIF_FLAG_ETHARP | NETIF_FLAG_LINK_UP;
|
netif->flags = NETIF_FLAG_BROADCAST | NETIF_FLAG_ETHARP | NETIF_FLAG_LINK_UP;
|
||||||
|
|
||||||
/* Do whatever else is needed to initialize interface. */
|
/* Do whatever else is needed to initialize interface. */
|
||||||
|
|
|
@ -79,8 +79,11 @@
|
||||||
*****************************************************************************
|
*****************************************************************************
|
||||||
|
|
||||||
*** 2.5.0 ***
|
*** 2.5.0 ***
|
||||||
|
- FIX: Fixed ARM addresses generated in vectors table (bug 3519037)(backported
|
||||||
|
to 2.2.10 and 2.4.1).
|
||||||
- FIX: Fixed missing serial driver functionality for SAM7S64, SAM7S128 and
|
- FIX: Fixed missing serial driver functionality for SAM7S64, SAM7S128 and
|
||||||
SAM7S512 (bug 3517648)(backported to 2.2.10 and 2.4.1).
|
SAM7S512 (bug 3517648)(backported to 2.2.10 and 2.4.1).
|
||||||
|
- FIX: Fixed a few more spelling fixes (bug 3515531)(backported to 2.4.1).
|
||||||
- FIX: Fixed spurious ) char in STM32 serial_lld.h (bug 3514138)(backported
|
- FIX: Fixed spurious ) char in STM32 serial_lld.h (bug 3514138)(backported
|
||||||
to 2.2.10 and 2.4.1).
|
to 2.2.10 and 2.4.1).
|
||||||
- FIX: Fixed problem with FPU initialization in GCC Cortex-M4 port (bug
|
- FIX: Fixed problem with FPU initialization in GCC Cortex-M4 port (bug
|
||||||
|
|
Loading…
Reference in New Issue