From b68fc92f0bba126a6d83e56b69c7b15eaff2206d Mon Sep 17 00:00:00 2001 From: Giovanni Di Sirio Date: Sat, 4 May 2019 08:25:37 +0000 Subject: [PATCH] Fixed bug #1028. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@12775 27425a3e-05d8-49a3-a47f-9c15f0e5edd8 --- os/common/ports/ARMCMx/chcore_v7m.c | 4 ++-- os/common/ports/ARMCMx/compilers/GCC/chcoreasm_v7m.S | 2 +- os/common/ports/ARMCMx/compilers/IAR/chcoreasm_v7m.s | 4 ++-- os/common/ports/ARMCMx/compilers/RVCT/chcoreasm_v7m.s | 4 ++-- readme.txt | 2 ++ 5 files changed, 9 insertions(+), 7 deletions(-) diff --git a/os/common/ports/ARMCMx/chcore_v7m.c b/os/common/ports/ARMCMx/chcore_v7m.c index 8fbe02591..237e91ec2 100644 --- a/os/common/ports/ARMCMx/chcore_v7m.c +++ b/os/common/ports/ARMCMx/chcore_v7m.c @@ -116,8 +116,8 @@ void PendSV_Handler(void) { /* Module exported functions. */ /*===========================================================================*/ -#if (CH_DBG_ENABLE_STACK_CHECK == TRUE) || \ - (PORT_ENABLE_GUARD_PAGES == TRUE) || \ +#if ((CH_DBG_ENABLE_STACK_CHECK == TRUE) && \ + (PORT_ENABLE_GUARD_PAGES == TRUE)) || \ defined(__DOXYGEN__) /** * @brief Setting up MPU region for the current thread. diff --git a/os/common/ports/ARMCMx/compilers/GCC/chcoreasm_v7m.S b/os/common/ports/ARMCMx/compilers/GCC/chcoreasm_v7m.S index 366c6894e..8e984c6e8 100644 --- a/os/common/ports/ARMCMx/compilers/GCC/chcoreasm_v7m.S +++ b/os/common/ports/ARMCMx/compilers/GCC/chcoreasm_v7m.S @@ -103,7 +103,7 @@ _port_switch: .thumb_func .globl _port_thread_start _port_thread_start: -#if CH_DBG_ENABLE_STACK_CHECK || PORT_ENABLE_GUARD_PAGES +#if CH_DBG_ENABLE_STACK_CHECK && PORT_ENABLE_GUARD_PAGES bl _port_set_region #endif #if CH_DBG_SYSTEM_STATE_CHECK diff --git a/os/common/ports/ARMCMx/compilers/IAR/chcoreasm_v7m.s b/os/common/ports/ARMCMx/compilers/IAR/chcoreasm_v7m.s index 01dfb2908..af8eca884 100644 --- a/os/common/ports/ARMCMx/compilers/IAR/chcoreasm_v7m.s +++ b/os/common/ports/ARMCMx/compilers/IAR/chcoreasm_v7m.s @@ -63,7 +63,7 @@ ICSR_PENDSVSET SET 0x10000000 EXTERN chThdExit EXTERN chSchDoReschedule -#if CH_DBG_ENABLE_STACK_CHECK || PORT_ENABLE_GUARD_PAGES +#if CH_DBG_ENABLE_STACK_CHECK && PORT_ENABLE_GUARD_PAGES EXTERN _port_set_region #endif #if CH_DBG_STATISTICS @@ -109,7 +109,7 @@ _port_switch: */ PUBLIC _port_thread_start _port_thread_start: -#if CH_DBG_ENABLE_STACK_CHECK || PORT_ENABLE_GUARD_PAGES +#if CH_DBG_ENABLE_STACK_CHECK && PORT_ENABLE_GUARD_PAGES bl _port_set_region #endif #if CH_DBG_SYSTEM_STATE_CHECK diff --git a/os/common/ports/ARMCMx/compilers/RVCT/chcoreasm_v7m.s b/os/common/ports/ARMCMx/compilers/RVCT/chcoreasm_v7m.s index 55934d927..2fa01c33a 100644 --- a/os/common/ports/ARMCMx/compilers/RVCT/chcoreasm_v7m.s +++ b/os/common/ports/ARMCMx/compilers/RVCT/chcoreasm_v7m.s @@ -60,7 +60,7 @@ ICSR_PENDSVSET EQU 0x10000000 IMPORT chThdExit IMPORT chSchDoReschedule -#if CH_DBG_ENABLE_STACK_CHECK || PORT_ENABLE_GUARD_PAGES +#if CH_DBG_ENABLE_STACK_CHECK && PORT_ENABLE_GUARD_PAGES IMPORT _port_set_region #endif #if CH_DBG_STATISTICS @@ -105,7 +105,7 @@ _port_switch PROC */ EXPORT _port_thread_start _port_thread_start PROC -#if CH_DBG_ENABLE_STACK_CHECK || PORT_ENABLE_GUARD_PAGES +#if CH_DBG_ENABLE_STACK_CHECK && PORT_ENABLE_GUARD_PAGES bl _port_set_region #endif #if CH_DBG_SYSTEM_STATE_CHECK diff --git a/readme.txt b/readme.txt index 609348a79..9ad6c14ca 100644 --- a/readme.txt +++ b/readme.txt @@ -94,6 +94,8 @@ - HAL: Added a new interface for range-finder devices (used by EX). - HAL: Added mcuconf.h updater tool for STM32F407 (backported to 19.1.1). - NIL: Integrated NIL 4.0. +- FIX: Fixed MPU fix #1027 broke stack checking on Cortex-M devices without + MPU (bug #1028)(backported to 19.1.3)(backported to 18.2.3). - FIX: Fixed MPU setup missing on thread start (bug #1027) (backported to 19.1.2)(backported to 18.2.3). - FIX: Fixed invalid I2C4 DMAs for STM32F76x (bug #1026)