Vahid 6 / 12

Quraşdırılmış sistemlərdə və proqram təminatının hazırlanmasında süni intellekt

Qazanclar:

  • AI ilə mikrokontroller proqram təminatının skeletini, sürücünü və dövlət maşın layihələrini sürətləndirmək imkanı
  • Süni intellekt dəstəyi ilə kəsilmə, vaxt, nəzarətçi və aşağı güc məntiqini nəzərdən keçirmək imkanı
  • Statik analiz, aparat üzərində sınaq və təhlükəsizlik tələbləri vasitəsilə süni intellekt tərəfindən yaradılmış proqram təminatı kodunu yoxlamaq imkanı

Quraşdırılmış sistem müəyyən bir işi yerinə yetirmək üçün nəzərdə tutulmuş mikrokontroller (prosessor, yaddaş və periferiyaları bir çipdə yerləşdirən kiçik kompüter) ətrafında qurulmuş elektron cihazdır: termostat, modem, sensor node, motor sürücüsü. Firmware bu cihazın aparatını birbaşa idarə edən proqramdır. Bu bölmədə siz AI-ni proqram təminatının inkişafında sürətləndirici kimi necə istifadə edəcəyinizi görəcəksiniz (sürücü yazısı, dövlət maşını, kəsmə və vaxt məntiqi, aşağı enerji idarəetməsi). AI kodlaşdırmada həqiqətən güclüdür; Ancaq quraşdırılmış dünyada kod hardware, real vaxt və çox vaxt təhlükəsizliklə qarışır. Beləliklə, AI-nin istehsal etdiyi hər bir xətt statik analizdən, qeydiyyatdan/məlumat səhifəsinin yoxlanışından və aparatda faktiki sınaqdan keçməlidir.

AI proqram təminatında harada güclü, harada risklidir

Süni intellekt proqram təminatının “skelet” və “ölüm” hissəsində çox güclüdür: I2C/SPI drayverinin strukturu, dövlət maşınının çərçivəsi (cihazın vəziyyətlərini və keçidlərini müəyyən edən məntiq), ring bufer icrası, təlimat təhlili, sınaq skeleti. O, mürəkkəb verilənlər vərəqində reyestr cədvəlini oxuya və başlanğıc kodu yarada bilər. Bir səhvi izah edə, kompilyator xəbərdarlığını şərh edə bilər.

Riskli olduğu yerdə quraşdırılmış sistemin mahiyyəti budur:

  • Qeydiyyat ünvanları və bit sahələri: AI çipin registr xəritəsini səhv xatırlaya bilər; Hər bir ünvan və bit məlumat cədvəlindən yoxlanılmalıdır.
  • Zamanlama və real vaxt: Əməliyyatın neçə mikrosaniyə çəkməsi, fasilənin nə qədər tez-tez gəlməsi, aparatdan asılıdır; AI proqnozlaşdırır, siz ölçün.
  • Paralellik: Kesinti xidməti rutini (ISR) və əsas dövrə arasında paylaşılan dəyişənlər uçucu və atomik girişlə qorunmursa, səssiz, təkrar olunmayan xətalar baş verir.
  • Resurs məhdudiyyətləri: Yığın daşması, yaddaş sızması, gözətçi vaxt aşımı daxil edilmiş vəziyyətdə qəza deməkdir.

Kesinti, vaxt və nəzarətçi

Bir hadisə baş verdikdə (məlumat gəldi, taymer başa çatdı), prosessor əsas işi tərk etdi və xidmət rejiminə keçdi (ISR: Interrupt Service Routine). ISR-lər daxili sistemdə ən həssas kod parçalarıdır. Əsas qaydalar: ISR qısa olmalıdır (uzun iş əsas dövrəyə buraxılır), orada bloklama əməliyyatları (gözləyin, çap edin) olmamalıdır, paylaşılan dəyişənlər qorunmalıdır.

