news 2026/6/10 16:30:05

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/6/10 1:11:15

多个场景实测:fft npainting lama修复效果全面评估

多个场景实测&#xff1a;fft npainting lama修复效果全面评估 1. 引言&#xff1a;图像修复技术的实用价值 在日常工作中&#xff0c;我们经常需要处理各种带有瑕疵、水印或多余元素的图片。传统修图方式依赖Photoshop等专业工具和人工操作&#xff0c;不仅耗时费力&#xf…

作者头像 李华
网站建设 2026/6/7 7:01:47

279模式狂潮:揭开数字背后的增长真相与生命周期密码

在私域流量的竞技场上&#xff0c;279模式如同一颗突然升起的“人造太阳”&#xff0c;用“2人回本、7人成团、永久分红”的诱人承诺&#xff0c;照亮了许多企业增长的道路。然而&#xff0c;当最初的兴奋褪去&#xff0c;越来越多企业发现&#xff1a;这束光似乎有“保质期”。…

作者头像 李华
网站建设 2026/6/1 2:28:44

YOLO11部署教程:基于Jupyter的可视化开发全流程

YOLO11部署教程&#xff1a;基于Jupyter的可视化开发全流程 YOLO11是Ultralytics公司推出的最新一代目标检测算法&#xff0c;延续了YOLO系列“又快又准”的核心优势。相比前代版本&#xff0c;它在模型结构、训练效率和推理速度上都有显著提升&#xff0c;尤其适合需要高实时…

作者头像 李华
网站建设 2026/6/10 12:34:03

YOLOv9官方镜像在边缘设备上的运行实测

YOLOv9官方镜像在边缘设备上的运行实测 你有没有这样的经历&#xff1a;好不容易调好一个目标检测模型&#xff0c;换到另一台设备上却因为CUDA版本不匹配、依赖缺失或环境冲突而跑不起来&#xff1f;尤其是在边缘计算场景中&#xff0c;部署环节往往比训练更让人头疼。 今天…

作者头像 李华
网站建设 2026/6/10 12:44:50

移动端适配进展曝光,平板也能用了?

移动端适配进展曝光&#xff0c;平板也能用了&#xff1f; 最近&#xff0c;基于阿里达摩院 ModelScope 平台的 unet person image cartoon compound人像卡通化 模型应用迎来了一项重要更新——开发者“科哥”在其构建的 WebUI 镜像中透露&#xff1a;移动端适配已取得关键进展…

作者头像 李华