AUTOSAR Davinci Idle task 与 Init Task的配置

news2025/4/6 9:54:28

最近在用Davinci配置Idle task和Init Task的时候遇到了一些问题,配置OS的时候,软件会自动为每个Application生成一个Idle task和Init Task:
在这里插入图片描述
先来看Idle Task,自动生成的Idle task的优先级是0xFFFFFFFF,官方给出的解释如下:
在这里插入图片描述
我本来准备把自己想要放在Background运行的runnable直接放在自动生成的这个Idle Task里的,但是mapping上之后,生成代码时候提示Background类型的runnable必须mapping到优先级最低的task上,当前mapping的task不是优先级最低的task。自动生成的这个Idle Task的优先级又不允许修改,所以最终是新建了一个UserIdleTask,把自己的runnable mapping上去才OK。

Init Task遇到的问题是,软件自动生成的Init Task是AutoStart的,StartOS之后自动运行,在Init Task中调用EcuM_StartupTwo()。我把自己创建的模块的Init函数mapping到自动生成的Init task后,生成RTE的时候提示这个Init task被mapping了runnable,所以它的启动和停止需要由RTE来统一管理(在Rte_Start函数中激活task),因此不能再配置为AutoStart,但是,矛盾点来了,Rte_Start()函数是在EcuM_StartupTwo()中调用的,这个Init task不能自启动的话,EcuM_StartupTwo()就不能被调用,Rte_Start()也不能被调用,也就没法激活这个Task,形成了一个圈,导致Init task不能被运行。

解决方法也是另外创建一个Init Task,原来的Init task逻辑和配置保持不变,把自己的Init函数放在新创建的Init task中。

顺便简单理一下Davinci代码ECU启动时序:

main -> EcuM_Init -> EcuM_AL_DriverInitZero -> EcuM_DriverInitOne -> EcuM_StartOS ->
OsTask_Init_Core0 -> EcuM_StartupTwo -> BswM_Init -> Rte_Start 然后启动任务调度。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/976154.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Library ‘libs‘ required for module ‘xxx‘ is missing from the artifact

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl 错误概述 项目报错:Library ‘libs’ required for module ‘xxx’ is missing from the artifact;图示如下: 解决方案 点击减号删除当…

Stack-queue

文章目录 stack适配器关于为什么不直接在成员函数里调用push_back... stack 适配器 stack和queue使用了container适配器,因为它觉得我不需要自己实现一个容器来实现而直接用现成的 stack和queue并没有迭代器,因为本来就是后进先出,先进先出&…

无涯教程-JavaScript - DATE函数

描述 DATE函数返回特定日期的序列号。 语法 DATE (year, month, day)争论 Argument描述Required/Optionalyear year参数的值可以包含1-4位数字。 Excel会根据计算机使用的日期系统解释年份参数。 默认情况下,Microsoft Excel for Windows使用1900日期系统。 请参阅下面的注…

9.4 数据库 TCP

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);//判断数据库对象是否包含了自己使用的数据库if(!db.contains("Stu.db")){//不存在数据库&#xff0…

对可再生能源和微电网集成研究的新控制技术和保护算法进行基线和测试及静态、时域和频率分析研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

vue2 封装通用表格数据筛选的重置摁钮

放弃冗余代码吧,封装个混入 封装逻辑 // 重置表格筛选参数 export const queryReset {methods: {queryReset(form, method "getData", fn) {if (!this[form]) {form "queryForm";}this.$data[form] this.$options.data()[form];this[form…

2023开学礼《乡村振兴战略下传统村落文化旅游设计》许少辉八一新书对外经济贸易大学图书馆

2023开学礼《乡村振兴战略下传统村落文化旅游设计》许少辉八一新书对外经济贸易大学图书馆

2023最新UI工作室官网个人主页源码/背景音乐/随机壁纸/一言

2023最新UI工作室官网个人主页源码/支持背景音乐/随机壁纸/一言 功能介绍: 载入动画 站点简介 Hitokoto 一言 日期及时间 实时天气 时光进度条 音乐播放器 移动端适配 打开文件;index.html和setting.json修改替换你的相关信息&a…

Windows下安装配置Nginx

