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