Fix mistake in Happy Gecko header files, reserved too little RAM space for NVIC table.

pull/1245/head
Steven Cooreman 2015-07-15 16:10:31 +02:00
parent 9bb85c0678
commit b6c2306e4e
4 changed files with 5 additions and 5 deletions

View File

@ -8,7 +8,7 @@ LR_IROM1 0x00000000 0x00010000 { ; load region size_region
*(InRoot$$Sections)
.ANY (+RO)
}
RW_IRAM1 0x20000080 0x00001F80 { ; RW data
RW_IRAM1 0x20000098 0x00001F68 { ; RW data
.ANY (+RW +ZI)
}
}

View File

@ -16,8 +16,8 @@ MEMORY
/* MBED: mbed needs to be able to dynamically set the interrupt vector table.
* We make room for the table at the very beginning of RAM, i.e. at
* 0x20000000. We need (16+20) * sizeof(uint32_t) = 144 bytes for EFM32HG */
__vector_size = 0x90;
* 0x20000000. We need (16+21) * sizeof(uint32_t) = 144 bytes for EFM32HG */
__vector_size = 0x94;
/* Linker script to place sections and symbol values. Should be used together
* with other linker script that defines memory regions FLASH and RAM.

View File

@ -9,7 +9,7 @@
#include "cmsis.h"
#define NVIC_NUM_VECTORS (16 + 16) // CORE + MCU Peripherals
#define NVIC_NUM_VECTORS (16 + 21) // CORE + MCU Peripherals
#define NVIC_USER_IRQ_OFFSET 16
#ifdef __cplusplus

View File

@ -977,7 +977,7 @@ uint32_t spi_irq_handler_asynch(spi_t* obj)
/* If there is still data in the TX buffer, setup a new transfer. */
if (obj->tx_buff.pos < obj->tx_buff.length) {
/* Find position and remaining length without modifying tx_buff. */
void* tx_pointer = obj->tx_buff.buffer + obj->tx_buff.pos;
void* tx_pointer = (char*)obj->tx_buff.buffer + obj->tx_buff.pos;
uint32_t tx_length = obj->tx_buff.length - obj->tx_buff.pos;
/* Begin transfer. Rely on spi_activate_dma to split up the transfer further. */