nginx安装 官网下载地址 https://nginx.org/en/download.html 推荐使用稳定版本 截止时间2023年9月5日稳定版本为 1.24.0 百度网盘 链接:https://pan.baidu.com/s/1cXm-jN2fMzKdVMRhbG72Fg 提取码:9hcq 下载完成以后,得到nginx压缩包; 双击启动nginx.…

2023年模拟IC就业形式怎么样? 还能不能入了?(附最新薪资行情)

虽然说模拟IC的门槛高,难度大,但相比数字IC的话竞争要小一点。而且薪资也比数字IC要高一些。 想要学好模拟芯片设计,首先要懂电路,懂器件,你要理解你的器件是怎么工作的,它在芯片上是什么样子,…

如何使用代理配置快速定位接口测试脚本问题?

在调试接口用例过程中,如果响应结果和预期结果不一致,则需要检查请求信息。通过代理获取自动化测试中的请求响应信息,对比与正常请求响应的区别,就能够更直观的排查请求错误,相当于编写代码时的 debug 功能。 实战练习…

华为数通安全产品介绍

HiSecEngine USG12000系列防火墙(以下简称USG12000系列)是华为公司推出的首款T级AI防火墙,在网络边界实时防护已知与未知威胁,通常部署在云计算数据中心,大型企业及园区网出口,为数据中心、企业及园区网络提…

[MySQL]查看数据库大小

查看库大小 例如:查看当前MySQL中数据总量超过2GB的库: select table_schema as 数据库,table_rows as 记录数,data_size as 数据容量(GB),index_size as 索引容量(MB) from (selecttable_schema,sum(table_rows) as table_rows,sum(truncate(data_leng…

1794086 -F110 清算日期与付款时的付款日期不同

确实没有想到设置的地方在这里。 症状 用户在事务 F110 中执行付款,且清算日期字段 (BSEG-AUGDT) 未设置为付款日期。 重现问题 执行事务 F110 并执行自动付款。完成后,检查凭证中的“清算日期”字段。该日期与付款日期不同。 例如,您具…

jQuery 层次选择器

jQuery 层次选择器 (0)测试前的准备工作 A. 定义测试对象 B. 定义测试对象的 CSS 样式 C. 再定义一些测试用的 button。 (1)所有后代选择器(A B) 所有后代,包括其直接后代及间接后代。 (2)直…

统计学极简入门-统计学简介

1.统计学简介 听说你已经被统计学劝退,被Python唬住……先别着急划走,看完这篇再说! 先说结论,大多数情况下的学不会都不是知识本身难,而是被知识的传播者劝退的。 比如大佬们授课,虽逻辑严谨、思维缜密…

并行计算之OpenMP简介

OpenMP环境安装 基于ubuntu20.04 sudo apt-get update sudo apt-get install libomp-devOpenMP概述 面向多线程并行编码的编译指导语句,如 #pragma omp parallel#pragma omp for#pragma omp sections包含相应的函数接口库和runtime(运行时系统) omp_get_thread_n…

21.SPI万能驱动

spi万能驱动:spidev.c文件 存放在内核/drivers/spi/spidev.c文件。 内核开放的通用版本的spi驱动。 内核集成spidev驱动模块,开机后会中的加载此模块。 支持修改多种spi通信参数。 两个数据类型 spidev_data结构体 fops中的函数结构都要用到&#xff…

C/C++ CMake编译工具轻度使用

目录 CMake编译工具 一、CMake概述 二、CMake的使用 2.1 注释 2.1.1 注释行 2.1.2 注释块 2.2 源文件 2.1.1 共处一室 2.1.2 VIP包房 2.3 私人定制 2.2.1 定义变量 2.2.2 指定使用的C标准 2.2.3 指定输出的路径 2.4 搜索文件 2.3.1 方式1 2.3.2 方式2 2.5 包含…

WebGL射击游戏的优化

myshmup.com 允许在浏览器中创建 shmup(射击)游戏,我们可以使用具有创意通用许可证的资源或上传自己的艺术作品和声音。 创建的游戏可以在网站上发布。 该平台不需要编码,游戏对象的配置是在用户界面的帮助下执行的,后端是使用Django框架开发的,编辑器 UI 用 Javascript …