aboutsummaryrefslogtreecommitdiffstats
path: root/os
diff options
context:
space:
mode:
Diffstat (limited to 'os')
-rw-r--r--os/hal/platforms/LPC11xx/hal_lld.c10
-rw-r--r--os/hal/platforms/STM32/hal_lld.c11
-rw-r--r--os/ports/GCC/ARMCMx/LPC11xx/cmparams.h3
-rw-r--r--os/ports/GCC/ARMCMx/STM32F103/cmparams.h3
-rw-r--r--os/ports/GCC/ARMCMx/chcore.h3
-rw-r--r--os/ports/GCC/ARMCMx/cmsis/core_cm0.h3
-rw-r--r--os/ports/GCC/ARMCMx/cmsis/core_cm3.h3
-rw-r--r--os/ports/GCC/ARMCMx/crt0.s2
8 files changed, 24 insertions, 14 deletions
diff --git a/os/hal/platforms/LPC11xx/hal_lld.c b/os/hal/platforms/LPC11xx/hal_lld.c
index 7d831dfa9..d513a6156 100644
--- a/os/hal/platforms/LPC11xx/hal_lld.c
+++ b/os/hal/platforms/LPC11xx/hal_lld.c
@@ -53,6 +53,16 @@
*/
void hal_lld_init(void) {
+ /* Note: PRIGROUP 2:0 (2:6).*/
+// SCB->AIRCR = AIRCR_VECTKEY | SCB_AIRCR_PRIGROUP_0 | SCB_AIRCR_PRIGROUP_1;
+ NVICSetSystemHandlerPriority(HANDLER_SVCALL, CORTEX_PRIORITY_SVCALL);
+ NVICSetSystemHandlerPriority(HANDLER_SYSTICK, CORTEX_PRIORITY_SYSTICK);
+ NVICSetSystemHandlerPriority(HANDLER_PENDSV, CORTEX_PRIORITY_PENDSV);
+
+ /* Systick initialization.*/
+ SysTick->LOAD = LPC11xx_SYSCLK / (8000000 / CH_FREQUENCY) - 1;
+ SysTick->VAL = 0;
+ SysTick->CTRL = SysTick_CTRL_ENABLE_Msk | SysTick_CTRL_TICKINT_Msk;
}
/**
diff --git a/os/hal/platforms/STM32/hal_lld.c b/os/hal/platforms/STM32/hal_lld.c
index 59e4fee58..c98de5104 100644
--- a/os/hal/platforms/STM32/hal_lld.c
+++ b/os/hal/platforms/STM32/hal_lld.c
@@ -74,15 +74,18 @@ const STM32GPIOConfig pal_default_config =
void hal_lld_init(void) {
/* Note: PRIGROUP 4:0 (4:4).*/
- SCB->AIRCR = AIRCR_VECTKEY | SCB_AIRCR_PRIGROUP_0 | SCB_AIRCR_PRIGROUP_1;
+ SCB->AIRCR = (0x05FA << SCB_AIRCR_VECTKEY_Pos) |
+ (3 << SCB_AIRCR_PRIGROUP_Pos);
NVICSetSystemHandlerPriority(HANDLER_SVCALL, CORTEX_PRIORITY_SVCALL);
NVICSetSystemHandlerPriority(HANDLER_SYSTICK, CORTEX_PRIORITY_SYSTICK);
NVICSetSystemHandlerPriority(HANDLER_PENDSV, CORTEX_PRIORITY_PENDSV);
- /* Systick initialization.*/
- SysTick->LOAD = SYSCLK / (8000000 / CH_FREQUENCY) - 1;
+ /* Systick initialization using the system clock.*/
+ SysTick->LOAD = SYSCLK / CH_FREQUENCY - 1;
SysTick->VAL = 0;
- SysTick->CTRL = SysTick_CTRL_ENABLE | SysTick_CTRL_TICKINT;
+ SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk |
+ SysTick_CTRL_ENABLE_Msk |
+ SysTick_CTRL_TICKINT_Msk;
#if CH_HAL_USE_ADC || CH_HAL_USE_SPI
dmaInit();
diff --git a/os/ports/GCC/ARMCMx/LPC11xx/cmparams.h b/os/ports/GCC/ARMCMx/LPC11xx/cmparams.h
index 790d529cb..7b8834ac9 100644
--- a/os/ports/GCC/ARMCMx/LPC11xx/cmparams.h
+++ b/os/ports/GCC/ARMCMx/LPC11xx/cmparams.h
@@ -35,6 +35,9 @@
/* Constants parameters. */
/*===========================================================================*/
+#define CORTEX_M0 0 /**< @brief Cortex-M0 variant. */
+#define CORTEX_M3 3 /**< @brief Cortex-M3 variant. */
+
/**
* @brief Cortex core model.
*/
diff --git a/os/ports/GCC/ARMCMx/STM32F103/cmparams.h b/os/ports/GCC/ARMCMx/STM32F103/cmparams.h
index e810d1868..70c28e875 100644
--- a/os/ports/GCC/ARMCMx/STM32F103/cmparams.h
+++ b/os/ports/GCC/ARMCMx/STM32F103/cmparams.h
@@ -35,6 +35,9 @@
/* Constants parameters. */
/*===========================================================================*/
+#define CORTEX_M0 0 /**< @brief Cortex-M0 variant. */
+#define CORTEX_M3 3 /**< @brief Cortex-M3 variant. */
+
/**
* @brief Cortex core model.
*/
diff --git a/os/ports/GCC/ARMCMx/chcore.h b/os/ports/GCC/ARMCMx/chcore.h
index 2f69209ba..1927ccff0 100644
--- a/os/ports/GCC/ARMCMx/chcore.h
+++ b/os/ports/GCC/ARMCMx/chcore.h
@@ -39,9 +39,6 @@
#define ENABLE_WFI_IDLE 0
#endif
-#define CORTEX_M0 0 /**< @brief Cortex-M0 variant. */
-#define CORTEX_M3 3 /**< @brief Cortex-M3 variant. */
-
/**
* @brief Name of the implemented architecture.
*/
diff --git a/os/ports/GCC/ARMCMx/cmsis/core_cm0.h b/os/ports/GCC/ARMCMx/cmsis/core_cm0.h
index 0173ec800..af27881d4 100644
--- a/os/ports/GCC/ARMCMx/cmsis/core_cm0.h
+++ b/os/ports/GCC/ARMCMx/cmsis/core_cm0.h
@@ -20,9 +20,6 @@
/*
* Parts of this files have been modified in ChibiOS/RT in order to fix
* some code quality issues.
- * ChibiOS/RT does not use any of the following code but this file is
- * included by the registers definition file so the warnings are still
- * propagated.
*/
/**************************************************************************//**
diff --git a/os/ports/GCC/ARMCMx/cmsis/core_cm3.h b/os/ports/GCC/ARMCMx/cmsis/core_cm3.h
index 81934949b..5c75ec859 100644
--- a/os/ports/GCC/ARMCMx/cmsis/core_cm3.h
+++ b/os/ports/GCC/ARMCMx/cmsis/core_cm3.h
@@ -20,9 +20,6 @@
/*
* Parts of this files have been modified in ChibiOS/RT in order to fix
* some code quality issues.
- * ChibiOS/RT does not use any of the following code but this file is
- * included by the registers definition file so the warnings are still
- * propagated.
*/
/**************************************************************************//**
diff --git a/os/ports/GCC/ARMCMx/crt0.s b/os/ports/GCC/ARMCMx/crt0.s
index fa92b97ea..15aed34a6 100644
--- a/os/ports/GCC/ARMCMx/crt0.s
+++ b/os/ports/GCC/ARMCMx/crt0.s
@@ -77,8 +77,8 @@ dloop:
bge enddloop
ldr r0, [r1]
str r0, [r2]
- adds r0, r0, #4
adds r1, r1, #4
+ adds r2, r2, #4
b dloop
enddloop:
#else