MS-RTOS 板级支持包

更新时间:
2023-08-09
下载文档

MS-RTOS 板级支持包

本章将介绍 MS-RTOS 板级支持包 BSP 相关接口的使用。

MS-RTOS 移植介绍

当移植 MS-RTOS 到某一款芯片上,需要实现一个板级支持包 BSP,BSP 里面主要包括了启动代码、链接脚本、驱动程序和 MS-RTOS 依赖于硬件平台需要实现的一些函数,MS-RTOS 定义了这些函数的接口、功能规范,开发者需要实现这些接口方能使得 MS-RTOS 能够在该芯片上运行起来,但这些函数并非强制需要全部都实现(参考函数列表的依赖)。

BSP 相关函数

下表展示了 BSP 相关的函数的依赖:

函数依赖
ms_bsp_reboot
ms_bsp_shutdown
ms_bsp_printk
ms_bsp_log_write日志系统
ms_bsp_int_enable中断管理
ms_bsp_int_disable中断管理
ms_bsp_int_is_enable中断管理
ms_bsp_device_nameTrace
ms_bsp_cpu_freqTrace
ms_bsp_timestamp_freqTrace
ms_bsp_int_trace_descTrace
ms_bsp_tick_less_paramTick-less
ms_bsp_tick_less_sleepTick-less
ms_bsp_pm_set_run_mode电源管理
ms_bsp_pm_notify电源管理
ms_bsp_pm_sleep电源管理
ms_bsp_pm_timer_start电源管理
ms_bsp_pm_timer_stop电源管理
ms_bsp_pm_timer_elapsed电源管理
ms_bsp_hm_notify健康监控设备驱动
ms_bsp_mmu_pre_enable带有 MMU 的 CPU
ms_bsp_mpu_pre_enable带有 MPU 的 CPU

ms_bsp_reboot()

  • 描述 机器重启

  • 函数原型

void ms_bsp_reboot(void);
  • 参数

  • 返回值

  • 注意事项

  • 示例

ms_bsp_shutdown()

  • 描述 关机

  • 函数原型

void ms_bsp_shutdown(void);
  • 参数

  • 返回值

  • 注意事项

  • 示例

ms_bsp_printk()

  • 描述 打印一则内核消息

  • 函数原型

void ms_bsp_printk(const char *buf, ms_size_t len);
  • 参数
输入/输出参数描述
[in]buf需要打印的消息
[in]len需要打印的消息的长度
  • 返回值

  • 注意事项

  • 示例

ms_bsp_log_write()

  • 描述 记录一则 LOG 日志

  • 函数原型

void ms_bsp_log_write(const char *buf, ms_size_t len);
  • 参数
输入/输出参数描述
[in]buf需要记录的日志
[in]len需要记录的日志的长度
  • 返回值

  • 注意事项

  • 示例

ms_bsp_int_enable()

  • 描述 使能指定的中断

  • 函数原型

ms_err_t  ms_bsp_int_enable(ms_irq_t irq);
  • 参数
输入/输出参数描述
[in]irq中断号
  • 返回值 MS-RTOS 内核错误码

  • 注意事项 中断管理使能时需要实现,BSP、驱动开发请使用中断安全版本函数 ms_int_enable

  • 示例

ms_bsp_int_disable()

  • 描述 屏蔽指定的中断

  • 函数原型

ms_err_t  ms_bsp_int_disable(ms_irq_t irq);
  • 参数
输入/输出参数描述
[in]irq中断号
  • 返回值 MS-RTOS 内核错误码

  • 注意事项 中断管理使能时需要实现,BSP、驱动开发请使用中断安全版本函数 ms_int_disable

  • 示例

ms_bsp_int_is_enable()

  • 描述 判断指定的中断是否使能

  • 函数原型

ms_bool_t ms_bsp_int_is_enable(ms_irq_t irq);
  • 参数
输入/输出参数描述
[in]irq中断号
  • 返回值 MS_TRUE:使能,MS_FALSE:被屏蔽

  • 注意事项 中断管理使能时需要实现,BSP、驱动开发请使用中断安全版本函数 ms_int_is_enable

  • 示例

ms_bsp_device_name()

  • 描述 获得设备名

  • 函数原型

const char *ms_bsp_device_name(void);
  • 参数

  • 返回值 设备名

  • 注意事项 Trace 使能时需要实现

  • 示例

ms_bsp_cpu_freq()

  • 描述 获得 CPU 主频

  • 函数原型

ms_uint32_t ms_bsp_cpu_freq(void);
  • 参数

  • 返回值 CPU 主频

  • 注意事项 Trace 使能时需要实现

  • 示例

ms_bsp_timestamp_freq()

  • 描述 获得时间戳的频率

  • 函数原型

ms_uint32_t ms_bsp_timestamp_freq(void);
  • 参数

  • 返回值 时间戳的频率

  • 注意事项 Trace 使能时需要实现

  • 示例

