ASELSANMicrokernel
GÖRÜNTÜ YOLU · ASEL MOTOR

AselMotor

Parmağın sürdüğü her akış — anasayfa sayfa geçişi, tarayıcıda yukarı aşağı kaydırma — tek bir tamsayı motora bağlıdır. Kasılma 60 Hz’ten değil, hareket sırasında tam paneli yeniden boyamaktan gelir.

Ne işe yarar

AselMotor, işletim sisteminin görüntü yolunu yönetir. Her 60 Hz present tikinde boşta olmayan eksenleri ilerletir. Compositor, A37 ikon taşımasındaki gibi tam 720×1280 bestelemesi yapmaz: mevcut pikseller kayar, yalnızca açılan şerit boyanır. A42 kuralı durur — CPU, panelin taradığı tampona yazmaz.

AselBrowser sayfa içeriğini üretir; AselMotor o içeriğin parmakla akmasını sağlar. İkisi ayrı iştir, aynı karede buluşur.

Ne değildir

  • G8 zamanlayıcı, TLBI veya görev göçü değildir.
  • SD kart veya UART kanıt hattı bunu sürmez.
  • 8 MiB heap’e üçüncü tam kare katmanı sığmaz.
  • Cihaz kabulü host pininden ayrıdır; MISSED henüz fiziksel PASS değildir.

Bir kare nasıl akar

GT911 poll, jest, AselMotor tiki, kaydır-boya ve flip aynı CPU0 döngüsündedir. Uzun tam-compose bu döngüyü tıkar; bu yüzden hareket yolu şerit kalır.

  1. 1 / 5
    GT911

    Dokunma poll, I2C IRQ dışında

  2. 2 / 5
    Jest

    HomePager Tracking / bırakış

  3. 3 / 5
    AselMotor

    tick → pos / vel

  4. 4 / 5
    Kaydır-boya

    blit_shift + şerit

  5. 5 / 5
    Flip

    present_flip @ 60 Hz

Alt görevler

Her alt görev ayrı bir eksen veya compositor kancasıdır. Yeni bir akış (kontrol merkezi, klavye) yeni bir Axis olur; yeni bir motor yazılmaz.

Tamsayı eksen

Her akış bir Axis: konum, hız, min/max, Idle / Tracking / Coast. Sayfa oturtma yay ile, tarayıcı fırlatma sürtünmeyle. f32 yok.

kernel/src/ui/aselmotor.rs

Anasayfa sayfa kaydırma

Parmak giderken ofset akar. Eşik veya hız yetince hedef sayfa hemen seçilir; görüntü yaya oturur. Durum çubuğu ve dock kaymaz.

kernel/src/ui/ios_home.rs · home_x

Tarayıcı dikey kaydırma

Parmakla 1:1 piksel kaydırma durur. Parmak kalkınca atalet Coast kipinde devam eder; uçta kıskaçlanır.

kernel/src/ui/ios_home.rs · browser_y

Kaydır-boya compositor

Hareket sırasında 720×1280 yeniden bestelenmez. Surface blit_shift mevcut pikselleri kaydırır; yalnızca açılan şerit boyanır.

kernel/src/ui/raster.rs · blit_shift

60 Hz present tiki

CPU0 ios-home döngüsü her karede pager.tick() çağırır. Idle kare boyanmaz. Tam boya yalnız chrome veya sayfa kimliği değişince.

kernel/src/main.rs · wait_for_next_present

Şimdi nereye bağlı

Canlı telefon imajında AselMotor, ios-home present yoluna bağlıdır. Host testleri eksen, kaydırma ve 60 Hz sözleşmesini pinler.

AselMotor çekirdeği

Bağlı

Eksen fizik; 60 Hz tikte entegre edilir.

kernel/src/ui/aselmotor.rs

Kod

Anasayfa pager

Bağlı

home_x ve browser_y eksenleri; aselmotor_active; tick.

kernel/src/ui/ios_home.rs

Ekran Kararı

AselBrowser kabuğu

Bağlı

scroll_by_px 1:1; same_chrome ile salt kaydırma tam compose değildir.

kernel/src/ui/browser.rs

Araçlar

RP1 DSI scanout

Bağlı

paint_ios_page_shift ve paint_ios_scroll_shift; A42 çift tampon + flip.

kernel/src/driver/rpi5_screen.rs

Ekran Kararı

Present döngüsü

Bağlı

rpi5-ios-home-demo: poll → jest → tick → kaydır/boya → present_flip.

kernel/src/main.rs

İşlemler

Host pinleri

Host pin

Eksen, anasayfa kaydırma, tarayıcı atalet, 60 Hz present sözleşmesi.

simulation/tests/rpi5_aselmotor.rs

Test Checklist

Sonra nereye bağlanacak

Aynı motora yeni eksen eklenir. Scene/Layer DSI’ye ancak heap büyürse tam katman tamponu olarak gelir; o ayrı ürün kararıdır.

Kontrol merkezi

Sonra bağlanacak

cc_y ekseni: üstten inen cam katman, aynı AselMotor tiki.

kernel/src/ui/ios_control.rs

Ekran Kararı

Uygulama açılışı

Sonra bağlanacak

İkon zıplaması / sayfa ölçek ofseti; tam panel bestelemesi değil.

kernel/src/ui/ios_home.rs

Misyon

Klavye ve sheet

Sonra bağlanacak

Alttan yükselen klavye ve menü katmanı ayrı eksen olur.

kernel/src/ui/browser.rs

Araçlar

AselBrowser EL0 present

Sonra bağlanacak

Canlı panel hâlâ çekirdek kabuğu. EL0 ScanoutDescriptor sonra bağlanır.

userspace/asel_browser/src/present.rs

Araçlar

Retained Scene katmanları

Sonra bağlanacak

M4.4 iskeleti DSI yoluna bağlı değil. Heap 8 MiB; üçüncü tam kare sığmaz.

kernel/src/ui/scene.rs

Kod

Bilerek bağlanmayanlar

Bütün sistemi motora bağlamak, görüntü yolunu bağlamak demektir. Zamanlayıcıyı veya depolamayı 60 Hz boya tikiyle sürmek kasılmayı geri getirir.

G8 zamanlayıcı

Bağlanmaz

Göç, TLBI, SGI ve görev anahtarı AselMotor tiki değildir.

kernel/src/g8l_target_dispatch_*.rs

İşlemler

SD / depolama

Bağlanmaz

Kart yazımı ayrı feature merdiveni; görüntü akışına bağlanmaz.

kernel/src/driver/rpi5_sdhci.rs

Firmware

UART kanıt hattı

Bağlanmaz

ASELSAN/PRESENT satırları motoru sürmez; yalnızca ölçer.

kernel/src/main.rs · kprintln!

İşlemler

Host pin, cihaz kabulü değil

cargo test -p aselsan_microkernel_simulation \
  --test rpi5_aselmotor --test rpi5_ios_home \
  --test rpi5_ios_home_browser --test rpi5_present_60hz_source

cargo check -p aselsan_kernel --no-default-features \
  --features board-rpi5,rpi5-ios-home-demo \
  --target aarch64-unknown-none

Kaydırma sırasında cihazdaki PAINT_MAX tam kare süresinin altına inmeli, MISSED şişmemelidir. Bu sayfa o UART gözlemini iddia etmez. Ekran kararı ve işlemler günlüğü o kabulün yeridir.