aboutsummaryrefslogtreecommitdiff
path: root/pw_cpu_exception_armv7m
AgeCommit message (Collapse)Author
2021-02-02pw_cpu_exception_cortex_m: Move armv7m->cortex_mArmando Montanez
Moves the armv7m implementation of pw_cpu_exception to pw_cpu_exception_cortex_m since much of the logic can be shared between ARMv8-M and ARMv7-M. Symbol names are also updated to reflect current naming style for extern "C" symbols. Old names will be removed in pwrev/31060. Warning, symbol renames are breaking! pw_CpuExceptionEntry -> pw_cpu_exception_Entry pw_CpuExceptionDefaultHandler -> pw_cpu_exception_DefaultHandler Change-Id: I7ab99ac7637c436ba959d7546043090c66fe4215 Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/30922 Commit-Queue: Auto-Submit <auto-submit@pigweed.google.com.iam.gserviceaccount.com> Reviewed-by: Ewout van Bekkum <ewout@google.com> Pigweed-Auto-Submit: Armando Montanez <amontanez@google.com>
2021-01-13pw_cpu_exception: On-device exception analyzerArmando Montanez
Extends pw_cpu_exception_armv7m's LogCpuState() to analyze the provided CPU context to provide insight into the cause of the exception. Change-Id: I8f706d0e88fefb5a9205435d819abfeee530407c Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/29380 Commit-Queue: Armando Montanez <amontanez@google.com> Reviewed-by: Ewout van Bekkum <ewout@google.com>
2021-01-12pw_status: Use new functions instead of variablesWyatt Hepler
Run python -m pw_status.update_style to migrate to the new Status::Code() functions from the Status::CODE variables. Change-Id: I8757cf1f46586c04cd822c01f9868de7d3ea0583 Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/24481 Commit-Queue: Wyatt Hepler <hepler@google.com> Reviewed-by: Keir Mierle <keir@google.com> Reviewed-by: Ewout van Bekkum <ewout@google.com>
2021-01-11pw_status: Replace Status::Ok() with OkStatus()Wyatt Hepler
- Mark Status::Ok() and StatusWithSize::Ok() as deprecated. - Replace Status::Ok() with OkStatus(). - Replace StatusWithSize::Ok() with StatusWithSize(). Change-Id: If7192282446bf6d7f90990bb0b4f1b1b89a9228a Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/29003 Pigweed-Auto-Submit: Wyatt Hepler <hepler@google.com> Commit-Queue: Auto-Submit <auto-submit@pigweed.google.com.iam.gserviceaccount.com> Reviewed-by: Keir Mierle <keir@google.com>
2020-11-04CMake: Revamp CMake buildWyatt Hepler
- Define CMake cache variables (similar to gn args) for facade backends. - Create simple initial toolchain files for GCC and Clang. - Misc updates to pigweed.cmake and pw_build/CMakeLists.txt. - Add or expand various CMakeLists.txt files. - Watch CMake files in watch.py to support using CMake in pw watch. Change-Id: I490d157485d02811a11f6a3589a0508ea1851f58 Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/22840 Pigweed-Auto-Submit: Wyatt Hepler <hepler@google.com> Commit-Queue: Auto-Submit <auto-submit@pigweed.google.com.iam.gserviceaccount.com> Reviewed-by: Keir Mierle <keir@google.com>
2020-11-02Move guard for pw_cpu_exception_armv7m testsArmando Montanez
Moves the check for whether or not to build/run the pw_cpu_exception_armv7m tests so they're inside that module's build file. Change-Id: I6814ab7c2a64add5250f325cafcc0de3c27b64b4 Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/23082 Reviewed-by: Alexei Frolov <frolv@google.com> Commit-Queue: Armando Montanez <amontanez@google.com>
2020-10-23pw_protobuf_compiler: Rename generated GN targetsAlexei Frolov
This updates generated protobuf targets to use the format <target>.<generator> instead of <target>_<generator> to improve readability. Change-Id: I52d1e398d5bbece7f79ae87e9a1df7fdce880a6b Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/22222 Reviewed-by: Wyatt Hepler <hepler@google.com> Reviewed-by: Armando Montanez <amontanez@google.com> Commit-Queue: Alexei Frolov <frolv@google.com>
2020-10-21pw_build: Facade and configuration tweaks and docsWyatt Hepler
- Add documentation for facades and the pw_facade template. - Document the module config pattern. - Remove the need for the facade_name argument to pw_facade. Change-Id: I77529583967cfdb4f47ee87313982b1259ca036e Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/22045 Reviewed-by: Alexei Frolov <frolv@google.com> Commit-Queue: Wyatt Hepler <hepler@google.com>
2020-10-15BUILD.gn files: Improve import formattingWyatt Hepler
The "# gn-format disable" comments are no longer necessary. Delete these comments and reformat with a Vim macro and gn format. Change-Id: Ia62c40ad73eef91187d0d443d6e3b0fa723e5aa9 Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/21380 Reviewed-by: Armando Montanez <amontanez@google.com> Commit-Queue: Wyatt Hepler <hepler@google.com>
2020-10-01docs: Make labels consistent; remove boilerplateWyatt Hepler
- Update labels so they use consistent naming. Instead of the copy-and-pasted `chapter` prefix, name labels with a prefix consistent with what they point to: - "module-" for module - "target-" for targets - "docs-" for general documentation - Remove the unnecessary highlight and default-domain directives. Neither is necessary since the Pigweed docs always specify the language in code snippets and other directives. Change-Id: I55c34e9ec919f6f4670e5d3d008e0edf5fecf05b Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/19328 Commit-Queue: Wyatt Hepler <hepler@google.com> Reviewed-by: Keir Mierle <keir@google.com>
2020-09-30pw_status: Update Status::CODE to Status::Code()Wyatt Hepler
- Update Status::CODE style to Status::Code() using pw_status/update_style.py. - Make minor adjustments to the pw_assert tests to get them passing. Change-Id: Ie54c3c605178fd1e42c7cedbcff324115f3ed279 Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/19165 Commit-Queue: Wyatt Hepler <hepler@google.com> Reviewed-by: Ewout van Bekkum <ewout@google.com>
2020-09-11pw_cpu_exception_armv7m: Capture HFSR and SHCSRArmando Montanez
Captures the HFSR and SHCSR registers in the cpu state block. Change-Id: Ibe50cf88b5c2472b01e1b8221441f5769aac56b6 Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/17884 Reviewed-by: Ewout van Bekkum <ewout@google.com> Commit-Queue: Armando Montanez <amontanez@google.com>
2020-08-13pw_cpu_exception: Add function to log stateArmando Montanez
Adds a function to log captured CPU state directly via pw_log. Change-Id: If87f599066a098d283905478b9e3b151d3bb5693 Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/15902 Commit-Queue: Armando Montanez <amontanez@google.com> Reviewed-by: Keir Mierle <keir@google.com>
2020-08-12pw_cpu_exception: Add ARMv7-M CPU state proto dumpArmando Montanez
Adds a proto defintion that mirrors the contents of an ARMv7-M CPU state object, and a function that dumps the state as that proto. Change-Id: Ic2badc6d2741de30c345ef7336f1f3bc53a4ed56 Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/15901 Reviewed-by: Keir Mierle <keir@google.com> Commit-Queue: Armando Montanez <amontanez@google.com>
2020-07-16pw_cpu_exception: Split facadeArmando Montanez
The pw_cpu_exception facade is comprised of three parts: the part implemented by the architecture, and the part implemented by the application, and some supporting libraries that make it easier to dump CPU state. Since these are provided independently, the facade has been split into three facades: 1. entry 2. handler 3. support Change-Id: I48c92f42b208f79596740f1bec59ed3d29e277a8 Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/11646 Commit-Queue: Armando Montanez <amontanez@google.com> Reviewed-by: Wyatt Hepler <hepler@google.com>
2020-07-01pw_span: Switch from pw::span to std::spanWyatt Hepler
Replace pw::span with std::span and "pw_span/span.h" with <span> throughout the codebase. Change-Id: Ib1fa873168b6093794e861611d750fcad6285d6c Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/12801 Commit-Queue: Wyatt Hepler <hepler@google.com> Reviewed-by: Rob Mohr <mohrr@google.com> Reviewed-by: Keir Mierle <keir@google.com>
2020-06-16Add Pigweed GCC-ARM toolchainsArmando Montanez
Updates ARM toolchains and gets both the stm32f429i-disc1 and qemu targets building again. Change-Id: Ib0607bc498f8a331c3cde763da5ed3812ba595ba
2020-06-16Define docs target as a toolchainAlexei Frolov
This change creates a toolchain that configures the docs target and adds it to the default build. Change-Id: Ib2a8387253eef809f94411780174377e0d23e1a9
2020-06-16Don't declare pigweed variables as globalsArmando Montanez
Require targets to explicitly import pigweed variable definitions. This moves out some necessary logic from the BUILDCONFIG.gn file. Change-Id: If9c9fe5a680cc9d897a0e8a55889873be618ed84
2020-06-16pw_build: Switch to pw_* target typesAlexei Frolov
This change replaces the implicit overrides of the default GN target types in BUILDCONFIG.gn with explicit pw_* versions. This is done to allow Pigweed to build within larger GN projects without modifying their BUILDCONFIG files. Change-Id: I1d1e41d5e9bde8fe076f7031f3c2b98b9630ff70
2020-06-16pw_build, pw_toolchain: Add default configsAlexei Frolov
This CL reworks toolchains to be defined as scopes composing configs and toolchain args. This allows individual targets to add configs to or remove configs from the defaults. Change-Id: I105a231f3e2de35499e1617241f3eeb42ef3248d
2020-05-08pw_cpu_exception_armv7m: Remove unnecessary dependencyArmando Montanez
Removes an unrelated dependency that ended up in pw_cpu_exception_armv7m. Change-Id: I16982949c5ff5c37625d111096d5db9708202764
2020-03-12pw_cpu_exception_armv7m: Unit test updatesArmando Montanez
- Adds a test that ensures nested faults are correctly handled. - Properly clears CFSR and HFSR registers when handling exceptions. - Fixes a typo useage -> usage. Verified test passes on the stm32f429i-disc1 target. Change-Id: Ib00f5d9f5ff59bba101b451415f6bd75076d4863
2020-03-03Rename pw_dumb_io to pw_sys_ioArmando Montanez
Rename pw_dumb_io facade and backends to use the more deliberate name pw_sys_io moving forward. Change-Id: I968480715967ab8de491856afa1b7692b973ed7e
2020-02-28Roll GN to 239533dRob Mohr
This caused gn format to flag many things which were also fixed. Change-Id: Ie1d9081a1b08047bec52c60f54d2a94366be1ba6
2020-01-16GN build: Override built-in targetsWyatt Hepler
- Override built-in targets, which gives more flexibility than set_defaults. - Provide the default C++ in the toolchain, which can be overridden by explicitly specifying a config on a target. - Remove the C++17 default flags from public configs, since it is no longer needed. Change-Id: If211bada971c46cef83909bf15811a4f2c1eb7fd
2020-01-04Basic CMake buildWyatt Hepler
- Automatically add simple modules with pw_auto_add_simmple_module. - Define libraries in a module with pw_add_module_library. - Define tests and test groups with pw_add_test and pw_add_test_to_groups. - Tests execute with full Ninja dependency resolution, as in the GN build. - Add CMakeLists.txt for existing modules. - Currently there is no support for targets, but these libraries would be trivial to integrate with an existing CMake build. Change-Id: If73d8b61bce88f91141737eb773f1ebce3a7676e
2019-12-13pw_cpu_exception: Add CPU exception moduleArmando Montanez
This change introduces pw_cpu_exception, a facade that provides a high-level interface for handling CPU exceptions. Change-Id: I1f98ac82dd54040448b2e2ac32a392c49cb6dfba