S551 · R1 ekran: Goodix GT911 dokunmatik I2C rapor çözücü modeli
S551 kaynak/host model kapısı PASS'tir: Goodix GT911 dokunmatik denetleyicinin I2C rapor protokolü (adres 0x5D/0x14, 0x814E durum yazmacı, 0x814F'ten başlayan 8 baytlık nokta kayıtları, 0x8047–0x80FE konfigürasyon bloğu ve 0x80FF toplam-tümleyen sağlaması, 0x8140 ürün kimliği '911') saf çözücü mantığı olarak modellendi. Çözücü bayt diliminden en fazla 5 noktalı TouchFrame üretir, buffer-ready bitini zorunlu kılar, eksen takas/ters çevirme dönüşümünü uygular ve 0x814E yazma-geri modelini 0'a temizler; count>5, aralık dışı koordinat, bozuk sağlama, kesik veya fazla uzun çerçeve fail-closed reddedilir. Focused 23/23 PASS'tir. S540 ve S543 fiziksel raw/verdict değişmez RED kalır; supported-profile runtime/physical observation=0/0, hiçbir I2C denetleyici, dokunmatik panel veya board mevcut değildir, Boot-to-UI=false ve R1 acceptance=false'dur. RUNBOOK_EXECUTED_IN_S551=NO. S552 çözülmüş dokunma çerçevelerini tüketen input focus ve touch event routing modelidir.
Doğrulanan kanıt
- S551, S550'den ayrı source model module, 23-test focused binary, proof, status manifest, Operations kaydı ve complete Code kartına sahiptir; hiçbir production callsite'a bağlanmamıştır.
- Dar S551 source-model status=PASS; R1 umbrella=PARTIAL ve S540/S543 physical gate status=RED olarak ayrı tutulur.
- Model GT911 I2C 7-bit adreslerini 0x5D (primary) ve 0x14 (secondary) olarak tanımlar; başka her adres InvalidI2cAddress ile reddedilir.
- 0x814E durum yazmacı bit 7 buffer-ready, bit 6 large-detect ve bit 0..3 dokunma sayısı olarak çözülür; buffer-ready biti temizse BufferNotReady döner ve receipt üretilmez.
- Nokta kayıtları 0x814F'ten itibaren 8 bayttır: track id, x lo/hi, y lo/hi, size lo/hi ve sıfır olması zorunlu reserved bayt; en fazla 5 nokta ve 41 baytlık rapor kabul edilir.
- Dokunma sayısı 6..15 TouchCountOverflow, çerçeve uzunluğu 1+count*8'den kısa ise TruncatedFrame, uzun ise FrameLengthMismatch ile fail-closed reddedilir.
- Koordinat aralığı eksen takasından sonra ve ters çevirmeden önce x 0..719 / y 0..1279 olarak denetlenir; 720/1280 ve 0xFFFF değerleri CoordinateOutOfRange döner, 719/1279 sınırı kabul edilir.
- Eksen dönüşümü swap_xy, invert_x ve invert_y bayraklarını uygular; swap_xy konfigürasyon Module_Switch1 X2Y biti ile uyuşmazsa AxisSwapConfigMismatch döner.
- Konfigürasyon bloğu 0x8047..0x80FE (184 bayt) üzerinde 8-bit toplam-tümleyen sağlaması checked u32 toplama ile hesaplanır; 0x80FF ile uyuşmazlık, yanlış uzunluk, sürüm, çözünürlük veya touch number ayrı kodlarla reddedilir.
- Ürün kimliği 0x8140'ta ASCII '911' + NUL olarak zorunludur; track id 0..9 aralığında ve çerçeve içinde kesin artan sırada olmalıdır.
- Yazma-geri modeli çerçeve tüketildikten sonra 0x814E gölgesini 0x00'a temizler ve write-back sayacını bir artırır; exact replay FrameRetained döner ve ikinci yazma-geri yapmaz.
- Yayından sonra farklı rapor, dönüşüm veya adres PublishedStateDrift ile reddedilir; 18 hata kodu sıfırdan farklı ve tekildir.
- Kodlayıcı (encode_gt911_point/encode_gt911_report) ile çözücü byte-exact round-trip verir.
- Focused target 1 grup / 23 passed / 0 failed / 0 ignored / 0 filtered verdi.
- Implementation 20474 B / f55ae2ccc19c6c623e246824b1456c9583bc123208930076b477e21959674d01; focused test 28049 B / 82093b5f1e0b89cc8cf7bcfd2d3a59bef25174a0aad843a128800d96ea6f6e43 SHA-256'dır.
- Proof 4952 B'dır.
- Kaynakta unsafe, asm!, write_volatile, crate::uart, crate::arch, spin:: veya #[no_mangle] yüzeyi yoktur; modül boot, IRQ, scheduler veya driver yoluna bağlı değildir.
- S551 sırasında I2C işlemi, dokunmatik panel gözlemi, SD write/read-back/eject, UART open/capture, power transition, physical retry veya yeni immutable raw üretimi yapılmadı.
- RUNBOOK_EXECUTED_IN_S551=NO; supported-profile runtime observations=0, physical observations=0, hardware present=false, Boot-to-UI physically observed=false ve R1 acceptance=false'dur.
- S552 yalnız host üzerinde çözülmüş G8lS551TouchFrame değerlerini tüketen input focus ve touch event routing modelidir; I2C, panel veya fiziksel koşu yetkisi değildir.
Sınır / bekleyen kanıt
- S551 yalnız GT911 rapor protokolünün saf çözücü modelidir; gerçek I2C transferi, INT pini veya dokunmatik panel davranışı gözlenmemiştir.
- S540 ve S543 fiziksel RED immutable kalır; hiçbir donanım/panel/modem/board gözlemi yoktur.
- Modül hiçbir production callsite'a, boot, IRQ, scheduler veya driver yoluna bağlı değildir; supported RPi5 runtime invocation yoktur.
- Konfigürasyon bloğunun yalnız sürüm, çözünürlük, touch number ve X2Y biti anlamlandırılır; kalan baytlar yalnız sağlamaya girer.
- Boot-to-UI gerçek UART'ta görülmedi; Boot-to-UI ve R1 acceptance false kalır.
- S552 çözülmüş dokunma çerçevelerini tüketen input focus ve touch event routing modelidir; yeni SD/UART/power/I2C koşusu ayrı kapı, fresh target revalidation, açık operatör yetkisi ve yeni immutable raw ister.
Terminal komutları ve gerçek yanıtlar
S551 kaynak/host model PASS'tir; I2C, dokunmatik panel veya fiziksel PASS değildir. S540 ve S543 RED raw ve kararları değişmez.
$ CARGO_INCREMENTAL=0 cargo test -p aselsan_microkernel_simulation --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s551_r1_gt911_touch_i2c_report_decoder_model -- --test-threads=1test result: ok. 23 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
S551 focused=1 group / 23 passed / 0 failed
hardware=none physical=0 runbook=NO