pureboot.py: --scan walks a silent loader's rate; --info decodes the clock
The RC-oscillator answer's host half. --scan probes ±10 % around the built rate in 2 % steps, nearest first, one activation window (one reset) per probe: a fixed-baud loader whose oscillator drifted answers at the ratio, and the report gives the session workaround (--baud), the offset, the OSCCAL direction at ~1 %/step, and the autobaud way out. The walk and the advice are logic-tested (test_scan.py, red-proven on the trim direction) — a pty carries bytes at any rate, so the wire cannot arbitrate them. On an autobaud session --info now reads the measured bit period from ram_start — the geometry table gains that column — and undoes the unit's encoding ((cycles − 8) / 4, floored: libavr's spin granule and per-bit overhead), so the printed clock is the true one within a granule; --clock turns it into a stated drift. The autobaud end-to-end asserts the figure inside exactly that envelope at both clock points. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -167,6 +167,9 @@ if(PROJECT_IS_TOP_LEVEL)
|
||||
add_test(NAME pureboot.planner
|
||||
COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test/test_planner.py
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/pureboot/pureboot.py)
|
||||
add_test(NAME pureboot.scan
|
||||
COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test/test_scan.py
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/pureboot/pureboot.py)
|
||||
add_test(NAME pureboot.handshake
|
||||
COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test/test_handshake.py)
|
||||
add_test(NAME pureboot.updatelink
|
||||
|
||||
Reference in New Issue
Block a user