diff options
Diffstat (limited to 'lib/cmsis-sam4e/cmsis-sam4e.patch')
-rw-r--r-- | lib/cmsis-sam4e/cmsis-sam4e.patch | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/lib/cmsis-sam4e/cmsis-sam4e.patch b/lib/cmsis-sam4e/cmsis-sam4e.patch new file mode 100644 index 00000000..f69edfb2 --- /dev/null +++ b/lib/cmsis-sam4e/cmsis-sam4e.patch @@ -0,0 +1,56 @@ +--- a/lib/cmsis-sam4e/gcc/gcc/startup_sam4e.c ++++ b/lib/cmsis-sam4e/gcc/gcc/startup_sam4e.c +@@ -104,7 +105,7 @@ void GMAC_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler"))); + void UART1_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler"))); + + /* Exception Table */ +-__attribute__ ((section(".vectors"))) ++__attribute__ ((section(".vectors"))) __attribute__((externally_visible)) + const DeviceVectors exception_table = { + + /* Configure Initial Stack Pointer, using linker-generated symbols */ +@@ -135,6 +136,7 @@ const DeviceVectors exception_table = { + (void*) PMC_Handler, /* 5 Power Management Controller */ + (void*) EFC_Handler, /* 6 Enhanced Embedded Flash Controller */ + (void*) UART0_Handler, /* 7 UART 0 */ ++ (void*) Dummy_Handler, /* 8 Dummy */ + (void*) PIOA_Handler, /* 9 Parallel I/O Controller A */ + (void*) PIOB_Handler, /* 10 Parallel I/O Controller B */ + (void*) PIOC_Handler, /* 11 Parallel I/O Controller C */ +@@ -166,6 +168,10 @@ const DeviceVectors exception_table = { + (void*) CAN0_Handler, /* 37 CAN0 */ + (void*) CAN1_Handler, /* 38 CAN1 */ + (void*) AES_Handler, /* 39 AES */ ++ (void*) Dummy_Handler, /* 40 Dummy */ ++ (void*) Dummy_Handler, /* 41 Dummy */ ++ (void*) Dummy_Handler, /* 42 Dummy */ ++ (void*) Dummy_Handler, /* 43 Dummy */ + (void*) GMAC_Handler, /* 44 EMAC */ + (void*) UART1_Handler /* 45 UART */ + }; +@@ -198,7 +204,7 @@ void Reset_Handler(void) + SCB->VTOR = ((uint32_t) pSrc & SCB_VTOR_TBLOFF_Msk); + + /* Initialize the C library */ +- __libc_init_array(); ++ // __libc_init_array(); + + /* Branch to main function */ + main(); +diff --git a/lib/cmsis-sam4e/include/component/afec.h b/lib/cmsis-sam4e/include/component/afec.h +index 34c4e61d..9a4f8f96 100644 +--- a/lib/cmsis-sam4e/include/component/afec.h ++++ b/lib/cmsis-sam4e/include/component/afec.h +@@ -59,9 +59,9 @@ typedef struct { + RoReg Reserved2[1]; + RwReg AFE_CDOR; /**< \brief (Afec Offset: 0x5C) Channel DC Offset Register */ + RwReg AFE_DIFFR; /**< \brief (Afec Offset: 0x60) Channel Differential Register */ +- RoReg AFE_CSELR; /**< \brief (Afec Offset: 0x64) Channel Register Selection */ ++ RwReg AFE_CSELR; /**< \brief (Afec Offset: 0x64) Channel Register Selection */ + RoReg AFE_CDR; /**< \brief (Afec Offset: 0x68) Channel Data Register */ +- RoReg AFE_COCR; /**< \brief (Afec Offset: 0x6C) Channel Offset Compensation Register */ ++ RwReg AFE_COCR; /**< \brief (Afec Offset: 0x6C) Channel Offset Compensation Register */ + RwReg AFE_TEMPMR; /**< \brief (Afec Offset: 0x70) Temperature Sensor Mode Register */ + RwReg AFE_TEMPCWR; /**< \brief (Afec Offset: 0x74) Temperature Compare Window Register */ + RoReg Reserved3[7]; + |