|
ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
|
N-point affine touch-calibration demo + HIL gate (#262). More...
#include <stddef.h>#include <stdint.h>#include <string.h>#include "ra8_attributes.h"#include "ra8_board_ek_ra8d2.h"#include "ra8_board_ek_ra8d2_touch.h"#include "ra8_boot_entry.h"#include "ra8_cgc.h"#include "ra8_display_pal.h"#include "ra8_display_pal_lcd.h"#include "ra8_err.h"#include "ra8_glcdc.h"#include "ra8_isr.h"#include "ra8_mstp.h"#include "ra8_panel.h"#include "ra8_panel_timing.h"#include "ra8_time.h"#include "ra8_touch.h"#include "ra8_touch_cal.h"Go to the source code of this file.
Data Structures | |
| struct | tc_capture_t |
| Per-run capture the calibration shims fill for the verify pass. More... | |
Enumerations | |
| enum | tc_geom_t : uint16_t { k_tc_fb_w = 512U , k_tc_fb_h = 512U , k_tc_inset_px = 40U , k_tc_cross_half = 12U , k_tc_verify_tol = 2U } |
| Framebuffer + calibration geometry (no magic numbers). More... | |
| enum | tc_color_t : uint16_t { k_tc_color_bg = 0x0000U , k_tc_color_target = 0xFFFFU , k_tc_color_corrected = 0x07E0U } |
| RGB565 palette for the calibration UI. More... | |
| enum | tc_consts_t : uint32_t { k_tc_uart_baud = 115200U , k_tc_max_points = 5U , k_tc_poll_max = 20000U , k_tc_dec_ten = 10U , k_tc_blob_cap = 36U } |
| Console / GT911 / poll knobs (no magic numbers). More... | |
Functions | |
| static void | internal_tc_print (const uint8_t *msg, uint32_t len) |
| Emit a byte run on the SCI8 console. | |
| static void | internal_tc_panic_halt (const uint8_t *msg, uint32_t len) |
| Print the fail banner and trap (ra8_emulator halts on the BKPT). | |
| static void | internal_tc_print_uint (uint32_t value) |
| Print a small unsigned integer in decimal. | |
| static bool | internal_tc_pixel_in_bounds (int32_t v, int32_t dim) |
| Report whether a framebuffer coordinate is inside the panel. | |
| static void | internal_tc_put_px (int32_t x, int32_t y, uint16_t color) |
| Write one RGB565 pixel, clipped to the framebuffer rectangle. | |
| static void | internal_tc_fb_fill (uint16_t color) |
Fill the whole framebuffer with color. | |
| static void | internal_tc_draw_cross (int32_t cx, int32_t cy, uint16_t color) |
Draw a plus-shaped cross-hair centred at (cx, cy). | |
| static void | internal_tc_setup_or_halt (void) |
| Bring up clocks/MSTP/time + the SCI8 console; halt on failure. | |
| static bool | internal_tc_glcdc_bringup (display_handle_t **out_disp) |
| Bring the GLCDC layer-1 path up and confirm it is programmed. | |
| static bool | internal_tc_touch_bringup (void) |
| Bring up IIC_B (I2C-compat) and open the GT911 touch driver. | |
| static ra8_err_t | internal_tc_draw_target (void *ctx, ra8_touch_cal_point_t target) |
| Draw shim: paint a target cross-hair and record it. | |
| static bool | internal_tc_sample_usable (ra8_err_t rc, uint8_t got) |
| Decide whether a touch read yielded a usable contact. | |
| static ra8_err_t | internal_tc_read_raw (void *ctx, ra8_touch_cal_point_t *out_raw) |
| Read shim: block (bounded) on one settled raw GT911 sample. | |
| static int32_t | internal_tc_axis_err (int32_t a, int32_t b) |
| Compute the absolute difference of two signed coordinates. | |
| static bool | internal_tc_cal_pass (ra8_err_t run_rc, int32_t maxerr, int32_t tol, bool blob_ok) |
| Verdict: did the whole calibration pipeline pass? | |
| static bool | internal_tc_blob_roundtrip (const ra8_touch_cal_matrix_t *m) |
| Round-trip the matrix through ra8_touch_cal_save / ra8_touch_cal_load and report stable reproduction. | |
| static ra8_err_t | internal_tc_apply_and_measure (const ra8_touch_cal_matrix_t *m, tc_capture_t *cap, int32_t *out_max) |
| Apply the solved matrix to every captured raw, paint the corrected cross-hairs, and return the largest residual. | |
| static ra8_err_t | internal_tc_run_calibration (display_handle_t *disp, ra8_touch_cal_matrix_t *out_matrix) |
| Reset the capture and run the five-point calibration collect+solve. | |
| static void | internal_tc_report_ok (int32_t maxerr, bool verify_ok) |
| Print the solved-and-verified result banner. | |
| static void | internal_tc_report_skip (uint8_t got) |
| Print the no-taps skip banner (bare automated bench). | |
| static void | internal_tc_calibrate_and_report (display_handle_t *disp) |
| Solve, verify, and report; degrade to SKIP if no taps arrived. | |
| void | main (void) |
| App entry: bring up panel + touch, run calibration, print the banner. | |
Variables | |
| static uint16_t | s_framebuffer [(uint32_t) k_tc_fb_w *(uint32_t) k_tc_fb_h] |
| Render target in internal SRAM, 64-byte AXI-burst aligned so the GLCDC's AXI fetches are clean. | |
| static tc_capture_t | s_capture |
| The single calibration capture the shims fill. | |
| static const display_cfg_t | s_tc_display_cfg |
| Display PAL config selecting the GLCDC LCD backend. | |
| static const uint8_t | s_tc_msg_boot [] = "touchcal: boot\r\n" |
| Startup banner emitted after the console becomes available. | |
| static const uint8_t | s_tc_msg_fail_in [] = "touchcal: FAIL init\r\n" |
| Fatal banner for clock, timebase, or console setup failure. | |
| static const uint8_t | s_tc_msg_fail_gl [] = "touchcal: FAIL glcdc\r\n" |
| Fatal banner for display-controller bring-up failure. | |
| static const uint8_t | s_tc_msg_fail_op [] = "touchcal: FAIL open\r\n" |
| Fatal banner for touch-controller open failure. | |
| static const uint8_t | s_tc_msg_tgt [] = "touchcal: target " |
| Prefix for a target-coordinate progress report. | |
| static const uint8_t | s_tc_msg_cal_ok [] = "touchcal: cal=OK verify=" |
| Prefix for the solved calibration verification result. | |
| static const uint8_t | s_tc_msg_ok [] = "OK" |
| Success token used in the verification result banner. | |
| static const uint8_t | s_tc_msg_bad [] = "FAIL" |
| Failure token used in the verification result banner. | |
| static const uint8_t | s_tc_msg_maxerr [] = " maxerr=" |
| Label introducing the maximum calibration residual. | |
| static const uint8_t | s_tc_msg_skip [] = "touchcal: cal=SKIP got=" |
| Prefix for the no-contact calibration skip result. | |
| static const uint8_t | s_tc_msg_ready [] = "touchcal: ready dim=512x512\r\n" |
| Finger-independent HIL bring-up sentinel. | |
| static const uint8_t | s_tc_msg_comma [] = "," |
| Separator between target X and Y coordinates. | |
| static const uint8_t | s_tc_msg_eol [] = "\r\n" |
| CRLF terminator shared by composed console reports. | |
N-point affine touch-calibration demo + HIL gate (#262).
ra8_touch_cal (the weighted-least-squares affine solver from libs/ra8_touch_cal) had no standalone example. This app is that example and its CI gate: it wires the solver end-to-end over the REAL GoodIX GT911 touch driver (ra8_touch -> IIC_B) and the REAL GLCDC layer-1 display path (ra8_display_pal -> ra8_glcdc), and runs the full five-point calibration:
Emit the outcome on the console:
touchcal: cal=OK verify=OK maxerr=<n> (all five taps collected) touchcal: cal=SKIP got=<k> (no operator / no taps)
then, unconditionally, the finger-free bring-up sentinel:
touchcal: ready dim=512x512
EIL==HIL discipline (the owner rule): the calibration solve is only reachable once five distinct raw samples arrive. On real silicon a human taps the five cross-hairs. ra8_emulator reproduces that by feeding five synthetic raw points through the modelled GT911 (--touch-seq, declared in this app's hil.conf as HIL_EMU_ARGS); those points return through the genuine ra8_touch_read decode, so the banner carries a real solved+verified result with no board attached. On a bare automated bench with no finger the read shim times out and the app reports cal=SKIP – so hil.conf asserts only the finger-free touchcal: ready line (which prints in every environment) and lists verify=FAIL / cal=FAIL in its negative set, so a solver regression trips the EIL gate. This mirrors touch_demo, which likewise gates the finger-free bring-up and lets the fake inject the touch.
Definition in file main.c.
| enum tc_color_t : uint16_t |
| enum tc_consts_t : uint32_t |
Console / GT911 / poll knobs (no magic numbers).
| Enumerator | |
|---|---|
| k_tc_uart_baud | Console baud. |
| k_tc_max_points | Read up to the GT911 capacity. |
| k_tc_poll_max | Bounded per-target poll (NASA R2). |
| k_tc_dec_ten | Decimal radix / small-buf cap. |
| k_tc_blob_cap | k_ra8_touch_cal_blob_size mirror. |
| enum tc_geom_t : uint16_t |
Framebuffer + calibration geometry (no magic numbers).
The calibration screen space is the 512x512 SRAM framebuffer, so the affine transform maps GT911 raw units onto this 512x512 pixel grid. k_tc_inset_px is the corner-target margin passed to ra8_touch_cal_run (its four corner targets sit this far in from each edge; the fifth is the panel centre).
|
static |
Apply the solved matrix to every captured raw, paint the corrected cross-hairs, and return the largest residual.
Maps each captured raw point through the solved affine transform, accumulates the worst per-axis error against its target, paints the corrected positions, and flushes the composed frame once.
| [in] | m | Solved calibration matrix. |
| [in] | cap | Capture holding the target / raw pairs. |
| [out] | out_max | Receives the largest target-to-corrected residual. |
| k_ra8_ok | Every captured sample was mapped and out_max was written. |
| k_ra8_err_null_ptr | A required pointer is NULL. |
| k_ra8_err_invalid_arg | The configured screen geometry is invalid. |
Definition at line 753 of file main.c.
References tc_capture_t::disp, display_flush(), display_full_rect(), internal_tc_axis_err(), internal_tc_draw_cross(), k_display_refresh_fast, k_ra8_err_null_ptr, k_ra8_ok, k_tc_color_corrected, k_tc_fb_h, k_tc_fb_w, tc_capture_t::n_read, ra8_touch_cal_apply(), tc_capture_t::raws, tc_capture_t::targets, ra8_touch_cal_point_t::x, and ra8_touch_cal_point_t::y.
Referenced by internal_tc_calibrate_and_report().
|
static |
Compute the absolute difference of two signed coordinates.
Subtracts the target coordinate from the measured coordinate and folds a negative delta to its positive magnitude.
| [in] | a | First signed coordinate. |
| [in] | b | Second signed coordinate. |
| 0 | The coordinates are identical. |
Definition at line 660 of file main.c.
References RA8_INTERNAL.
Referenced by internal_tc_apply_and_measure().
|
static |
Round-trip the matrix through ra8_touch_cal_save / ra8_touch_cal_load and report stable reproduction.
Serialises m, loads it back, and re-serialises the loaded matrix; a faithful round-trip yields a byte-identical second blob. Comparing the two byte blobs (not the float structs) both proves stability and sidesteps the ill-defined float object comparison.
| [in] | m | Matrix to serialise. |
| true | Both serialization calls and loading succeeded byte-exactly. |
| false | A codec operation failed or the re-serialized bytes differ. |
m points to a readable calibration matrix. Definition at line 714 of file main.c.
References k_ra8_ok, k_tc_blob_cap, memcmp(), RA8_INTERNAL, ra8_touch_cal_load(), and ra8_touch_cal_save().
Referenced by internal_tc_calibrate_and_report().
|
static |
Verdict: did the whole calibration pipeline pass?
Requires solver success, an in-tolerance worst residual, and a byte-stable serialized matrix; no one condition can mask another.
| [in] | run_rc | Return code from ra8_touch_cal_run. |
| [in] | maxerr | Largest target-to-corrected residual, pixels. |
| [in] | tol | Allowed residual, pixels. |
| [in] | blob_ok | Whether the save/load round-trip reproduced the matrix. |
| true | All three independent acceptance conditions hold. |
| false | At least one acceptance condition failed. |
tol is the nonnegative verification threshold in pixels. Definition at line 687 of file main.c.
References k_ra8_ok.
Referenced by internal_tc_calibrate_and_report().
|
static |
Solve, verify, and report; degrade to SKIP if no taps arrived.
Runs collection and solving, maps every captured point to measure residual, round-trips the matrix blob, and selects the corresponding deterministic result banner.
| [in] | disp | Live display handle. |
Definition at line 879 of file main.c.
References internal_tc_apply_and_measure(), internal_tc_blob_roundtrip(), internal_tc_cal_pass(), internal_tc_report_ok(), internal_tc_report_skip(), internal_tc_run_calibration(), k_ra8_ok, k_tc_verify_tol, RA8_INTERNAL, and s_capture.
Referenced by main().
|
static |
Draw a plus-shaped cross-hair centred at (cx, cy).
Paints horizontal and vertical arms with clipped pixel writes, so a centre near an edge cannot address memory outside the framebuffer.
| [in] | cx | Horizontal cross-hair centre. |
| [in] | cy | Vertical cross-hair centre. |
| [in] | color | RGB565 color for both arms. |
color. Definition at line 428 of file main.c.
References internal_tc_put_px(), k_tc_cross_half, and RA8_INTERNAL.
Referenced by internal_tc_apply_and_measure(), and internal_tc_draw_target().
|
static |
Draw shim: paint a target cross-hair and record it.
Validates the injected context and capture capacity, records the solver-selected target, paints and flushes it, then emits the target coordinate for the operator.
| [in] | ctx | tc_capture_t (shared draw/read context). |
| [in] | target | Screen-space target centre in framebuffer pixels. |
| k_ra8_ok | The target was recorded, painted, and reported. |
| k_ra8_err_invalid_arg | The context is NULL or capture is full. |
Definition at line 555 of file main.c.
References tc_capture_t::disp, display_flush(), display_full_rect(), internal_tc_draw_cross(), internal_tc_print(), internal_tc_print_uint(), k_display_refresh_fast, k_ra8_err_invalid_arg, k_ra8_ok, k_ra8_touch_cal_n_targets, k_tc_color_target, tc_capture_t::n_drawn, RA8_INTERNAL, s_tc_msg_comma, s_tc_msg_eol, s_tc_msg_tgt, tc_capture_t::targets, ra8_touch_cal_point_t::x, and ra8_touch_cal_point_t::y.
Referenced by internal_tc_run_calibration().
|
static |
Fill the whole framebuffer with color.
Walks the compile-time framebuffer geometry once and assigns every RGB565 element without allocating a secondary surface.
| [in] | color | RGB565 value to write to every framebuffer pixel. |
color. Definition at line 407 of file main.c.
References k_tc_fb_h, k_tc_fb_w, RA8_INTERNAL, and s_framebuffer.
Referenced by internal_tc_glcdc_bringup().
|
static |
Bring the GLCDC layer-1 path up and confirm it is programmed.
Clears the SRAM surface, initializes the display PAL with the fixed GLCDC descriptor, then verifies that the returned framebuffer is the application-owned surface before publishing the handle.
| [out] | out_disp | Receives the live display handle on success. |
| true | out_disp received a verified live display handle. |
| false | Initialization, handle validation, or framebuffer lookup failed. |
Definition at line 487 of file main.c.
References display_get_framebuffer(), display_init(), internal_tc_fb_fill(), k_ra8_ok, k_tc_color_bg, display_fb_t::pixels, RA8_INTERNAL, s_framebuffer, and s_tc_display_cfg.
Referenced by main().
|
static |
Print the fail banner and trap (ra8_emulator halts on the BKPT).
Emits the supplied diagnostic once, executes a debugger-visible breakpoint, then enters a permanent low-power wait loop.
| [in] | msg | Start of the failure banner. |
| [in] | len | Number of banner bytes to transmit. |
msg addresses at least len readable bytes. Definition at line 307 of file main.c.
References internal_tc_print(), and RA8_INTERNAL.
Referenced by internal_tc_setup_or_halt(), and main().
|
static |
Report whether a framebuffer coordinate is inside the panel.
Applies the inclusive lower and exclusive upper bounds used by the framebuffer index calculation.
| [in] | v | Coordinate under test (may be negative after a transform). |
| [in] | dim | Panel extent on that axis (width or height). |
| true | v can be used as an index on the tested axis. |
| false | v is negative or reaches/passes dim. |
v is representable as an int32_t coordinate. Definition at line 368 of file main.c.
References RA8_INTERNAL.
Referenced by internal_tc_put_px().
|
static |
Emit a byte run on the SCI8 console.
Passes the caller-owned bytes and explicit length directly to the board console; the demo intentionally ignores transport status.
| [in] | msg | Start of the byte run to transmit. |
| [in] | len | Number of bytes to transmit. |
msg addresses at least len readable bytes. len is nonzero. Definition at line 289 of file main.c.
References ra8_board_uart_console_write(), and RA8_INTERNAL.
Referenced by internal_tc_draw_target(), internal_tc_panic_halt(), internal_tc_print_uint(), internal_tc_report_ok(), internal_tc_report_skip(), and main().
|
static |
Print a small unsigned integer in decimal.
Builds digits in reverse in a fixed local buffer, then emits them most-significant first without using formatted I/O.
| [in] | value | Unsigned value to render in base ten. |
Definition at line 328 of file main.c.
References internal_tc_print(), k_tc_dec_ten, and RA8_INTERNAL.
Referenced by internal_tc_draw_target(), internal_tc_report_ok(), and internal_tc_report_skip().
|
static |
Write one RGB565 pixel, clipped to the framebuffer rectangle.
Validates both signed coordinates before deriving the row-major framebuffer offset, so off-panel cross-hair arms are harmless.
| [in] | x | Horizontal framebuffer coordinate. |
| [in] | y | Vertical framebuffer coordinate. |
| [in] | color | RGB565 pixel value to store. |
x and y are representable int32_t coordinates. color. Definition at line 387 of file main.c.
References internal_tc_pixel_in_bounds(), k_tc_fb_h, k_tc_fb_w, RA8_INTERNAL, and s_framebuffer.
Referenced by internal_tc_draw_cross().
|
static |
Read shim: block (bounded) on one settled raw GT911 sample.
Polls the real touch driver at most k_tc_poll_max times, accepting the first successful contact and recording the first decoded point alongside the solver output.
| [in] | ctx | tc_capture_t (shared draw/read context). |
| [out] | out_raw | Receives the raw controller-space coordinate. |
| k_ra8_ok | A raw point was returned and recorded. |
| k_ra8_err_invalid_arg | A pointer is NULL or capture storage is full. |
| k_ra8_err_hw_error | The bounded poll expired without a usable contact. |
Definition at line 618 of file main.c.
References internal_tc_sample_usable(), k_ra8_err_hw_error, k_ra8_err_invalid_arg, k_ra8_ok, k_ra8_touch_cal_n_targets, k_tc_max_points, k_tc_poll_max, tc_capture_t::n_read, RA8_INTERNAL, ra8_touch_read(), tc_capture_t::raws, ra8_touch_cal_point_t::x, and ra8_touch_cal_point_t::y.
Referenced by internal_tc_run_calibration().
|
static |
Print the solved-and-verified result banner.
Composes the fixed prefix, verification token, maximum-error label, decimal residual, and CRLF through bounded console writes.
| [in] | maxerr | Largest measured per-axis residual in pixels. |
| [in] | verify_ok | Whether the complete verification predicate passed. |
maxerr is nonnegative and representable as uint32_t. Definition at line 832 of file main.c.
References internal_tc_print(), internal_tc_print_uint(), RA8_INTERNAL, s_tc_msg_bad, s_tc_msg_cal_ok, s_tc_msg_eol, s_tc_msg_maxerr, and s_tc_msg_ok.
Referenced by internal_tc_calibrate_and_report().
|
static |
Print the no-taps skip banner (bare automated bench).
Composes the skip prefix, collected-contact count, and CRLF without allocating or invoking formatted output.
| [in] | got | Number of raw calibration samples collected before failure. |
got does not exceed k_ra8_touch_cal_n_targets. Definition at line 857 of file main.c.
References internal_tc_print(), internal_tc_print_uint(), RA8_INTERNAL, s_tc_msg_eol, and s_tc_msg_skip.
Referenced by internal_tc_calibrate_and_report().
|
static |
Reset the capture and run the five-point calibration collect+solve.
Reinitializes the shared capture, binds its draw/read callbacks into a fixed five-point solver configuration, and delegates collection and affine fitting to ra8_touch_cal_run.
| [in] | disp | Live display handle used by the draw callback. |
| [out] | out_matrix | Destination for the solved affine matrix. |
| k_ra8_ok | All target/raw pairs were collected and a matrix was solved. |
| k_ra8_err_null_ptr | disp or out_matrix is NULL. |
| k_ra8_err_hw_error | A raw touch could not be collected in budget. |
out_matrix points to writable matrix storage. out_matrix contains the fitted affine transform. Definition at line 802 of file main.c.
References internal_tc_draw_target(), internal_tc_read_raw(), k_tc_fb_h, k_tc_fb_w, k_tc_inset_px, RA8_INTERNAL, ra8_touch_cal_run(), and s_capture.
Referenced by internal_tc_calibrate_and_report().
|
static |
Decide whether a touch read yielded a usable contact.
Combines the driver status and decoded-contact count into the one predicate used by the bounded polling loop.
| [in] | rc | Return code from ra8_touch_read. |
| [in] | got | Reported contact count. |
| true | rc is success and got reports at least one contact. |
| false | The read failed or decoded no contacts. |
got is the contact count returned with rc. Definition at line 592 of file main.c.
References k_ra8_ok, and RA8_INTERNAL.
Referenced by internal_tc_read_raw().
|
static |
Bring up clocks/MSTP/time + the SCI8 console; halt on failure.
Initializes each prerequisite in dependency order, derives the timebase from CPUCLK0, and treats any failure as terminal.
Definition at line 453 of file main.c.
References internal_tc_panic_halt(), k_ra8_clock_id_cpuclk0, k_ra8_ok, k_tc_uart_baud, ra8_board_uart_console_init(), ra8_cgc_get_clock_hz(), ra8_cgc_init(), RA8_INTERNAL, ra8_mstp_init(), ra8_time_init(), and s_tc_msg_fail_in.
Referenced by main().
|
static |
Bring up IIC_B (I2C-compat) and open the GT911 touch driver.
Configures channel zero for fast-mode I2C, binds it to the injected bus operations seam, and opens the touch controller with the board address and bounded contact capacity.
| true | The I2C seam is bound and the GT911 driver is open. |
| false | A bus initialization, bind, conversion, or open step failed. |
Definition at line 525 of file main.c.
References k_ra8_ok, k_ra8_touch_irq_pin_unset, k_tc_max_points, ra8_board_touch_open(), and RA8_INTERNAL.
Referenced by main().
| void main | ( | void | ) |
App entry: bring up panel + touch, run calibration, print the banner.
The application entry point Reset_Handler hands control to.
Definition at line 911 of file main.c.
References internal_tc_calibrate_and_report(), internal_tc_glcdc_bringup(), internal_tc_panic_halt(), internal_tc_print(), internal_tc_setup_or_halt(), internal_tc_touch_bringup(), ra8_isr_globals_enable(), s_tc_msg_boot, s_tc_msg_fail_gl, s_tc_msg_fail_op, and s_tc_msg_ready.
|
static |
The single calibration capture the shims fill.
Definition at line 160 of file main.c.
Referenced by c6_cam_camera_capture_jpeg(), internal_tc_calibrate_and_report(), and internal_tc_run_calibration().
|
static |
Display PAL config selecting the GLCDC LCD backend.
The panel timing is the board BSP's EK-RA8D2 descriptor; re-pointing iface at another backend is the only change to target it instead.
Definition at line 169 of file main.c.
Referenced by internal_tc_glcdc_bringup().
|
static |
Failure token used in the verification result banner.
Definition at line 234 of file main.c.
Referenced by internal_tc_report_ok().
|
static |
|
static |
Prefix for the solved calibration verification result.
Definition at line 220 of file main.c.
Referenced by internal_tc_report_ok().
|
static |
Separator between target X and Y coordinates.
Definition at line 262 of file main.c.
Referenced by internal_tc_draw_target().
|
static |
CRLF terminator shared by composed console reports.
Definition at line 269 of file main.c.
Referenced by internal_tc_draw_target(), internal_tc_report_ok(), and internal_tc_report_skip().
|
static |
|
static |
Fatal banner for clock, timebase, or console setup failure.
Definition at line 192 of file main.c.
Referenced by internal_tc_setup_or_halt().
|
static |
|
static |
Label introducing the maximum calibration residual.
Definition at line 241 of file main.c.
Referenced by internal_tc_report_ok().
|
static |
Success token used in the verification result banner.
Definition at line 227 of file main.c.
Referenced by internal_tc_report_ok().
|
static |
|
static |
Prefix for the no-contact calibration skip result.
Definition at line 248 of file main.c.
Referenced by internal_tc_report_skip().
|
static |
Prefix for a target-coordinate progress report.
Definition at line 213 of file main.c.
Referenced by internal_tc_draw_target().