Watchdog təhlükəsizlik mexanizmidir ki, proqram qəzaya uğradıqda cihazı avtomatik olaraq yenidən işə salır; Firmware onu müntəzəm olaraq "qidalandırır", yoxsa, sistem yenidən qurulur. Süni intellekt bu strukturları hazırlayır, lakin nəzarət müddəti, fasilə prioritetləri və planlaşdırma büdcəsi sisteminizdəki faktiki yükə qarşı təsdiqlənməlidir.

İpucu: ISR-i AI-yə çap edərkən, ona "ISR-ni qısa saxlamaq, bloklanmamaq, dəyişkən və atomik girişlə paylaşılan dəyişənləri qeyd etmək, uzun işi bayraqla əsas dövrəyə həvalə etmək" barədə göstəriş verin. Sonra istehsal etdiyi kodda bu qaydaların həqiqətən tətbiq olunduğunu sətir-sətir yoxlayın.

Aşağı güc və təhlükəsizlik

Batareya ilə işləyən cihazlarda aşağı enerjinin idarə edilməsi vacibdir: prosessoru yuxu rejiminə keçirmək, ətraf qurğuları söndürmək, hadisə ilə oyanmaq. AI yuxu rejiminə keçidləri və oyanış məntiqini eskiz edir, lakin faktiki cərəyan istehlakı yalnız ölçmə ilə məlumdur (mikroamper səviyyəsində cari sayğac); Süni intellekt "bu rejimdə ~2 µA çəkir" deməsi təxmindir.

Təhlükəsizlik nöqteyi-nəzərindən, quraşdırılmış qurğular getdikcə daha çox şəbəkələşir və proqram təminatı zəiflikləri (bufer daşması, təsdiqlənməmiş daxiletmə, zəif kriptoqrafiya, açıq sazlama interfeysi) ciddi risklərdir. Süni intellekt sizə təhlükəsiz kodlaşdırma prinsiplərini xatırlada bilər, lakin yaradılan kodun təhlükəsizliyi statik analiz alətləri, kodun nəzərdən keçirilməsi və lazım olduqda təhlükəsizlik testi ilə təsdiqlənir. Təhlükəsizlik baxımından kritik sistemlərdə (tibbi, avtomobil, sənaye) AI çıxışı heç vaxt səlahiyyətli mühəndisin təsdiqi və müvafiq təhlükəsizlik standartı (məsələn, IEC 61508, ISO 26262) tərəfindən tələb olunan prosesləri əvəz etməməlidir.

üç mini qutu

Case 1 — Qorunmayan paylaşılan dəyişən. Mühəndis AI-dən UART qəbul kodu tələb edir. Kod ISR-də sayğacı artırır və əsas dövrə bu sayğacı oxuyur; lakin sayğac uçucu deyil və çoxbaytlı oxu atom deyil. Cihaz çox vaxt işləyir, lakin bəzən məlumatların sayını səhv oxuyur və xəta təkrarlana bilməz. Statik analiz və kodun nəzərdən keçirilməsi itkin uçucu tutmaq; Sayğac qorunan zaman xəta yox olur. Dərs: AI kodunda paralellik səhvləri tez-tez və məkrlidir; Oxuyub yoxlamaq lazımdır.

Hal 2 - Yanlış registr biti. Təcrübəçi AI tərəfindən yaradılan ADC başlanğıc kodunu yükləyir; ADC gözlənilməz dəyərləri oxuyur. Onu məlumat cədvəli ilə müqayisə etdikdə görünür ki, AI konfiqurasiya bitini səhv yerə qoyub (çipin fərqli variantı üçün xəritə). Bit düzəldildikdən sonra ADC düzgün işləyir. Dərs: məlumat vərəqinin düzgün variantına qarşı hər bir registr yazımını yoxlayın.

