Kart gecikiyor. Firmware'inizin gecikmesi gerekmiyor.
CARME her geliştiriciye her kartı verir; dizüstü bilgisayarda da CI'da da. Derlediğiniz ikili dosya, çalışan ikili dosyadır. Donanım geldiğinde firmware çoktan yazılmış, hataları ayıklanmış ve test edilmiş olur.
$ west build -b nrf52840dk/nrf52840 samples/bluetooth/peripheral_hr$ carme boards/nrf52840dk.cmboard --firmware build/zephyr/zephyr.elf --uart uart0*** Booting Zephyr OS ***Bluetooth initializedAdvertising successfully startedHer geliştiriciye her kart, her zaman.
Donanım beklemek yok
Parçanın seçildiği gün başlayın. 250+ kart ve SoC hazır; özel bir kart da listedeki bir SoC'nin üzerine yazılan kısa bir .cmboard dosyasıdır.
Masanızda donanım yok
Prob yok, kablo yok, “kart kimde” sorusu yok. Her geliştiricinin istediği kadar kartı olur, üstelik herkesinki aynıdır.
Kararsız test rafı yok
Emüle edilen kartlarda firmware CI hızlı ve paraleldir, her seferinde aynı sonucu verir. Bir hata gevşek bir USB kablosu değil, gerçek bir hatadır.
Kartın veremeyeceği hata ayıklama
Tüm çekirdekleri aynı anda durdurun. Bir çevre birimi yazmacını izleyin. DMA bir tampona yazdığında durun. Bir çökmeden, ona yol açan yazmaya geri adımlayın. Her kesmeyi tam zamanıyla izleyin.
Değiştirecek bir şey yok.
- İşletim sistemleri
Zephyr, FreeRTOS, NuttX, Tock, seL4, gömülü Linux, bare metal
- Araç zincirleri
GCC, LLVM/Clang, üretici araç zincirleri; her türlü ELF, ikili, HEX ya da S-record
- Derleme sistemleri
west, CMake, Make, Yocto, Buildroot, üretici IDE projeleri
- Hata ayıklayıcılar
GDB ve GDB ile konuşan her IDE: VS Code, Eclipse tabanlı üretici IDE'leri, CLion
- Test araçları
.cmtest (pytest tarzı) ve UART, soket ya da GDB üzerinden konuşan her şey
- CI
GitHub Actions, GitLab CI, Jenkins, Buildkite; bir konteyner içinde
Masadaki bir kartın hiç çalıştıramadığı testler.
Önyükleyici ve güncelleme:firmware güncellemesinin ortasında gücü kesin, ardından cihazın hâlâ açıldığını doğrulayın.
Radyo ağı:bir ağ geçidi ve elli düğüm; paket kaybı, menzil dışı düğümler ve parazit sizin belirlediğiniz gibi.
Sınırındaki sensör:IMU'ya kaydedilmiş bir uçuşu, termometreye bir ısı testini, yakıt göstergesine boşalan bir pili oynatın.
Uzun çalışma:bir haftalık çalışma süresini dakikalara sığdırın; taşan sayacı ve büyüyen sızıntıyı bulun.
CAN veri yolu:dört ECU, tek veri yolu; hata çerçeveleri ve bus-off istediğiniz anda.
Her çalıştırmada aynı davranan bir mesh ağı.
Kartları bir .cmsystem dosyasında Ethernet, CAN, BLE, 802.15.4, LoRa ve UART ile bağlayın. Her düğüm kendi firmware'ini çalıştırır ve her çalıştırma aynı şekilde ilerler; böylece bir mesh ağındaki zamanlama hatası yeniden oynatılıp düzeltilebilir.
Numuneler çıkmadan bir yonga üzerinde başlayın.
Silikon üreticiniz yeni bir yonganın CARME modelini yayımladığında, numuneler çıkmadan onun üzerinde çalışmaya başlarsınız. Sanal geliştirme kiti, kartın çalıştıracağı SDK'yı ve örnekleri aynen çalıştırır.
Sık sorulan sorular.
Kodumun mu, donanımın mı simülatörü?
Donanımın. CARME, derleyicinizin ürettiği makine kodunu emüle edilen CPU'larda ve çevre birimlerinde çalıştırır; böylece teslim edeceğiniz ikili dosyayı test edersiniz.
Ne kadar hızlı?
Mikrodenetleyici firmware'inin çoğu gerçek zamandan hızlı çalışır. Linux, platforma göre saniyeler ile dakikalar arasında açılır; bir checkpoint ile her test açılıştan sonra başlar.
Kullandığım bir çevre birimi modellenmemişse?
Yazmaç tanımından yola çıkarak Python ile yazın ya da bize sorun: test partnerleri için modelleri önce biz ekliyoruz.
Kartın yerini tamamen tutar mı?
Geliştirme ve CI için çoğu zaman evet. Son doğrulama, analog davranış ve RF için birkaç kart tutun; geri kalan her şeyi CARME'de çalıştırın.
Gömülü ve silikon ekipleri için tam sistem emülasyonu
Silikon ekipleri için
Silikon hazır olduğunda yazılım da hazır
Döngüde RTL
HDL ve firmware birlikte test edilir
Lumina entegrasyonu
RTL'den çalışan firmware'e tek akış
Test ve CI
Her test, her kart, her commit
Kartlar ve SoC'ler
250+ kart ve SoC, açılmaya hazır
CPU'lar
Arm, RISC-V, SPARC, Power, x86, Xtensa, MSP430, TriCore
Çevre birimleri
Yazmaç düzeyinde birebir 650+ model