ast10x0/peripherals/smc: Fix panic paths to pass no_panics tests Eliminate potential panic vectors in the SMC driver and debug utilities to allow compile-time verification to pass: - Replaced variable array indexing with match-based helpers for `flash_window_base` and `normal_read_ctrl` in `controller.rs`. - Refactored `spi_read_data` and `spi_write_data` to use safe chunks instead of manual slicing/indexing. - Replaced divisions in `run_timing_sweep` and `spi_freq_div` with a lookup table and multiplication, respectively, to avoid division-by-zero panic paths. - Avoided possible underflow in `poll_blocking_dma_completion` by checking the timeout before decrementing. - Simplified `dump_smc_read` in `target_debug.rs` to use `chunks_exact` without `unwrap()`. - Avoided overflow panics in `dump_smc_register` and `get_mid_point_of_longest_one`. TAG=agy CONV=9d66bdb8-5246-47e2-b9b4-6f032c6a9480
The OpenPRoT Technical Charter can be found at https://github.com/OpenPRoT/.github/blob/main/GOVERNANCE.md
NOTE: We are converting our build system to bazel. We recommend installing bazelisk to automatically manage bazel versions.
You can run tasks using the Pigweed workflow launcher pw or bazel.
./pw presubmit - Run presubmit checks: formatting, license checks, C/C++ header checks and clippy../pw format - Run the code formatters.bazel test //... - Run all tests.bazel build //docs - Build documentation.The project is structured as a bazel module.
No additional tools are required - all dependencies are managed by bazel.