3-cü vəziyyət - Düzgün istifadə. Mühəndis süni intellektdən mürəkkəb sensor protokolu üçün dövlət maşını skeleti tələb edir; vəziyyətləri, keçidləri və vaxt aşımı filiallarını təsvir edir. AI təmiz, oxunaqlı çərçivə yaradır. Mühəndis bu çərçivəni götürür, məlumat vərəqi ilə hər bir registr girişini yoxlayır, osiloskopla vaxtı ölçür və aparatda sınaqdan keçirir. İnkişaf bir neçə günə deyil, bir neçə saata başa çatır. Dərs: AI skeleti sürətləndirir; Mühəndis yoxlama aparır.

Kopyalana bilən sorğu şablonları

DRIVER SKELETON TEMPLATE"[çip/periferik] üçün [I2C/SPI/UART] drayverinin skeletini yazın: işə salma, oxumaq, yazma, xətaların idarə edilməsi funksiyaları. PLACEHOLDER-də qeydiyyat ünvanlarını və bit sahələrini (məsələn, REG_XXX) buraxın və "yerinə doldurun və hər bir məlumat cədvəlini bloklamaq üçün onları müəyyən edin" qeyd edin. şərh xətti ilə qəbul edir."

ISR SECURITY TEMPLATE"Aşağıdakı hadisə üçün kəsmə xidməti rutininin (ISR) layihəsini yazın: [hadisə]. Qaydalar: ISR-ni qısa saxlayın, bloklamayın, paylaşılan dəyişənləri canlı və atom çıxışı ilə qeyd edin, uzun işi bayraqla əsas dövrəyə həvalə edin. Kodun sonunda bu qaydaların hər birinin harada tətbiq oluna biləcəyini dəqiqləşdirin."

DÖVLƏT MAŞINININ ŞABLONU"Aşağıdakı protokol/proses üçün dövlət maşını skeletini yazın: [dövlətləri, hadisələri, keçidləri və fasilələri təsvir edin]. Hər bir vəziyyət üçün giriş/çıxış hərəkətləri və xəta/taym-aut filialını göstərin. Aparat üçün xüsusi dəyərləri (qeydiyyat, müddət) yer tutanlar kimi buraxın və onların yoxlanılmalı olduğunu qeyd edin."

KODU İNCƏLƏMƏ ŞABLONU "Aşağıdakı proqram təminatı kodunu daxil edilmiş perspektivdən nəzərdən keçirin və riskləri qeyd edin: qorunmayan paylaşılan dəyişən (uçucu/atomluq), ISR-də uzun/bloklama əməliyyatı, yığının daşması riski, fasiləsiz gözləmək, xətaları qeyd etmək, gözətçi lenti. Hər tapma üçün kodu necə test etməyi/doğrulamamağı təklif edin."

Zəif məlumat / Güclü göstəriş

ZƏFİYYƏT İSTİFADƏSİ: "Mənə UART sürücüsü yazın."

GÜÇLÜ İSTİFADƏ: "[mikrokontroller] üçün kəsilməyə əsaslanan UART qəbul drayveri çərçivəsini yazın. Halqa buferindən istifadə edin; ISR-ni qısa tutun və sadəcə əsas dövrədə emal edərək buferə yazın. Paylaşılan indeksləri dəyişkən və atomik edin. Reyestr ünvanlarını yer tutucularda buraxın, onları məlumat vərəqinin sonunda yoxlamaq üçün qeyd edin. vaxtı."

Zəif əmr, hardware və paralellik kor olan kod istehsal edir; Güclü sorğu daxil edilmiş qaydalar və yoxlama siyahısı üçün göstərişlər qoyur.

Firmware yoxlama təbəqələri

qat

nə tutur

AI-nin rolu

Məlumat vərəqinin yoxlanılması

Səhv registr/bit

Yer tutucu və nəzarət qeydi yaradır

Statik analiz (linter)

uçucu, tip, sərhəd xətaları

Qaydaların siyahısı və izahı

