思澈科技软件开发工具包  2.20
硬件抽象层

硬件抽象层(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
✔
✔
✔
✔

HAL的移植

以下函数需要在移植到其他实时操作系统的时候实现:

Hal porting functions