Kalit so‘zlar: tartib, masxara, libc, sput-ino


Ilovaning ba'zi qismlari Arduino API -ni ishlatmaydi



Download 18,71 Kb.
bet2/2
Sana15.06.2022
Hajmi18,71 Kb.
#672578
1   2
Ilovaning ba'zi qismlari Arduino API -ni ishlatmaydi
Birinchi holda (bizda a_plus_b va a_minis_b bor) hamma narsa aniq - bu dasturning toza C / C ++ da yozilgan qismlari. Ehtimol, bu qandaydir matematik, algoritmik yoki tizimli bloklar. Ular Arduino -da tuzilgan va ishlaganidek, ular xuddi ish stoli tizimida qo‘shimcha imo -ishoralarsiz taqqoslash bilan ishlaydilar. Ammo, hatto ular bilan ham, platformalar orasidagi farqni unutmang (yuqorida biz AVR chipida 16-bitli intning to‘lib ketishi tufayli hamma narsa 32-bitli o‘tganda muvaffaqiyatsiz bo‘lgan testni ko‘rib chiqdik. PIC32 va 64-bitli ish stoli Intel / AMD) ... Sinovlarni yozishda va vaqti -vaqti bilan maqsadli qurilmada testlarni o‘tkazishda bu farqlarni hisobga olish kerak.


Ilovaning bir qismi Arduino API -dan foydalanadi
Ikkinchi holatda (bizda led_on_even bor), vaziyat yanada qiziqroq ko‘rinadi. Aytaylik, biz boshqa harakatlarga qo‘shimcha ravishda mahalliy digitalRead yoki digitalWrite arduino orqali boshqaruvchi uskunasiga kiradigan funktsiyani sinab ko‘rmoqchimiz. Ish stoli tizimidagi standart libc kutubxonalarida digitalRead va digitalWrite yo‘qligi aniq, bu dastur bloki xuddi shunday tuzilmaydi, bundan ham kamroq boshlanadi (va noutbukda GPIO pinlari qayerda?). Nima qilish kerak? Haqiqatan ham, Arduino platalari emulyatorini yoki simulyatorini qidirib, qandaydir tarzda bu baxtni o‘z loyihangizga tortish mumkinmi? X86 uchun Arduino manbalarini kompilyatsiya qilasizmi? AVR chip simulyatorini yozib qo‘yingmi, uning barcha ichki registri oshxonasi va haydovchilari bilan?

Taxminan shunday fikrlar boshimdan o‘tib ketdi, men qandaydir tarzda oddiy ish stolida Arduno uchun maxsus yozilgan ilovaning muhim qismini ishga tushirishim kerak deb o‘ylaganimda. Biroq, uni hal qilishning birinchi amaliy qadamlari deyarli muammoning ko‘lami haddan tashqari oshirib yuborilganligini ko‘rsatdi. Aytmoqchimanki, umuman muammo yo‘q.


Ha, biz ishlatadigan har bir Arduino API qo‘ng'irog'i uchun biz o‘z stubimizni loyihaga qo‘shamiz: biz bir xil nom va imzo bilan funktsiyani e'lon qilamiz (qaytish turi va argumentlari), unga o‘z dasturimizni qo‘shamiz. Yo‘q, stubning bajarilishi asl daraxtga yoki asl Arduino uskunasiga hech qanday aloqasi yo‘q. Ba'zi hollarda, stub hech qanday kodsiz bo‘sh funktsiyani ko‘rsatishi mumkin.




Hamma bilishi mumkinki, har xil turdagi testlar mavjud: birlik, regressiya, integratsiya va boshqalar. Birlik sinovlari ishlab chiquvchilarning o‘zlari tomonidan qo‘llaniladi va o‘zgartirishlar kiritilgandan so‘ng funksionallik buzilganligini tezda tekshirish imkonini beradi.
Loyihani ishlab chiqishning dastlabki bosqichida biz bunday sinovsiz uzoqqa bormasligimizni angladik. Va biz, tabiiyki, mavjud echimlarni o‘rganganimizdan so‘ng, C -da birliklarni sinab ko‘rish uchun engil, engil ramka ishlab chiqdik. Bizning fikrimizcha, ramka eng qulay sintaksisga ega edi.googletest... Afsuski, bu ramka C ++ tiliga tegishli va biz aniq C testlarini yozishni xohlardik, shuning uchun ham shunga o‘xshash sintaksisga amal qilib, biz C uchun analog ishlab chiqdik.
Bu ramka juda muvaffaqiyatli bo‘lib chiqdi, chunki bir tomondan, u o‘zi nomlangan platformadan hech narsa talab qilmaydi, faqat arxitektura uchun setjmp va longjmp funktsiyalari, boshqa tomondan, u qulay sintaksisga ega. Kichik talablar tufayli, ishchi muhit bo‘lmasa, bu tizim O‘rnatilgan tizimlar rivojlanishining dastlabki bosqichlarida osongina qo‘llanilishi mumkin. Shuning uchun biz nafaqat ishlab chiqilgan dasturiy modullar uchun, balki apparat komponentlarini, masalan, apparat taymerlarini sinab ko‘rish, shuningdek tizim funktsiyalarini tekshirish, masalan, yadroda ip yaratish uchun testlardan faol foydalanamiz.
Mavzuni yaratish va bajarish uchun funktsiyalarning ishlashini tekshirishga misol:

TEST_CASE("is thread_create should return -EINVAL if thread function NULL") {


struct thread *t;
t = thread_create(0, NULL, NULL);
test_assert_equal(err(t), -EINVAL);
}


Internet manbalari ro‘yxati:

https://habr.com/ru/company/embox/blog/239387/


https://habr.com/ru/post/419445/
Download 18,71 Kb.

Do'stlaringiz bilan baham:
1   2




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©www.hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish