To'g'ridan-to'g'ri xotiraga kirishga (DMA) asoslangan kiritish-chiqarish transferlari
To'g'ridan-to'g'ri xotiraga kirish (DMA) boshqaruvchisi ma'lumotlar bloklarini to'g'ridan-to'g'ri xotira va kiritish/chiqarish qurilmalariga uzatuvchi maxsus uskunadir. DMA kontrolleri manzil ko'rsatkichi va hisoblagichga ega davlat mashinasini talab qiladi. DMA kontrolleri avtobus ustasi sifatida ishlaydi. Protsessor kabi, u avtobus ustasi bo'lib xizmat qilishi va avtobus tsikllarini boshlashi mumkin. DMA kontroller apparati avtomatik ravishda ma'lumotlar qiymatlari sonini hisoblab chiqadi va har bir yangi ma'lumot qiymati avtobus orqali uzatilganda manzil ko'rsatkichini moslashtiradi.
Protsessor boshlanganda DMA uzatish operatsiyasida bevosita ishtirok etmaydi. DMA kontroller(lar)i va protsessor avtobusni ulashishi kerakligi sababli, avtobusga kirishni nazorat qilish uchun avtobus arbitraj apparati talab qilinadi (ya'ni, keyingi avtobus siklida DMA kontroller yoki protsessor oladimi). DMA kontrolleri protsessor blokni uzatish tugallanganda va hisoblagich nolga yetganda uning ishlashini to'xtatadi. Keyin protsessor dasturlashadiyangi DMA uzatishni boshlash uchun DMA kontroller manzil registri va hisoblagich. Har bir DMA kontrolleri maxsus uskunani talab qiladi va DMA-ni qo'llab-quvvatlash uchun uzilish tizimini talab qiladi. Aksariyat zamonaviy protsessorlarda DMA kontrollerlari foydalanishi uchun avtobus o'tkazish qobiliyatini bo'shatishga yordam beruvchi kesh mavjud.
Guruch. 2.14. DMA shinasi siklida DMA kontrolleri shina boshqaruvchisi vazifasini bajaradi va protsessor avtobusdan uziladi (uch holat). DMA avtobus arbitraj uskunasini talab qiladi
DMA-ni qo'llab-quvvatlash qo'shimcha avtobus signallarini talab qiladi. DMA kontrollerlari avtobus siklini talab qilishlari va avtobus arbitraj apparati tomonidan ruxsat etilmaguncha kutishlari kerak. UstidaISA shinasi DMA uchun DRQx va DACKx signallaridan foydalanadi, PCI avtobusi esa DMA uchun REQx va GNTx signallaridan foydalanadi.
Xavfsizlik maqsadida OT barcha DMA apparatlarini boshqarishi kerak. DMA disk qurilmalari (disklarni oldinga yo'naltirish sektorlari) va tarmoq interfeyslari (paketlarni oldinga siljitish) kabi yuqori tezlikda blok uzatish qurilmalari uchun foydalanilganda eng samarali hisoblanadi. Ideal tizimda bir nechta DMA kontrollerlari va protsessor parallel ravishda ishlaydi, bu esa protsessor hisob-kitoblarini DMA I/U uzatish operatsiyalari bilan bir-biriga mos kelishiga imkon beradi. Bir jarayon DMA kiritish/chiqarish operatsiyalari tugashini kutish bilan band bo'lsa, protsessor boshqa jarayonda foydali hisob-kitoblarni amalga oshirishi mumkin.
Windows Embedded CE da CEDDK kutubxonasi va yadrosi DMA ni qo'llab-quvvatlash uchun ishlatiladigan bir nechta funksiyalarga ega.
Qurilmadan mustaqil kiritish-chiqarish va fayllar uchun OS qo'llab-quvvatlaydi
Operatsion tizimlar asosiy kiritish-chiqarish uskunasini qo'llab-quvvatlaydi. Ko'pgina kiritish/chiqarish qurilmalari asosiy fayl tizimining API chaqiruvlaridan foydalangan holda amaliy dasturlarda qo'llab-quvvatlanishi mumkin. Operatsion tizimning muhim xususiyatlaridan biri uning fayl tizimi kiritish-chiqarishni qo'llab-quvvatlashidir. Bu axborotni saqlashning izchil mantiqiy ko'rinishini ta'minlaydi. Har xil xotira qurilmalari va ko'plab kiritish-chiqarish qurilmalari (shu jumladan ketma-ket va parallel portlar) ma'lumotlarni o'qish va yozish uchun bitta API-dan foydalanishi mumkin. Odatda, OS API qo'ng'iroqlari quyidagi beshta asosiy fayl operatsiyalarini qo'llab-quvvatlaydi:
Ochish (yoki Yaratish ): Mavjud faylda o'qish operatsiyasi uchun ochiq operatsiya faylni topadi; yozish uchun esa xotira qurilmasida bo'sh joyni qidiradi va odatda fayllarni uzatish uchun bufer maydoni ajratadi . Ochiq chaqirilganda fayl nomi uzatiladi. Ba'zi qurilmalarda, masalan, ketma-ket portda kiritish-chiqarish operatsiyalari uchun fayl nomi qurilma nomidir va bir vaqtning o'zida faqat bitta Ochish operatsiyasiga ruxsat beriladi, chunki qurilma eksklyuziv kirishni talab qiladi.Ochiq operatsiya argumenti odatda faylni o'qish yoki yozish uchun ishlatilishini aniqlaydi. Agar faylni o'qish operatsiyasi uchun topib bo'lmasa yoki xotira qurilmasida yozish uchun bo'sh joy bo'lmasa, xatolar yuzaga kelishi mumkin.
O'qing : Keyingi ma'lumotlar bloki ochiq fayldan o'qiladi. Argumentlar fayl identifikatori yokifayl deskriptori va o'qilgan ma'lumotlar qaytariladigan bufer maydoniga ko'rsatgich.
Write : Keyingi ma'lumotlar bloki ochiq faylga yoziladi. Argumentlar fayl identifikatori yokifayl deskriptori va yozilishi kerak bo'lgan ma'lumotlar nusxalanadigan bufer maydoniga ko'rsatgich. Saqlash qurilmasida bo'sh joy bo'lmasa, xatolik yuz berishi mumkin.
Qidirmoq : fayldagi ma'lum bir joyga o'tish. Argument odatda qidirish uchun kirish raqamidir. Qidiruv fayldagi ma'lum bir yozuvga o'tish uchun bir necha marta o'qishdan ko'ra tezroq. Odatda, qidiruv operatsiyasi barcha fayl turlari va qurilmalari uchun qo'llab-quvvatlanmaydi.
Yopish : Ochiq faylni yopadi. Yozish operatsiyasi uchun yopish operatsiyasi barcha yozish buferlarini tozalaydi va yangi fayl uchun oxirgi katalog yozuvlarini yangilaydi. Shuningdek, faylning ichki bufer maydonini bo'shatadi. Ko'pgina operatsion tizimlarda yopiq operatsiya talab qilinadi . Ba'zi operatsion tizimlarda, lekin hammasida emas, jarayon tugagach, barcha ochiq jarayon fayllari avtomatik ravishda yopiladi.
Ko'pgina hollarda, ushbu funktsiyalarning barchasi dasturda tekshirilishi kerak bo'lgan xato kodlarini qaytaradi. Windows Embedded CE da ushbu fayl operatsiyalari CreateFile funktsiyalarini ta'minlaydi ,ReadFile , WriteFile , SetFilePointer va CloseHandle . Ushbu funksiyalarning parametrlari haqida qo'shimcha ma'lumot olish uchun onlayn yordamga qarang.
Unicode va ASCII belgilarni kodlash
Ko'p tillarni qo'llab-quvvatlashni talab qiladigan xalqaro bozorlar uchun o'rnatilgan tizimlar odatda 16 bitli Unicode belgilar kodlash standartidan foydalanadi. Ko'pgina kiritish/chiqarish qurilmalari 2.3-jadvalda ko'rsatilgan 8-bitli ASCII belgilar kodidan foydalanadi . Birinchi 128 Unicode belgilari ASCII belgilari bilan bir xil, lekin ularning oldida qo'shimcha bosh null bayt mavjud. O'tkazish jadvallarini www.unicode.org/charts/ saytida topish mumkin . (Ingliz tili asosiy lotin yozuvidan foydalanadi)
American Standard Information Interchange Code (ASCII) kompyuter uskunalari uchun standart yetti bitli kod boʻlib, 1968 yilda qabul qilingan. 2.3-jadvalda “A” belgisini toping. U 4-qator va 1-ustun kesishmasida joylashgan, shuning uchun "A" uchun hex qiymati 0x41 bo'ladi. Sakkizinchi bit ba'zan aloqa qurilmalarida paritet uchun ishlatiladi. 0x20 dan kichik kodlar boshqaruv kodlari deb ataladi. Boshqaruv kodlari belgilarni chop etishdan boshqa operatsiyalarni bajaradi. Ba'zi keng tarqalgan boshqaruv kodlari quyida tavsiflanadi:
LF (satr tasmasi) - kursorni keyingi qatorga pastga siljitadi, lekin chapga emas. C/C++ da “\n” ishlatiladi.
CR (karetaning qaytishi) - kursorni butunlay chapga siljitadi, lekin keyingi qatorga o'tmaydi. C/C++ da “\r” ishlatiladi. Yangi qator uchun CR va LF belgilaridan foydalaniladi.
SP (bo'sh joy) bo'sh joyni chop etadi va kursor keyingi belgilar pozitsiyasiga o'tadi.
FF (shakl tasmasi) - printerlarda qog'ozni keyingi sahifaning boshiga o'tkazadi yoki terminallardagi matn chiqarish oynasini tozalaydi. C/C++ da “\f” ishlatiladi.
BEL (qo'ng'iroq) - terminallar va terminal emulyatsiya dasturlarida signal beradi.
BS (backspace) - kursorni teskari yo'nalishda (chapga) bir pozitsiyaga siljitadi. C/C++ da “\b” ishlatiladi.
HT (gorizontal yorliq) - kursorni o'ngga keyingi yorliq to'xtashiga olib boradi. Yorliq to'xtash oralig'i chiqish qurilmasiga bog'liq, lekin ko'pincha 8 yoki 10 ni tashkil qiladi.
VT (vertikal yorliq) - C/C++ "\v" dan foydalanadi.
ESC (qochish) - Ba'zan dastur buyruqlarini tugatish uchun ishlatiladi.
NUL (null) - Barcha nollar, ba'zan satrlarni tugatish uchun ishlatiladi.
E'tibor bering, "0" dan "9" gacha bo'lgan o'nlik raqamli belgilar 0x30 dan 0x39 gacha. Kod shunday o'rnatiladi: "A"<"B"<"C" … , shuning uchun raqamli qiymatlardan alifbo tartibida foydalanish mumkin. Shift tugmasi bosilganda koddagi bitta bit belgining registrini (ya'ni, "A" va "a") o'zgartiradi . ctrl tugmasi kodda ham bir bit o'zgaradi. Kengaytirilgan ASCII kodlari yana 128 ta maxsus grafik belgilarni chiqarish uchun sakkiz bitdan foydalanadi. Ushbu yangi grafikalar uchun bir nechta turli standartlar mavjud, shuning uchun batafsil ma'lumot uchun qurilmangiz qo'llanmasini tekshiring. Dastlabki 128 ta belgi asl 7 bitli ASCII kodi bilan bir xil. Unicode-da dastlabki 128 ta belgi ASCII belgilari bilan bir xil bo'lib, uni 16 bitga sig'dirish uchun bosh bayt nolga teng.
Windows Embedded CE barcha belgilar qatorlari uchun sukut bo'yicha Unicode kodlashdan foydalanadi. C da o'rnatilgan char turi 8 bitli ASCII kodlashdan foydalanadi, lekin TCHAR turi 16 bitli Unicodedan foydalanadi. Unicode satrini C belgilar qatoridan ishga tushirish uchun _T yoki _TEXT maxsus makro chaqiruvidan foydalanishingiz mumkin.Misol sifatida _T("hi") 0x00, 0x68, 0x00 va 0x69 qiymatlari bilan 4 baytlik Unicode qatorini ishlab chiqaradi. . C\C++ funktsiyalari, WideCharToMultiByte va MultiByteToWideChar , belgilar qatorlarini ASCII va Unicode ga/dan aylantirish uchun ishlatilishi mumkin. Lstrlen funksiyasi Unicode satrining belgilar uzunligini qaytaradi. Ushbu funksiyalar imkoniyatlari haqida koʻproq maʼlumot olish uchun onlayn yordam tizimiga qarang.
Xulosa
Xulosa qilib shuni aytish mumkinki Shinalar komputerda o’rnatilgan tizimlarda yani ardiuno va boshqa qurilmalarda ham juda muhim ahamyatga ega. Sababi malumotlarni aynan an shu shinalar orqali tashiladi hamda qabul qilinadi. Ularni nosozligi juda katta xatolarga olib keladi. Uzilishlardan foydalanish dasturiy ta'minot kiritish/chiqarishda talab qilinadigan protsessor kiritish-chiqarish tayyor kutish davrlarini yo'q qiladi.Men ushbu mustaqil ishidan shuni tushundimki Shinalarning tuzilishi bilish har bir IT mutaxasisi uchun juda kerak ekan.
Adabiyotlar
Saytlar
https://androidas.ru/uz/dlya-poderzhannyh-importnyh-avtomobilei-predlozhena-uproshchennaya-era-glonass/
https://androidas.ru/uz/dlya-poderzhannyh-importnyh-avtomobilei-predlozhena-uproshchennaya-era-glonass/
https://arm.tdpushf.uz/kitoblar/fayl_1798_20210914.pdf
https://intuit.ru/studies/courses/493/349/lecture/8338?page=3
Loyiha
Loyiha maqsadi: DC motor bilan sihlashni o’rganish
Loyihaning ko’rinishi
Dostları ilə paylaş: |