diff options
author | Fabien Poussin <fabien.poussin@gmail.com> | 2019-10-03 11:02:51 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-10-03 11:02:51 +0200 |
commit | 967c2f32649272cbb2fd36e7f062d978193956a8 (patch) | |
tree | 2fc5ad4d0e02b0cd50ff6e874f7d94cec60bf7dd /os/common/ports/ARMCMx/compilers/GCC/utils/port_fault_handlers.h | |
parent | 472ee3ce3c8e4e1267cf00611aab54597dda7121 (diff) | |
parent | 1ca49e0b903954c1fd463d29e51faa22436fa33f (diff) | |
download | ChibiOS-Contrib-967c2f32649272cbb2fd36e7f062d978193956a8.tar.gz ChibiOS-Contrib-967c2f32649272cbb2fd36e7f062d978193956a8.tar.bz2 ChibiOS-Contrib-967c2f32649272cbb2fd36e7f062d978193956a8.zip |
Merge pull request #198 from dismirlian/fault_handlers
Fault handlers
Diffstat (limited to 'os/common/ports/ARMCMx/compilers/GCC/utils/port_fault_handlers.h')
-rw-r--r-- | os/common/ports/ARMCMx/compilers/GCC/utils/port_fault_handlers.h | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/os/common/ports/ARMCMx/compilers/GCC/utils/port_fault_handlers.h b/os/common/ports/ARMCMx/compilers/GCC/utils/port_fault_handlers.h new file mode 100644 index 0000000..ca98459 --- /dev/null +++ b/os/common/ports/ARMCMx/compilers/GCC/utils/port_fault_handlers.h @@ -0,0 +1,52 @@ +/* + ChibiOS - Copyright (C) 2019 Diego Ismirlian (dismirlian(at)google's mail) + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef FAULT_HANDLERS_v7m_H_ +#define FAULT_HANDLERS_v7m_H_ + +struct decoded_fault_registers { + struct general { + bool bus_fault_on_ivt_read; + bool escalation; + uint32_t current_thread_address; + const char *current_thread_name; + } general; + struct memfault { + bool stacking_error; + bool unstacking_error; + bool data_access_violation; + uint32_t data_access_violation_address; + bool instruction_access_violation; + } memfault; + struct busfault { + bool stacking_error; + bool unstacking_error; + bool precise_data_bus_error; + uint32_t precise_data_bus_error_address; + bool imprecise_data_bus_error; + bool instruction_bus_error; + } busfault; + struct usagefault { + bool division_by_zero; + bool unaligned_memory_access; + bool no_coprocessor_instructions; + bool invalid_load_of_pc; + bool invalid_state; + bool undefined_instruction; + } usagefault; +}; + +#endif /* FAULT_HANDLERS_v7m_H_ */ |