硬件抽象层(Hardware Abstact Layer, HAL)定义了SiFli芯片硬件访问接口。用户可以使用这个接口定义的函数直接访问底层硬件资源。
SF32LB55X/SF32LB56X/SF32LB52X有两个CPU,HCPU用于高性能计算,LCPU用于实现低功耗,用户可以在需要高性能的时候,例如显示,或者AI的计算,打开HCPU;而将低功耗的功能实现在LCPU,例如BLE, 传感器,从而在进入低功耗模式的时候,关闭HCPU,减少系统的功耗。
SF32LB58X有三个CPU,HCPU用于高性能计算,ACPU可以用于Audio DSP处理,LCPU用于实现低功耗,用户可以在需要高性能的时候,例如显示,或者AI的计算,打开HCPU;而将低功耗的功能实现在LCPU,例如BLE, 传感器,从而在进入低功耗模式的时候,关闭HCPU,减少系统的功耗。
通常运行在HCPU的软件可以访问LCPU的硬件资源,但是需要确保LCPU处于打开运行状态,并且LCPU没有使用这些资源。当HCPU/ACPU软件使用LCPU的硬件的时候,需要在睡眠唤醒的时候,首先将LCPU唤醒,以确保LCPU硬件资源的访问,否则会引发系统访问失败而死机。
运行在LCPU的软件不能使用HCPU的硬件资源,仅仅可以在HCPU/ACPU处于打开运行状态,访问一些HCPU的寄存器,这种访问不建议使用。
思澈芯片包含以下硬件模块(BLE硬件资源(RFC,PHY,MAC)的使用在 低功耗蓝牙服务 中说明):
| 硬件模块 | SF32LB55 | SF32LB56 | SF32LB58 | SF32LB52 |
|---|---|---|---|---|
| BLE | | | | |
| BT | | | | |
| ADC | | | | |
| AES | | | | |
| AON | | | | |
| AUDCODEC | | | | |
| AUDPRC | | | | |
| ATIM | | | | |
| BTIM | | | | |
| BUSMON | | | | |
| CACHE | | | | |
| CRC | | | | |
| DMA | | | | |
| DSI | | | | |
| EFUSE | | | | |
| EPIC | | | | |
| EXTDMA | | | | |
| EZIP | | | | |
| FACC | | | | |
| FFT | | | | |
| GPIO | | | | |
| GPT | | | | |
| Hash | | | | |
| I2C | | | | |
| I2S | | | | |
| LCDC | | | | |
| LPTIM | | | | |
| MAILBOX | | | | |
| MPI | | | | |
| NNACC | | | | |
| PATCH | | | | |
| PDM | | | | |
| PINMUX | | | | |
| PMU | | | | |
| PSRAM | | | | |
| QSPI | | | | |
| RNG | | | | |
| RCC | | | | |
| RTC | | | | |
| Segma Delta Analog Digital Converter | | | | |
| SD Host Controller Interface | | | | |
| SPI | | | | |
| SYSCFG | | | | |
| TSEN | | | | |
| UART | | | | |
| USBC | | | | |
| WDT | | | | |
以下函数需要在移植到其他实时操作系统的时候实现: