思澈科技软件开发工具包  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