当前位置: 首页 > news >正文

TC397 AUTOSAR EB MCAL STM 配置与ADS测试

文章目录

    • 前言
    • MCAL STM
    • 硬件连接
    • 软件环境
    • EB配置
      • ResourceM
      • Mcu
      • Stm
      • Irq
    • Mcal Stm 拷贝
    • App代码
      • Irq
      • Stm
      • core0_main
    • Task代码

前言

TC397 的 EB Mcal 配置与测试, 有DIO STM UART CAN FlsLoader CRC, 本篇是 MCAL STM, 照本文描述可复现工程, 故不再提供源码,
嵌入式_机器人_自动驾驶交流QQ群: 1040239879

MCAL STM

本篇目的在于配置和单独测试 Mcal 的 Stm. 最终效果是配置了stm0定时器的两个中断, 一个1ms中断, 一个1s中断, 并且给出了一个简单的task调度实现.

硬件连接

  • MCU: TC397XP, 外部晶振20MHz
  • LED0: P21_0, 低电平点亮

软件环境

  • Mcal: 对应 Autosar CP 4.2.2
  • 配置软件: EB tresos 23.0.0
  • IDE: AURIX™ Development Studio V1.9.4(仅用于学习交流, 以下简称ads)

如何新建工程可参考上篇 MCAL DIO, 本篇主要贴出Stm的EB配置和用户代码.

EB配置

ResourceM

配置多核支持

Mcu

McuClockSettingConfig_0里面默认的McuSTMFrequency时钟100MHz无需修改, 接下来把两个比较器给STM

Stm

Irq

配置stm0的两个中断的中断优先级(0~255, 数字越大, 优先级越高, 0表示禁止中断)

验证生成代码即可

Mcal Stm 拷贝

App代码

Irq

#include"Stm.h"#include"Irq.h"#include"Mcu_17_TimerIp.h"IFX_INTERRUPT(STM0SR0_ISR,0,IRQ_STM0_SR0_PRIO){ENABLE();Mcu_17_Stm_CompareMatchIsr(STM_0,0);*(volatileuint32*)0xF0001040=0x01;/* clear interrupt iscr */}IFX_INTERRUPT(STM0SR1_ISR,0,IRQ_STM0_SR1_PRIO){ENABLE();Mcu_17_Stm_CompareMatchIsr(STM_0,1);}

Stm

#include"IfxSrc_reg.h"voidstm_callback0(void){}voidstm_callback1(void){Dio_FlipChannel(DioConf_DioChannel_LED0);}voidapp_stm_init(floatperiod0,floatperiod1){Stm_EnableModule(STM_0);IrqStm_Init();SRC_STM0SR0.B.SRE=1U;SRC_STM0SR1.B.SRE=1U;uint32 tick=(uint32)(Ifx_Ssw_getStmFrequency()*period0);Stm_EnableAlarm(STM_0,0,1,tick,stm_callback0);tick=(uint32)(Ifx_Ssw_getStmFrequency()*period1);Stm_EnableAlarm(STM_0,1,1,tick,stm_callback1);}

core0_main

voidcore0_main(void){volatileunsignedshortLoopFlag=1U;unsignedshortcpuWdtPassword;unsignedshortsafetyWdtPassword;ENABLE();cpuWdtPassword=Ifx_Ssw_getCpuWatchdogPassword(&MODULE_SCU.WDTCPU[0]);safetyWdtPassword=Ifx_Ssw_getSafetyWatchdogPassword();Ifx_Ssw_disableCpuWatchdog(&MODULE_SCU.WDTCPU[0],cpuWdtPassword);Ifx_Ssw_disableSafetyWatchdog(safetyWdtPassword);app_mcu_init();app_port_init();app_stm_init(0.001,1);while(LoopFlag==1U){}}

编译下载运行, LED0每秒翻转一次. 说明 1s 一次的stm_callback1被调用了.

