接口设计
25 Nov 2024
Read time: 4 minute(s)
Clock API
CMU 驱动提供了 Clock API 接口函数,不同类型时钟支持的 API 接口函数如下表:
API 函数
|
功能描述
|
fixed
rate
clock
|
fixed
parent
clock
|
multi
parent
clock
|
disp
clock
|
pll
clock
|
---|---|---|---|---|---|---|
hal_clk_enable() | 使能时钟 | - | √ | √ | - | √ |
hal_clk_disable() | 关闭时钟 | - | √ | √ | - | √ |
hal_clk_enable_deassertrst() | 使能时钟的同时放开复位 | - | √ | - | - | - |
hal_clk_disable_assertrst() | 关闭时钟的同时使能复位 | - | √ | - | - | - |
hal_clk_enable_iter() | 迭代的使能时钟及其父时钟 | - | √ | √ | - | √ |
hal_clk_enable_deassertrst_iter()
|
迭代的使能时钟及其父时钟
同时放开复位
|
- |
√
|
- | - | - |
hal_clk_get_freq() | 获取时钟频率 | √ | √ | √ | √ | √ |
hal_clk_set_freq() | 设置时钟频率 | - | √ | √ | √ | √ |
hal_clk_get_parent() | 获取父时钟 id | - | √ | √ | - | √ |
hal_clk_set_parent() | 设置父时钟 id | - | - | √ | - | - |
函数原型 | int hal_clk_enable(uint32_t clk_id) |
---|---|
功能说明 | 使能时钟 |
参数定义 | clk_id:时钟 ID (CLK_xxxx 格式定义的宏) |
返回值 | 操作是否成功 (0=OK, other=Error) |
注意事项 | - |
函数原型 | int hal_clk_disable(uint32_t clk_id) |
---|---|
功能说明 | 关闭时钟 |
参数定义 | clk_id:时钟 ID (CLK_xxxx 格式定义的宏) |
返回值 | 操作是否成功 (0=OK, other=Error) |
注意事项 | - |
函数原型 | int hal_clk_enable_deassertrst(uint32_t clk_id) |
---|---|
功能说明 | 使能时钟的同时放开复位 |
参数定义 | clk_id:时钟 ID (CLK_xxxx 格式定义的宏) |
返回值 | 操作是否成功 (0=OK, other=Error) |
注意事项 | - |
函数原型 | int hal_clk_disable_assertrst(uint32_t clk_id) |
---|---|
功能说明 | 关闭时钟的同时使能复位 |
参数定义 | clk_id:时钟 ID (CLK_xxxx 格式定义的宏) |
返回值 | 操作是否成功 (0=OK, other=Error) |
注意事项 | - |
函数原型 | int hal_clk_enable_iter(uint32_t clk_id) |
---|---|
功能说明 | 迭代的使能时钟及其父时钟 |
参数定义 | clk_id:时钟 ID (CLK_xxxx 格式定义的宏) |
返回值 | 操作是否成功 (0=OK, other=Error) |
注意事项 | - |
函数原型 | int hal_clk_enable_deassertrst_iter(uint32_t clk_id) |
---|---|
功能说明 | 迭代的使能时钟及其父时钟,同时放开复位 |
参数定义 | clk_id:时钟 ID (CLK_xxxx 格式定义的宏) |
返回值 | 操作是否成功 (0=OK, other=Error) |
注意事项 | - |
函数原型 | unsigned long hal_clk_get_freq(uint32_t clk_id) |
---|---|
功能说明 | 获取时钟频率 |
参数定义 | clk_id:时钟 ID (CLK_xxxx 格式定义的宏) |
返回值 | 时钟频率,单位为 Hz |
注意事项 | - |
函数原型 | int hal_clk_set_freq(uint32_t clk_id, unsigned long freq) |
---|---|
功能说明 | 设置时钟频率 |
参数定义 |
clk_id:时钟 ID (CLK_xxxx 格式定义的宏)
freq:时钟频率,单位为 Hz
|
返回值 | 操作是否成功 (0=OK, other=Error) |
注意事项 | - |
函数原型 | unsigned int hal_clk_get_parent(uint32_t clk_id) |
---|---|
功能说明 | 获取父时钟 ID |
参数定义 | clk_id:时钟 ID (CLK_xxxx 格式定义的宏) |
返回值 | 父时钟 ID |
注意事项 | - |
函数原型 | int hal_clk_set_parent(uint32_t clk_id, unsigned int parent_clk_id) |
---|---|
功能说明 | 设置父时钟 ID |
参数定义 |
clk_id:时钟 ID (CLK_xxxx 格式定义的宏)
parent_clk_id:父时钟 ID
|
返回值 | 操作是否成功 (0=OK, other=Error) |
注意事项 | - |
Reset API
CMU 驱动提供了 Reset API 接口函数:
API 函数 | 功能描述 |
---|---|
hal_reset_assert() | 使能复位 |
hal_reset_deassert() | 放开复位 |
hal_reset_status() | 获取复位状态 |
函数原型 | int hal_reset_assert(uint32_t rst_id) |
---|---|
功能说明 | 使能复位 |
参数定义 | rst_id:Reset ID (RESET_xxxx 格式定义的宏) |
返回值 | 操作是否成功 (0=OK, other=Error) |
注意事项 | - |
函数原型 | int hal_reset_deassert(uint32_t rst_id) |
---|---|
功能说明 | 放开复位 |
参数定义 | rst_id:Reset ID (RESET_xxxx 格式定义的宏) |
返回值 | 操作是否成功 (0=OK, other=Error) |
注意事项 | - |
函数原型 | int hal_reset_status(uint32_t rst_id) |
---|---|
功能说明 | 查看复位状态 |
参数定义 | rst_id:Reset ID (RESET_xxxx 格式定义的宏) |
返回值 | 操作是否成功 (0=复位有效, 1=复位无效) |
注意事项 | - |