news 2026/5/1 9:38:57

TC397 AUTOSAR EB MCAL STM 配置与ADS测试

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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();}}}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 6:25:04

企业AI Agent的容器化微服务部署策略

企业AI Agent的容器化微服务部署策略关键词&#xff1a;企业AI Agent、容器化、微服务、部署策略、云计算摘要&#xff1a;本文聚焦于企业AI Agent的容器化微服务部署策略。随着人工智能在企业中的广泛应用&#xff0c;AI Agent的高效部署与管理成为关键问题。容器化和微服务技…

作者头像 李华
网站建设 2026/5/1 6:25:31

为什么国内公司都选 PostgreSQL,而不是 MySQL?

沉默是金&#xff0c;总会发光大家好&#xff0c;我是沉默在信创推进、数据库自主可控的大背景下&#xff0c;一个现象越来越明显&#xff1a;国产数据库的“技术母本”&#xff0c;正在从 MySQL&#xff0c;全面转向 PostgreSQL。你会发现&#xff1a;腾讯云 TDSQL PG&#xf…

作者头像 李华
网站建设 2026/5/1 6:27:03

批量翻译怎么搞?Hunyuan-MT-7B-WEBUI API调用技巧

批量翻译怎么搞&#xff1f;Hunyuan-MT-7B-WEBUI API调用技巧 你有没有遇到过这样的场景&#xff1a;项目要出海&#xff0c;上千条产品描述急需翻译成西班牙语、法语、阿拉伯语&#xff1b;或者教育平台要上线少数民族语言课程&#xff0c;需要把汉语教材批量转为藏语、维吾尔…

作者头像 李华
网站建设 2026/5/1 9:23:29

FSMN-VAD模型替换?自定义训练模型接入指南

FSMN-VAD模型替换&#xff1f;自定义训练模型接入指南 1. FSMN语音端点检测的离线部署与扩展 你是否正在寻找一个稳定、高效的离线语音端点检测&#xff08;VAD&#xff09;方案&#xff0c;既能快速部署又能灵活替换模型&#xff1f;本文将带你从零开始搭建基于 FSMN-VAD 的…

作者头像 李华
网站建设 2026/5/1 6:27:22

PyTorch-2.x镜像实战:构建端到端模型训练流水线

PyTorch-2.x镜像实战&#xff1a;构建端到端模型训练流水线 你是否还在为每次搭建深度学习环境而反复安装依赖、配置CUDA版本、调试Jupyter内核而头疼&#xff1f;有没有一种方式&#xff0c;能让你一启动就进入“写代码模式”&#xff0c;而不是“修环境模式”&#xff1f; …

作者头像 李华
网站建设 2026/5/1 6:25:08

企业级部署考量:unet模型并发处理能力压力测试

企业级部署考量&#xff1a;unet模型并发处理能力压力测试 1. 背景与目标 在当前AI图像处理应用快速落地的背景下&#xff0c;UNet架构因其出色的语义分割和细节保留能力&#xff0c;被广泛应用于人像风格化任务。本文聚焦于一个基于UNet结构构建的人像卡通化系统——unet pe…

作者头像 李华