ms_bsp_int_trace_desc()

  • 描述 获得中断的 trace 描述信息

  • 函数原型

const char *ms_bsp_int_trace_desc(void);
  • 参数

  • 返回值 中断的 trace 描述信息

  • 注意事项 Trace 使能时需要实现

  • 示例

ms_bsp_tick_less_param()

  • 描述 获得 tick-less 模式相关工作参数

  • 函数原型

void ms_bsp_tick_less_param(ms_tick_t *max_tick, ms_tick_t *min_tick, 
                              ms_uint32_t *timer_cnt_per_tick, 
                              ms_uint32_t *timer_stop_compensation);
  • 参数
输入/输出参数描述
[out]max_tick硬件定时器支持的最大 tick-less 时间
[out]min_tick至少休眠多少个 tick 时才进入 tick-less CPU 休眠模式
[out]timer_cnt_per_tick每个 tick 多少个硬件定时器的计数值
[out]timer_stop_compensation硬件定时器停止时的计数值补偿量
  • 返回值

  • 注意事项 tick-less 模式使能时需要实现

  • 示例

ms_bsp_tick_less_sleep()

  • 描述 进入 tick-less CPU 休眠模式

  • 函数原型

void ms_bsp_tick_less_sleep(ms_tick_t expected_tick, ms_arch_sr_t sr);
  • 参数
输入/输出参数描述
[in]expected_tick期望 CPU 休眠多少个 tick
[in]srCPU 进入休眠前需要调用 ms_arch_int_resume 函数恢复 CPU 中断状态的参数
  • 返回值

  • 注意事项 tick-less 模式使能时需要实现

  • 示例

ms_bsp_pm_set_run_mode()

  • 描述 设置 CPU 运行模式

  • 函数原型

void ms_bsp_pm_set_run_mode(ms_pm_run_mode_t run_mode);
  • 参数
输入/输出参数描述
[in]run_modeCPU 运行模式
  • 返回值

  • 注意事项 电源管理使能时需要

  • 示例

ms_bsp_pm_notify()

  • 描述 响应电源管理的通知事件

  • 函数原型

void ms_bsp_pm_notify(ms_pm_sleep_mode_t sleep_mode, ms_pm_event_t event);
  • 参数
输入/输出参数描述
[in]sleep_modeCPU 休眠模式
[in]event电源管理的通知事件
  • 返回值

  • 注意事项 电源管理使能时需要

  • 示例

ms_bsp_pm_sleep()

  • 描述 让 CPU 进入指定的休眠模式

  • 函数原型

void ms_bsp_pm_sleep(ms_pm_sleep_mode_t sleep_mode, ms_arch_sr_t sr);
  • 参数
输入/输出参数描述
[in]sleep_mode需要进入的 CPU 休眠模式
[in]srCPU 进入休眠前需要调用 ms_arch_int_resume 函数恢复 CPU 中断状态的参数
  • 返回值

  • 注意事项 电源管理使能时需要

  • 示例

ms_bsp_pm_timer_start()

  • 描述 启动低功耗定时器

  • 函数原型

void ms_bsp_pm_timer_start(ms_tick_t tick);
  • 参数
输入/输出参数描述
[in]tick低功耗定时器到期时间(tick 单位)
  • 返回值

  • 注意事项 电源管理使能时需要

  • 示例

ms_bsp_pm_timer_stop()

  • 描述 停止低功耗定时器

  • 函数原型

void ms_bsp_pm_timer_stop(void);
  • 参数

  • 返回值

  • 注意事项 电源管理使能时需要

  • 示例

ms_bsp_pm_timer_elapsed()

  • 描述 获得 CPU 休眠期间低功耗定时器流逝的嘀嗒数

  • 函数原型

ms_tick_t ms_bsp_pm_timer_elapsed(void);
  • 参数

  • 返回值 CPU 休眠期间低功耗定时器流逝的嘀嗒数

  • 注意事项 电源管理使能时需要

  • 示例

ms_bsp_hm_notify()

  • 描述 响应健康监控的通知事件

  • 函数原型

void ms_bsp_hm_notify(ms_pid_t pid, ms_hm_handle_mode_t mode);
  • 参数
输入/输出参数描述
[in]pid健康异常的进程 ID
[in]mode健康异常处理模式
  • 返回值

  • 注意事项 健康监控设备驱动使能时需要

  • 示例

ms_bsp_mmu_pre_enable()

  • 描述 MMU 使能前的处理(一般用于 IO 寄存器重映射)

  • 函数原型

void ms_bsp_mmu_pre_enable(void);
  • 参数

  • 返回值

  • 注意事项

  • 示例

ms_bsp_mpu_pre_enable()

  • 描述 MPU 使能前的处理

  • 函数原型

void ms_bsp_mpu_pre_enable(void);
  • 参数

  • 返回值

  • 注意事项

  • 示例

文档内容是否对您有所帮助?
有帮助
没帮助