Kompilyator xəbərdarlıqları

Gizli çevrilmə, istifadə olunmamış dəyər

Xəbərdarlıq şərhi

Aparatda sınaq

Zamanlama, faktiki davranış

Test ssenarisi təklifi

Osiloskop/analizator

Siqnal və protokol dəqiqliyi

Ölçmə nöqtəsi və gözlənilən dalğa

Diqqət: Mikroproqramın "tərtib etdiyi" və "çox vaxt işləməsi" onun düzgün olduğunu bildirmir. Paralellik və vaxt səhvləri yalnız müəyyən şərtlərdə baş verir; Buna görə statik analiz və aparatda real sınaq əvəzolunmazdır.

Ümumi səhvlər

  • Paylaşılan dəyişənləri qorumur. ISR və əsas dövrə arasındakı məlumatlar dəyişkən və atomik olmalıdır.
  • Reyestr ünvanı/bit verilənlər cədvəli ilə yoxlanılmır. Süni intellekt səhv variantı göstərə bilər.
  • ISR-nin uzun müddət saxlanılması və ya onun daxilində bloklanması. Sistem cavab verə bilmir, fasilələr qaçırılır.
  • Ölçmədən vaxtı qəbul etmək. Faktiki vaxt aparatdan asılıdır; osiloskopla yoxlanılır.
  • AI təsdiqi üçün təhlükəsizlik/təhlükəsizlik üçün kritik kod tərk edilir. Bacarıqlı mühəndis və müvafiq standart proses vacibdir.

Xülasə

Bu bölmədə siz AI-dən mikroproqram skeleti, sürücü, dövlət maşını və ISR eskizinin yaradılmasında güclü sürətləndirici kimi istifadə etmisiniz. Ancaq quraşdırılmış dünyada kod hardware, real vaxt və təhlükəsizlik ilə iç-içədir: registr/bit dəyərləri məlumat cədvəlindən yoxlanılır, paralellik statik analizdən yoxlanılır, vaxt osiloskopdan yoxlanılır, davranış hardwaredakı real sınaqdan yoxlanılır. AI bir neçə dəqiqə ərzində skeleti çatdırır; Mühəndis proqram təminatının düzgün, təhlükəsiz və vaxtında işləməsini yoxlayır. Təhlükəsizlik baxımından kritik sistemlərdə AI çıxışı müvafiq təhlükəsizlik standartının proseslərini və səlahiyyətli mühəndis təsdiqini əvəz etmir.

Tətbiq tapşırığı

Bir periferik seçin (məsələn, I2C sensoru). "Sürücü skeleti" şablonu ilə süni intellektdən tutucularda qeydlər qoyan sürücü skeleti istəyin. Sonra "ISR təhlükəsizlik" şablonu ilə bu sensordan verilənlərə hazır kəsilmə üçün ISR eskizini yaradın. Nəhayət, daxil edilmiş risklər üçün "Kod nəzərdən keçirmə" şablonu ilə istehsal etdiyi kodu skan edin və ən azı üç yoxlama/sınaq addımı yazın.

yoxlama siyahısı

  • [ ] Mən hər bir registr ünvanını və bitini düzgün verilənlər cədvəli variantından yoxladım.
  • [ ] ISR və əsas dövrə arasında paylaşılan dəyişənləri uçucu və atomik etdim.
  • [ ] ISR-ni qısa saxladım, bloklama qoymadım, uzun işi əsas dövrəyə təhvil verdim.
  • [ ] Aparatda və osiloskopla vaxtı və faktiki davranışı sınamağı planlaşdırdım.
  • [ ] Mən kodu statik analiz və tərtibçi xəbərdarlıqları ilə skan etdim.
  • [ ] Mən təhlükəsizlik/təhlükəsizlik baxımından kritik hissələri səlahiyyətli mühəndisin və müvafiq standart prosesin təsdiqinə buraxdım.