Embedded-hal, egy keretrendszer univerzális vezérlők létrehozásához a Rustban

Ferris Rust

Ferris Rust nem hivatalos kabalája

Nemrég a munkacsoport Beágyazott rozsda, a beágyazott rendszerek alkalmazásainak, firmware-jének és illesztőprogramjainak minőségét és biztonságát javító technológiák fejlesztésére jött létre, bemutatta az embedded-hal 1.0 keretrendszer első verzióját.

Beágyazott-haKeretként pozicionálja magát amely bázisul szolgál teljesen platformfüggetlen meghajtók ökoszisztémájának kialakítása, ami azt jelenti, hogy az illesztőprogramok széles körű módosítások nélkül újra felhasználhatók különböző mikrokontrollereken.

Az Embedded-halról

El paquete Alkalmas univerzális meghajtók írására Rust nyelven különféle érzékelők, kijelzők, meghajtók és hálózati adapterek számára amelyek nincsenek konkrét mikrokontroller modellekhez kötve, vagyis az embedded_hal alapján létrehozott meghajtó minden olyan mikrokontrollerrel használható, amelyhez a csomagban HAL réteg tartozik.

El paquete rugalmas beépített hibakezelő rendszert is biztosít- Minden hibatípushoz tartozik egy hibatípus, amely támogatja a hibakereső eszközöket és a hibák okainak nyomon követését.

Belül Az Embedded-hal fő céljai a következők emelkednek ki:

  • Nincsenek eszközspecifikus részletek: sem a napló, sem a naplóblokkok, azaz nem jelenhetnek meg eszközspecifikus értékek az API-ban.
  • Általánosnak kell lennie egy eszközön belül és az eszközök között. Az interfész használatához használt API-nak azonosnak kell lennie, függetlenül a használt megvalósítástól.
  • Amikor csak lehetséges, ne kapcsolódjon egy adott aszinkron modellhez.
  • Minimálisnak kell lennie, ezért könnyen megvalósítható, de nagyon jól összeállítható.
  • Alapként szolgál a platformfüggetlen meghajtók ökoszisztémájának felépítéséhez. Itt a vezérlő azt jelenti, hogy lehetővé teszi a célplatform számára, hogy kölcsönhatásba lépjen egy külső eszközzel, például digitális érzékelővel vagy vezeték nélküli adó-vevővel.
  • A vonásmódszereknek esendőnek kell lenniük, hogy minden lehetséges helyzetben használhatók legyenek.

Milyen újdonságok vannak az Embedded-hal 1.0-ban?

Az Embedded-hal 1.0 a 2020 óta végzett erőfeszítések csúcspontjaa stabilitás és a megbízhatóság garantálása érdekében. Az 1.0-s verzió már elérhető, az összes mellékelt hardveres absztrakciós réteg (HAL) tulajdonság stabilnak tekinthető, ami szilárd alapot teremt a jövőbeni fejlesztésekhez és bővítésekhez.

Embedded-hal 1.0 A projekt első stabil változataként kerül bemutatásra és ezzel együtt olyan kiegészítő csomagok stabil változatai is kialakultak, mint az aszinkron illesztőprogramok létrehozását elősegítő embedded-hal-async és az állapotlekérdezési modellt lekérdezési módban megvalósító embedded-hal-nb .

Ezekkel a csomagokkal együtt további eszközöket kínálnak, mint például a hal-bus, amelyet SPI és I2C buszokkal való együttműködésre terveztek, CAN, amely támogatja a CAN (Controller Area Network) buszt, és IO, amely típusmegvalósításokat biztosít a bemenet/kimenet orientálthoz. bájt, ideális az UART-hoz és más perifériákhoz.

Ezen kívül a következőket is kiemeljük:

Fókuszban a járművezetők: Válaszul a felhasználói visszajelzésekre és a változó követelményekre, az embedded-hal 1.0 az általános illesztőprogram-fejlesztést, az API-k egyszerűsítését és az interoperabilitás bonyolultságának megszüntetését helyezi előtérbe.

Aszinkron támogatás: Figyelemre méltó kiegészítés a beágyazott-hal-async könyvtár, amely a tulajdonságok aszinkron változatait kínálja. Kihasználva a Rust 1.75 Rust Stable aszinkron funkcióinak támogatását, a fejlesztők mostantól használhatják az aszinkron funkciókat anélkül, hogy dinamikus memóriafoglalást vagy dinamikus diszpécserhez folyamodnának. Ez a fejlesztés megkönnyíti a fejlesztést, és illeszkedik a modern Rust gyakorlatokhoz.

SPI buszmegosztás: A SpiDevice funkció támogatja az SPI-busz megosztását több eszköz között, amelyek mindegyike egyedi CS-tűkkel rendelkezik. Ez zökkenőmentes kommunikációt tesz lehetővé a vezérlők és a nem kapcsolódó eszközök között ugyanazon a buszon, javítva a rugalmasságot és az erőforrás-kihasználást.

Hibakezelés: Az általános illesztőprogramok a fejlett hibakezelési lehetőségek előnyeit élvezik, azzal a feltétellel, hogy az illesztőprogramoknak „Hiba” tulajdonságot kell alkalmazniuk, amely lehetővé teszi a hibák ellenőrzését és osztályozását. Ez a szabványos megközelítés robusztus hibakezelést biztosít a különböző HAL-megvalósítások között.

Embedded-IO integráció: Az embedded-hal projekt tartalmazza az embedded-io könyvtárakat, amelyek szolgáltatásokat nyújtanak a bájtorientált I/O adatfolyamokhoz. Az embedded-io-ra áttelepített UART-specifikus funkciókkal a fejlesztők egységes és egyszerűsített megközelítésre számíthatnak a soros kommunikációban.

Az embedded-hal 1.0 megjelenése jelentős előrelépést jelent a Rust ökoszisztémában. Végül pedig azoknak, akik többet szeretnének megtudni a projekt fejleményeiről, tudniuk kell, hogy azokat terjesztik Apache 2.0 licenc alatt.

forrás: https://blog.rust-embedded.org


Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: Miguel Ángel Gatón
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.