Faida:
- Uwezo wa kuharakisha mifupa ya firmware ya microcontroller, dereva na rasimu za mashine za serikali na AI
- Uwezo wa kukagua usumbufu, muda, mwangalizi na mantiki ya nguvu ndogo kwa msaada wa AI
- Uwezo wa kuthibitisha msimbo wa programu dhibiti unaozalishwa na AI kupitia uchanganuzi tuli, majaribio kwenye maunzi, na mahitaji ya usalama
Mfumo uliowekwa ni kifaa cha umeme kilichojengwa karibu na microcontroller (kompyuta ndogo ambayo huweka processor, kumbukumbu na pembeni kwenye chip moja) iliyoundwa kufanya kazi maalum: thermostat, modem, node ya sensor, dereva wa magari. Firmware ni programu inayoendesha moja kwa moja maunzi ya kifaa hiki. Katika kitengo hiki utaona jinsi ya kutumia AI kama kiongeza kasi katika ukuzaji wa programu dhibiti (uandishi wa dereva, mashine ya serikali, mantiki ya kukatiza na wakati, usimamizi wa nguvu kidogo). AI ina nguvu sana katika kuweka msimbo; Lakini katika ulimwengu uliopachikwa, msimbo umeunganishwa na maunzi, wakati halisi, na mara nyingi usalama. Kwa hivyo kila mstari AI inazalisha lazima upitie uchambuzi wa tuli, ukaguzi wa rejista/lahajedwali, na majaribio halisi katika maunzi.
Ambapo ni nguvu, wapi ni hatari katika firmware ya AI
AI ina nguvu sana kwenye sehemu ya "mifupa" na "kufa" ya firmware: muundo wa dereva wa I2C/SPI, mfumo wa mashine ya serikali (mantiki inayofafanua hali na mabadiliko ya kifaa), utekelezaji wa buffer ya pete, kichanganuzi cha maagizo, kiunzi cha majaribio. Inaweza kusoma jedwali la usajili katika hifadhidata changamano na kutoa msimbo wa uanzishaji. Inaweza kueleza kosa, kutafsiri onyo la mkusanyaji.
Ambapo ni hatari ni kiini cha mfumo uliopachikwa:
- Sajili anwani na sehemu ndogo: AI inaweza kukumbuka vibaya ramani ya rejista ya chip; Kila anwani na biti lazima zidhibitishwe kutoka kwa hifadhidata.
- Muda na wakati halisi: Operesheni inachukua sekunde ngapi, ni mara ngapi usumbufu unafika, inategemea vifaa; AI inatabiri, unapima.
- Concurrency: Ikiwa vigeuzo vilivyoshirikiwa kati ya utaratibu wa kukatiza huduma (ISR) na kitanzi kikuu hakijalindwa na ufikiaji tete na wa atomiki, hitilafu za kimya, zisizoweza kurudiwa hutokea.
- Vikomo vya rasilimali: Kuzidisha kwa rafu, uvujaji wa kumbukumbu, kuisha kwa muda wa walinzi kunamaanisha kuacha kufanya kazi kwenye iliyopachikwa.
Kukatiza, muda na mlinzi
Ukatizaji ni tukio linapotokea (data ilifika, kipima muda kimekwisha), kichakataji huacha kazi kuu na kurukia utaratibu wa huduma (ISR: Utaratibu wa Kukatiza Huduma). ISR ni vipande nyeti zaidi vya msimbo katika mfumo uliopachikwa. Sheria za msingi: ISR inapaswa kuwa fupi (kazi ndefu imesalia kwa kitanzi kikuu), haipaswi kuwa na shughuli za kuzuia (kusubiri, kuchapisha) ndani yake, vigezo vya pamoja vinapaswa kulindwa.
Mlinzi ni utaratibu wa usalama ambao huwasha upya kifaa kiotomatiki ikiwa programu itaanguka; Firmware "hulisha" mara kwa mara, ikiwa sio, mfumo umewekwa upya. AI hutengeneza miundo hii, lakini muda wa shirika, vipaumbele vya kukatiza, na bajeti ya kuratibu inahitaji kuthibitishwa dhidi ya mzigo halisi kwenye mfumo wako.
Kidokezo: Unapochapisha ISR kwa AI, iagize kwa uwazi "kuweka ISR fupi, bila kuzuia, weka alama kwa viambajengo vilivyoshirikiwa na ufikiaji tete na wa atomiki, kabidhi kazi ndefu kwa kitanzi kikuu na bendera." Kisha angalia mstari kwa mstari katika nambari inayozalisha kuwa sheria hizi zinatumika.
Nguvu ya chini na usalama
Udhibiti wa nishati ya chini ni muhimu katika vifaa vinavyotumia betri: kulaza kichakataji, kuzima vifaa vya pembeni, kuamka na tukio. AI huchora mabadiliko ya hali ya usingizi na mantiki ya kuamka, lakini matumizi halisi ya sasa yanajulikana tu kwa kipimo (mita ya sasa katika kiwango cha microampere); AI kusema "inachota ~2 µA katika hali hii" ni nadhani.
Kwa mtazamo wa usalama, vifaa vilivyopachikwa vinazidi kuwa na mtandao na udhaifu wa programu dhibiti (umiminiko wa bafa, ingizo lisiloidhinishwa, usimbaji fiche dhaifu, kiolesura wazi cha utatuzi) ni hatari kubwa. AI inaweza kukukumbusha kanuni salama za usimbaji, lakini usalama wa msimbo unaozalishwa huthibitishwa na zana za uchanganuzi tuli, ukaguzi wa msimbo, na majaribio ya usalama inapohitajika. Katika mifumo muhimu ya usalama (matibabu, magari, viwanda) matokeo ya AI hayapaswi kamwe kuchukua nafasi ya michakato inayohitajika kwa idhini ya mhandisi mwenye uwezo na kiwango husika cha usalama (k.m. IEC 61508, ISO 26262).
kesi tatu ndogo
Kesi 1 - Tofauti isiyolindwa iliyoshirikiwa. Mhandisi huomba msimbo wa kupokea UART kutoka kwa AI. Nambari huongeza counter katika ISR na kitanzi kikuu kinasoma counter hii; lakini kaunta haina tete na kusomeka kwa wingi si atomiki. Kifaa hufanya kazi mara nyingi, lakini mara kwa mara kinasoma vibaya hesabu ya data na hitilafu haiwezi kurudiwa. Uchambuzi tuli na uhakiki wa msimbo unakosa tete; Hitilafu hupotea wakati counter inalindwa. Somo: makosa ya upatanishi ni ya mara kwa mara na ya siri katika msimbo wa AI; Inahitajika kusoma na kudhibitisha.
Kesi ya 2 - Kidogo cha usajili kibaya. Mwanafunzi anapakia msimbo wa uanzishaji wa ADC unaozalishwa na AI; ADC inasoma thamani zisizotarajiwa. Ikilinganisha na hifadhidata, inaonekana kwamba AI imeweka kidogo ya usanidi katika eneo lisilo sahihi (ramani ya lahaja tofauti ya chip). Mara biti ikisahihishwa, ADC inafanya kazi kwa usahihi. Somo: thibitisha kila tahajia ya rejista dhidi ya lahaja sahihi ya hifadhidata.
Kesi 3 - Matumizi sahihi. Mhandisi anauliza AI kwa mifupa ya mashine ya serikali kwa itifaki tata ya sensorer; inaelezea majimbo, mabadiliko, na matawi ya muda ulioisha. AI hutoa mfumo safi, unaosomeka. Mhandisi huchukua mfumo huu, huthibitisha kila ufikiaji wa rejista kwa hifadhidata, hupima muda kwa oscilloscope, na kuipima katika maunzi. Maendeleo yanakamilika kwa saa chache badala ya siku chache. Somo: AI huharakisha mifupa; Mhandisi hufanya uthibitishaji.
Violezo vya haraka vinavyoweza kunakiliwa
DRIVER SKELETON TEMPLATE"Andika kiunzi cha kiendeshi cha [I2C/SPI/UART] kwa ajili ya [chip/pembezoni]: kuanzisha, kusoma, kuandika, utendakazi wa kushughulikia makosa. Acha anwani za usajili na sehemu ndogo kwenye PLACEHOLDER (k.m. REG_XXX) na kumbuka 'jaza na uthibitishe utendakazi wao kutoka kwa hifadhidata ya Tumiawa. mstari."
KIOLEZO CHA USALAMA WA ISR"Andika rasimu ya utaratibu wa kukatizwa kwa huduma (ISR) kwa tukio lifuatalo: [tukio]. Kanuni: Weka ISR fupi, usizuie, weka alama kwa vigeu vilivyoshirikiwa vyenye ufikivu thabiti na wa atomiki, kabidhi kazi ndefu kwa kitanzi kikuu kwa kutumia bendera. Mwishoni mwa msimbo, weka kipengee ambapo kila moja ya sheria hizi naweza kutekelezwa."
KIOLEZO CHA MASHINE YA STATE"Andika kiunzi cha mashine ya serikali kwa itifaki/mchakato ufuatao: [eleza hali, matukio, mabadiliko, na muda wa kuisha]. Bainisha hatua za kuingia/kutoka na tawi la hitilafu/muda wa kuisha kwa kila jimbo. Acha thamani maalum za maunzi (jisajili, muda) kama vishikilia nafasi na kumbuka kuwa zinahitaji kuthibitishwa."
KIOLEZO CHA UHAKIKI WA MSIMBO "Chunguza msimbo wa programu dhibiti ufuatao kutoka kwa mtazamo uliopachikwa na hatari za bendera: tofauti isiyolindwa iliyoshirikiwa (tete/atomicity), operesheni ndefu/ya kuzuia katika ISR, hatari ya kufurika kwa rafu, subiri bila muda kuisha, hitilafu za usajili, mpasho wa walinzi. Pendekeza jinsi ninavyopaswa kupima/kuthibitisha kwa kila matokeo. Kanuni: [bandika]."
Mwongozo dhaifu / Mwongozo thabiti
TAARIFA DHAIFU: "Niandikie dereva wa UART."
STRONG PROMPT: "Andika mfumo wa kiendeshi wa UART wa kukatiza wa kupokea kwa ajili ya [microcontroller]. Tumia buffer ya pete; weka ISR fupi na uandike tu bafa, uchakata katika kitanzi kikuu. Fanya faharasa zilizoshirikiwa kuwa tete na za atomiki. Acha anwani za rejista kwenye vishika nafasi, ziweke alama ili zithibitishwe kutoka kwenye hifadhidata. Mwishoni mwa nambari ninayohitaji kuorodhesha msimbo, na kuorodhesha masharti gani ya ulinganifu."
Uhakika dhaifu hutoa msimbo ambao ni upofu wa maunzi na concurrency; Kidokezo chenye nguvu kinaweka sheria zilizopachikwa na vidokezo kwa orodha ya uthibitishaji.
Tabaka za uthibitishaji wa programu dhibiti
safu
kinachoshika
Jukumu la AI
Angalia laha ya data
Daftari/bit isiyo sahihi
Huzalisha kishika nafasi na noti ya udhibiti
Uchambuzi tuli (linter)
tete, aina, makosa ya mipaka
Orodha ya kanuni na maelezo
Maonyo ya mkusanyaji
Uongofu kamili, thamani isiyotumika
Maoni ya onyo
Mtihani katika vifaa
Muda, tabia halisi
Jaribu pendekezo la hali
Oscilloscope/analyzer
Usahihi wa ishara na itifaki
Sehemu ya kipimo na wimbi linalotarajiwa
Tahadhari: Kwa sababu firmware "hukusanya" na "hufanya kazi mara nyingi" haimaanishi kuwa ni sahihi. Makosa ya sarafu na wakati hutokea tu chini ya hali fulani; Ndio maana uchambuzi wa tuli na upimaji halisi katika vifaa ni muhimu.
Makosa ya kawaida
- Si kulinda vigeu vilivyoshirikiwa. Data kati ya ISR na kitanzi kikuu lazima iwe tete na ya atomiki.
- Haidhibitishi anwani ya usajili/biti kwa hifadhidata. AI inaweza kuweka kibadala kisicho sahihi.
- Kuweka ISR kwa muda mrefu au kuzuia ndani yake. Mfumo hauwezi kujibu, kukatizwa hukosa.
- Kuchukua muda bila kupima. Wakati halisi hutegemea vifaa; kuthibitishwa na oscilloscope.
- Inaacha msimbo muhimu wa usalama/usalama kwa uidhinishaji wa AI. Mhandisi mwenye uwezo na mchakato husika wa kiwango ni muhimu.
Kwa muhtasari
Katika kitengo hiki ulitumia AI kama kichapuzi chenye nguvu katika kuzalisha mifupa ya programu dhibiti, kiendeshi, mashine ya serikali na mchoro wa ISR. Lakini katika ulimwengu uliopachikwa, msimbo umeunganishwa na vifaa, wakati halisi, na usalama: maadili ya rejista/bit yanathibitishwa kutoka kwa hifadhidata, concurrency inathibitishwa kutoka kwa uchambuzi wa tuli, muda unathibitishwa kutoka kwa oscilloscope, tabia inathibitishwa kutokana na majaribio halisi katika maunzi. AI hutoa mifupa kwa dakika; Mhandisi anathibitisha firmware inafanya kazi kwa usahihi, kwa usalama na kwa wakati. Katika mifumo muhimu ya usalama, matokeo ya AI hayachukui nafasi ya michakato ya viwango husika vya usalama na idhini ya mhandisi anayefaa.
Jukumu la maombi
Chagua kifaa cha pembeni (k.m. kihisi cha I2C). Ukiwa na kiolezo cha "mifupa ya kiendeshi", iulize AI kiunzi cha udereva ambacho huacha rejista katika vishika nafasi. Kisha toa mchoro wa ISR kwa ukatizaji ulio tayari wa data kutoka kwa kihisia hiki kwa kiolezo cha "ISR usalama". Hatimaye, changanua msimbo unaotoa kwa kiolezo cha "Mapitio ya Msimbo" kwa hatari zilizopachikwa na uandike angalau hatua tatu za uthibitishaji/majaribio.
orodha ya ukaguzi
- [ ] Nilithibitisha kila anwani ya rejista na kidogo kutoka kwa lahaja sahihi ya hifadhidata.
- [ ] Nilifanya viambajengo vilivyoshirikiwa kati ya ISR na kitanzi kikuu kuwa tete na atomiki.
- [ ] Niliweka ISR fupi, sikuweka kizuizi, nikakabidhi kazi ndefu kwa kitanzi kikuu.
- [ ] Nilipanga kujaribu muda na tabia halisi katika maunzi na oscilloscope.
- [ ] Nilichanganua msimbo kwa uchanganuzi tuli na maonyo ya mkusanyaji.
- [ ] Niliacha sehemu muhimu za usalama/usalama kwa idhini ya mhandisi stadi na mchakato husika wa kawaida.