硬件抽象层(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 | | | | |
以下函数需要在移植到其他实时操作系统的时候实现: