本规约规约 AUTOSAR 基础软件模块通用定时器(General Purpose Timer Driver, GPT)的功能、API 与配置。GPT 驱动位于微控制器抽象层(MCAL),初始化并控制微控制器的内部通用定时器。
GPT 驱动提供以下服务和配置参数:
| 缩略语 | 描述 |
|---|---|
| GPT | General Purpose Timer(通用定时器) |
| MCAL | Microcontroller Abstraction Layer(微控制器抽象层) |
| GPT Predef Timer | GPT 预定义定时器(自由运行向上计数器,1µs 16/24/32 bit + 100µs 32 bit) |
| DEM | Diagnostic Event Manager(诊断事件管理器) |
| DET | Default Error Tracer(默认错误追踪器) |
| ISR | Interrupt Service Routine(中断服务例程) |
| OS | Operating System(操作系统) |
| OS Alarm | 操作系统告警服务 |
| One-Shot / Continuous | 单次 / 连续模式 |
| Wakeup | 唤醒(事件) |
AUTOSAR_EXP_LayeredSoftwareArchitecture — 分层软件架构AUTOSAR_SRS_BSWGeneral — 基础软件通用需求AUTOSAR_SWS_BSWGeneral — 基础软件通用规范AUTOSAR_SRS_GPTDriver — GPT 驱动需求AUTOSAR_SRS_SPALGeneral — SPAL 通用需求GPT 驱动为基于硬件的 MCAL 驱动。某些服务(PLL 锁定、时钟分布、唤醒模式)依赖硬件支持。
Gpt.c # 主源文件
Gpt_Irq.c # ISR 实现
Gpt_Lcfg.c # Link-time 配置
Gpt_PBcfg.c # PostBuild 配置
GPT 驱动依赖 EcuM(资源管理)、DEM(错误报告)、DET(开发错误追踪)、OS(中断管理)。
GPT 驱动满足 SRS_Gpt_NNNNN 中的 18 条需求(参见 SRS 翻译)以及 RS_BRF_NNNNN 顶层需求。GPT 自身的 SWS_Gpt_NNNNN 规范项 ID 约 400+ 条(详细列表见原文第 6/7/8/10 章;编号范围 00006-00403)。
GPT 驱动允许以下预配置:
GPT 驱动正常操作流程:
Gpt_Init() 初始化 GPT 模块;Gpt_StartTimer(Channel, Value) 启动定时器;Gpt_GetTimeElapsed(Channel) / Gpt_GetTimeRemaining(Channel) 获取时间值;Gpt_StopTimer(Channel) 停止定时器;Gpt_DeInit() 反初始化。| 错误码 | 含义 |
|---|---|
GPT_E_UNINIT | GPT 未初始化 |
GPT_E_ALREADY_INITIALIZED | GPT 已初始化 |
GPT_E_INIT_FAILED | 初始化失败 |
GPT_E_PARAM_CHANNEL | 无效的通道引用 |
GPT_E_PARAM_VALUE | 无效的参数值 |
GPT_E_PARAM_POINTER | 无效的指针 |
GPT_E_BUSY | 通道忙 |
GPT_E_MODE | 当前模式不允许该操作 |
无。
无。
无。
无。
Std_ReturnType、Std_VersionInfoType、Std_ConfigType| 类型 | 描述 |
|---|---|
Gpt_ConfigType | GPT 抽象配置类型(外部数据结构) |
Gpt_ChannelType | GPT 通道 ID(uint8/16/32) |
Gpt_ValueType | GPT 定时器值(uint32) |
Gpt_ModeType | GPT 模式枚举(GPT_MODE_NORMAL / GPT_MODE_SLEEP) |
Gpt_PredefTimerType | 预定义定时器类型枚举(GPT_PREDEF_TIMER_1US_16BIT / 24BIT / 32BIT / GPT_PREDEF_TIMER_100US_32BIT) |
Gpt_NotificationType | 通知回调函数指针类型 |
| API | 签名 | 功能 |
|---|---|---|
Gpt_Init | void Gpt_Init(const Gpt_ConfigType* ConfigPtr) | 初始化 GPT 模块 |
Gpt_DeInit | void Gpt_DeInit(void) | 反初始化 GPT 模块(将 SFR 复位到默认值) |
Gpt_GetVersionInfo | void Gpt_GetVersionInfo(Std_VersionInfoType* VersionInfoPtr) | 获取版本信息 |
| API | 签名 | 功能 |
|---|---|---|
Gpt_GetTimeElapsed | Gpt_ValueType Gpt_GetTimeElapsed(Gpt_ChannelType Channel) | 获取通道已用时间(自启动以来经过的 ticks) |
Gpt_GetTimeRemaining | Gpt_ValueType Gpt_GetTimeRemaining(Gpt_ChannelType Channel) | 获取通道剩余时间(到到期还剩的 ticks) |
Gpt_StartTimer | void Gpt_StartTimer(Gpt_ChannelType Channel, Gpt_ValueType Value) | 启动通道定时器(以 ticks 为单位) |
Gpt_StopTimer | void Gpt_StopTimer(Gpt_ChannelType Channel) | 停止通道定时器 |
Gpt_GetPredefTimerValue | Std_ReturnType Gpt_GetPredefTimerValue(Gpt_PredefTimerType PredefTimer, uint32* ValuePtr) | 获取预定义定时器当前值 |
| API | 签名 | 功能 |
|---|---|---|
Gpt_EnableNotification | void Gpt_EnableNotification(Gpt_ChannelType Channel) | 启用通道通知(达到时间时调用回调) |
Gpt_DisableNotification | void Gpt_DisableNotification(Gpt_ChannelType Channel) | 禁用通道通知 |
| API | 签名 | 功能 |
|---|---|---|
Gpt_SetMode | void Gpt_SetMode(Gpt_ModeType Mode) | 设置 GPT 模式(Normal/Sleep) |
Gpt_DisableWakeup | void Gpt_DisableWakeup(Gpt_ChannelType Channel) | 禁用通道唤醒能力 |
Gpt_EnableWakeup | void Gpt_EnableWakeup(Gpt_ChannelType Channel) | 启用通道唤醒能力 |
Gpt_CheckWakeup | Std_ReturnType Gpt_CheckWakeup(EcuM_WakeupSourceType WakeupSource) | 检查唤醒源(验证唤醒事件) |
| API | 签名 | 功能 |
|---|---|---|
Gpt_Notification_<channel> | void Gpt_Notification_<channel>(void) | 每通道通知回调(应用实现,模板形式) |
GPT API 完整清单:15 个 API 函数(Init/DeInit/GetVersionInfo/GetTimeElapsed/GetTimeRemaining/StartTimer/StopTimer/EnableNotification/DisableNotification/SetMode/DisableWakeup/EnableWakeup/CheckWakeup/GetPredefTimerValue + 1 个通知回调模板)。
Gpt_StartTimer(Channel, Value) → 硬件定时器启动;Gpt_GetTimeElapsed(Channel) → 返回已用 ticks;Gpt_Notification_<channel>() → 应用;Gpt_StopTimer(Channel) → 硬件定时器停止;Gpt_SetMode(GPT_MODE_SLEEP) → 仅唤醒通知可用;Gpt_CheckWakeup(WakeupSource) → 验证唤醒原因。| 参数 | 描述 |
|---|---|
| GptDevErrorDetect | 开发错误检测开关 |
| GptVersionInfoApi | Gpt_GetVersionInfo() API 开关 |
| GptReportWakeupSource | 唤醒源报告开关 |
| GptDeinitApi | Gpt_DeInit() API 开关 |
| GptEnableDisableNotificationApi | 通知启用/禁用 API 开关 |
| GptPredefTimerApi | 预定义定时器 API 开关 |
| GptSetModeApi | Gpt_SetMode() API 开关 |
| GptWakeupFunctionalityApi | 唤醒功能 API 开关 |
| 参数 | 描述 |
|---|---|
| GptNumberOfGptChannels | GPT 通道数量 |
| GptNumberOfGptPredefTimers | 启用的预定义定时器数量 |
| 参数 | 描述 |
|---|---|
| GptChannelId | 通道 ID |
| GptChannelTickFrequency | 通道滴答频率(Hz) |
| GptChannelTickValueMax | 通道最大滴答值 |
| GptChannelMode | 模式(One-Shot / Continuous) |
| GptNotificationCallback | 通知回调函数指针 |
| GptEnableWakeup | 是否支持唤醒 |
| GptWakeupSourceId | 唤醒源 ID(EcuM) |
| 参数 | 描述 |
|---|---|
| GptPredefTimerId | 预定义定时器 ID |
| GptPredefTimerType | 类型(1µs 16/24/32 bit / 100µs 32 bit) |
| GptPredefTimerFrequency | 频率(Hz) |
| GptPredefTimerTicksPerBase | 每个 base 的 ticks |
| 参数 | 描述 |
|---|---|
| GptClockReference | 时钟引用(来自 MCU 驱动) |
发布信息包括 GPT 模块版本、配置变体、通道数量、预定义定时器数量等。
校对轮次:L1 自动校对(2026-06-13)
GPT_E_UNINIT/ALREADY_INITIALIZED/INIT_FAILED/PARAM_CHANNEL/PARAM_VALUE/PARAM_POINTER/BUSY/MODE)完整翻译。