Preskočiť na hlavný obsah

RAL RAL ST

Podporované rodiny STM32: G4 · H5 · H7 · L4 · U5

Modul Register Abstraction Layer: kombinuje pôvodné ovládače HAL/LL od STMicroelectronics s vlastnou vrstvou rozhrania Embedbits nezávislou od hardvéru (Port/). Používa sa ako git submodul repozitára Bsp-Ral, jedna vetva pre každú rodinu/vydanie STM32.


Prehľad​

Upstream projekt (Stm32_Drv/)STMicroelectronics/stm32<family>xx_hal_driver (napr. stm32g4xx_hal_driver)
Obsah vlastnený Embedbits (Port/)Jednotné pomenovanie funkcií/hlavičiek nezávislé od rodiny, nad API ST HAL/LL
Úloha v Bsp-RalZdroj pre Ral_Lib (odporúčané, rozhranie len z Port/) aj HAL_LL_Lib (plný prístup k ST HAL/LL)
LicenciaZdrojové kódy ovládačov odvodené od ST nájdete v Stm32_Drv/License.md; vrstva Port/ od Embedbits sa riadi licenciou nadradeného repozitára
Model údržbyStm32_Drv/ je zrkadlený z upstreamu ST pre každú rodinu a nesmie sa lokálne upravovať; Port/ udržiava Embedbits

⚠️ Stm32_Drv/ nikdy neupravujte priamo — aktualizácie sa sledujú voči pôvodnému repozitáru ST. Zmeny nezávislé od hardvéru patria do Port/.


Štruktúra vetiev​

Vzor vetvyÚčel
STM32<family> (napr. STM32G4, STM32U5, STM32H7)Vetva rodiny, odvodená od master, obsahuje ovládače ST HAL/LL a rozhranie Port/ pre danú rodinu
STM32<family>_<major>.x (napr. STM32G4_1.x)Vetva hlavného vydania, odvodená od vetvy rodiny, sleduje hlavné vydanie ST HAL
STM32<family>_<major>.<minor> (napr. STM32G4_1.2)Vetva vedľajšieho vydania/opravy, odvodená od vetvy hlavného vydania

Všetky vetvy rodín sú odvodené od master.


Štruktúra repozitára​

RAL_ST
├── Port # Embedbits' hardware-independent interface layer
│ ├── Stm32.h # Umbrella include
│ ├── Stm32_tim.h # Unified timer interface
│ ├── Stm32_i2c.h # Unified I2C interface
│ ├── Stm32_spi.h # Unified SPI interface
│ ├── Stm32_gpio.h
│ ├── Stm32_usart.h
│ └── ... # One header per peripheral, family-independent naming
└── Stm32_Drv # Original HAL/LL drivers, unmodified from STMicroelectronics
├── Inc # HAL/LL headers (e.g. stm32g4xx_ll_tim.h)
├── Src # HAL/LL sources (e.g. stm32g4xx_ll_tim.c)
└── License.md

Port/ — jednotné rozhranie​

Port/ sprístupňuje jednu hlavičku pre každú perifériu s pomenovaním funkcií/typov nezávislým od rodiny STM32, takže aplikačný kód môže prechádzať medzi rodinami STM32 bez zmeny vlastných zdrojových súborov:

#include "Stm32_tim.h" // Automatically selects the correct HAL headers based on the target MCU define

Použitie​

Ral_Lib aj HAL_LL_Lib sú definované v koreňovom CMakeLists.txt repozitára Bsp-Ral a využívajú dva adresáre tohto modulu:

Cieľ CMakeVerejná cesta pre includeUrčené použitie
Ral_LibRAL_ST/Port/Odporúčané. Stabilné API nezávislé od hardvéru pre aplikačný kód/middleware
HAL_LL_LibRAL_ST/Stm32_Drv/Inc/Plný prístup k ST HAL/LL, iba pre internú integráciu a testovanie
# Recommended interface
target_link_libraries(MyApp PRIVATE Ral_Lib)

# Extended low-level access (not recommended for modular projects)
target_link_libraries(MyApp PRIVATE HAL_LL_Lib)
#include "Stm32_tim.h" // Unified abstraction header, via Ral_Lib

⚠️ Ral_Lib je jediné oficiálne podporované rozhranie pre externé projekty. HAL_LL_Lib používajte len vtedy, keď je výslovne potrebné priame API ST HAL/LL.


Licencia​

Komponenty Stm32_Drv/ sú odvodené od ovládačov HAL/LL od STMicroelectronics a riadia sa ich príslušnou licenciou — pozrite Stm32_Drv/License.md. Rozhranie vrstvy Port/ je pôvodný kód Embedbits, distribuovaný pod licenciou nadradeného repozitára Bsp-Ral.