Task代码

可以用1ms中断的stm_callback0实现一个简单的task

volatileunsignedintstm_count0=0;voidstm_callback0(void){stm_count0++;}voidstm_callback1(void){}structnanotask{void(*func)(void);unsignedintperiod;// msunsignedintnext;// ms};voidnanotask0(void){Dio_FlipChannel(DioConf_DioChannel_LED0);}voidnanotask1(void){}structnanotasknanotasks[]={{nanotask0,1000,0},{nanotask1,2000,0},};voidnanotask_init(void){for(inti=0;i<sizeof(nanotasks)/sizeof(nanotasks[0]);i++){nanotasks[i].next=nanotasks[i].period;}}voidnanotask_runone(void){for(inti=0;i<sizeof(nanotasks)/sizeof(nanotasks[0]);i++){if(nanotasks[i].next==0){nanotasks[i].func();nanotasks[i].next=nanotasks[i].period;}else{nanotasks[i].next--;}}}voidcore0_main(void){...app_mcu_init();app_port_init();app_stm_init(0.001,1);nanotask_init();while(LoopFlag==1U){if(stm_count0>0){stm_count0=0;nanotask_runone();}}}
http://www.jsqmd.com/news/276075/

相关文章:

  • Qwen3-Embedding-0.6B实战案例:基于Jupyter的文本分类快速上手
  • 人形机器人动作流畅的秘诀何在?数据转化平台破解核心难题
  • Hunyuan-MT-7B部署资源估算:不同规模需求的GPU配置建议
  • Hunyuan-MT-7B GPU利用率低?算力适配优化实战案例
  • Z-Image-ComfyUI一键启动脚本使用说明,超简单
  • Open-AutoGLM适合新手吗?零基础部署实战入门必看
  • 新手也能懂的YOLOv13:官方镜像保姆级入门教程
  • 预告:九识智能CEO孔旗1月25日参加2026光谷AI产业发展峰会并发言
  • 极视角冲刺港股:9个月营收1.4亿亏3630万 陈振杰控制30%股权
  • 零基础也能用!YOLOv12官方镜像保姆级入门教程
  • 为什么国内公司都选 PostgreSQL,而不是 MySQL?
  • 2026 跨境电商指南:亚马逊与TikTok Shop的底层逻辑对比
  • YOLOv12官版镜像对比测试:比官方实现快多少?
  • 基于GPEN的智能相册修复系统设计思路
  • 参与GitHub社区共建,一起完善中文视觉词典
  • 批量翻译怎么搞?Hunyuan-MT-7B-WEBUI API调用技巧
  • FSMN-VAD工业质检应用:操作指令语音提取案例
  • SpringBoot+Vue 夕阳红公寓管理系统管理平台源码【适合毕设/课设/学习】Java+MySQL
  • 服务器断开连接还能运行?nohup命令的作用解析
  • 声纹识别EER指标解读:CAM++ 4.32%意味着什么
  • SpringBoot+Vue 在线家具商城设计与实现管理平台源码【适合毕设/课设/学习】Java+MySQL
  • Z-Image-Turbo多平台对比:本地VS云端部署成本实战评测
  • 惠普HP M128fn打印机驱动下载终极指南:告别安装失败,3步搞定适配难题
  • 实测分享:HeyGem批量处理模式效率提升3倍的秘密
  • SpringBoot+Vue 在线问卷调查系统平台完整项目源码+SQL脚本+接口文档【Java Web毕设】
  • MGeo模型如何实现高效匹配?深度剖析其在真实业务中的应用案例
  • JSM472 微功耗高灵敏度全极霍尔开关芯片
  • Speech Seaco Paraformer支持多语种吗?语言适配扩展前景分析
  • Speech Seaco Paraformer长文本拼接:超过5分钟音频分段处理方案
  • FSMN-VAD + Gradio:构建可视化语音检测系统的完整步骤