news 2026/4/23 2:27:26

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/4/18 8:26:01

Qwen-Image-2512和Stable Diffusion对比,谁更适合中文

Qwen-Image-2512和Stable Diffusion对比&#xff0c;谁更适合中文 1. 引言&#xff1a;中文生成的长期痛点&#xff0c;终于有解了 你有没有试过用Stable Diffusion写一句“春风又绿江南岸”&#xff0c;结果图里冒出一堆乱码、拼音、或者干脆是英文单词拼凑的假汉字&#xff1…

作者头像 李华
网站建设 2026/4/17 22:20:57

Open-AutoGLM适合新手吗?零基础部署实战入门必看

Open-AutoGLM适合新手吗&#xff1f;零基础部署实战入门必看 Open-AutoGLM – 智谱开源的手机端AI Agent框架&#xff0c;正悄然改变我们与移动设备的交互方式。它不是简单的自动化脚本工具&#xff0c;而是一个真正能“看懂屏幕、听懂指令、自动操作”的智能体。对于刚接触AI…

作者头像 李华
网站建设 2026/4/15 15:01:39

从0到1体验CAM++:中文语音比对系统的快速上手机械化流程

从0到1体验CAM&#xff1a;中文语音比对系统的快速上手机械化流程 你有没有试过&#xff0c;想确认一段录音是不是某个人说的&#xff0c;却只能靠耳朵反复听&#xff1f; 声音相似、语调接近&#xff0c;但总觉得哪里不对劲——可又说不出个所以然。 现在&#xff0c;有个工…

作者头像 李华
网站建设 2026/4/19 19:04:22

新手也能懂的YOLOv13:官方镜像保姆级入门教程

新手也能懂的YOLOv13&#xff1a;官方镜像保姆级入门教程 你是不是也曾经被目标检测模型复杂的环境配置劝退&#xff1f;下载依赖、编译源码、调试报错……光是准备阶段就能耗掉一整天。今天&#xff0c;我们来彻底告别这些烦恼。 现在有一款 YOLOv13 官版镜像&#xff0c;已…

作者头像 李华
网站建设 2026/4/3 5:49:46

Z-Image-ComfyUI一键启动脚本使用说明,超简单

Z-Image-ComfyUI一键启动脚本使用说明&#xff0c;超简单 1. 快速上手&#xff1a;三步完成图像生成部署 你是不是也经历过这样的困扰&#xff1a;想用最新的文生图模型生成一张高质量图片&#xff0c;结果光是环境配置就花了半天时间&#xff1f;依赖冲突、版本不兼容、路径…

作者头像 李华
网站建设 2026/4/22 10:07:27

GPEN实战案例:电商平台商品图片质量统一增强系统

GPEN实战案例&#xff1a;电商平台商品图片质量统一增强系统 1. 引言&#xff1a;为什么电商需要图片质量增强&#xff1f; 在电商平台运营中&#xff0c;商品图片的质量直接影响用户的购买决策。然而&#xff0c;现实情况是&#xff1a;不同供应商提供的产品图质量参差不齐—…

作者头像 李华