在TriCore架构芯片上移植 RT-Thread_在tricore上移植uc/os-程序员宅基地

技术标签: RT-Thread  嵌入式硬件  英飞凌-AURIX  单片机  

简介:

TriCore是德国英飞凌科技公司旗下的第一个为实时嵌入式系统而优化的统一的、32位的微控制器-DSP(Digital Signal Processing)处理器架构。TriCore的ISA(Instruction Set Architecture),即指令集体系结构,将微控制器的实时能力、DSP的计算能力以及RISC(Reduced Instruction Set Computing)负载 / 存储体系结构的高性能 / 价格特性,结合在了一个紧凑的可重编程核心中

为了支持RTOS(Real-Time Operation System)代码中断的软件发布,TriCore架构定义了特殊的四个没有连接到外设或芯片上的任何其他模块上的CPU服务请求节点,这些SRN的中断请求位只能由软件来设置。
TriCore 提供了一种硬件的上下文机制,这种机制是专为嵌入式实时操作系统设计的,他的目的就是为了能提高线程切换的效率。
套用Tricore架构手册的话:在Tricore架构中,RTOS层可以做的非常薄,硬件可以有效处理一个任务与另一个任务的大部分切换。
该架构在任务模型的使用中有相当大的灵活性,在相对少的架构约束下,系统设计人员可以选择最优秀的实时执行和软件设计方法以使用应用的需求

一些后面要用到的操作介绍

Tricore 1.6指令(RISC):
MFCR : Move From Condition Register
MTCR : Move To Condition Register
这两个指令用来存取核心寄存器, 也就是所谓CFSR:Configurable Fault Status Register

__disable(); 工具链直接提供的函数:关闭芯片全局中断 ICR.IE = 0;
IE 位是一个全局的中断使能位。进入中断时,IE 位由硬件自动置 0,当中断服务函数执行 rfe 指令(退出中断)后,IE 位自动恢复进中断前的值。另外, IE 位的值还可以被 enable; disable; mtcr; bisr; 等指令更新。
Tricore Architecture user Manual
__enable(); 打开芯片全局中断 ICR.IE = 1;

上下文简介

一个任务是一个独立的控制
线程,任务的状态由它的上下文决定,当任务被打断时,处理器使用该任务的上下文恢复被打断前的执行现场,并继续执行任务。
Tricore上下文类型:
Upper context: 由上部地址寄存器A[10] 到 A[15] 和上部数据寄存器D[8] 到 D[15]组成 .上层上下文还包括PCXI和PSW.这些寄存器被设计为非易失以供函数调用 (它们的内容在调用过程中保留).
Lower context: 包含上部地址寄存器A[2] 到 A[7] 和上部数据寄存器D[0] 到 D[7],A[11] (Return Address) and PCXI
上下文保存到内存时,会占用16word的空间,这被称为上下文保存区域(CSA)
在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42721886/article/details/126065402

智能推荐

pandas获得指定行_pandas实现选取特定索引的行-程序员宅基地

文章浏览阅读4k次。下面为大家分享一篇pandas实现选取特定索引的行,具有很好的参考价值,希望对大家有所帮助。一起过来看看吧如下所示:>>> import numpy as np>>> import pandas as pd>>> index=np.array([2,4,6,8,10])>>> data=np.array([3,5,7,9,11..._pandas 读取索引为某个值的行

修改C:\Users 下面文件夹的名称_如何修改电脑users文件下的文件名?-程序员宅基地

文章浏览阅读4.8k次。Windows默认时禁用管理员账户的,要先允许使用管理员Win+X快捷键打开计算机管理,选择本地用户和组,如下图,右键管理员,选择属性,将下图红色框标识的复选框勾选掉,允许使用管理员,然后确定。如果要更改一般用户账户的文件夹名称,登录管理员账户更改C:\Users 下面一般用户文件夹的名称,然后Win+R快捷键,输入regedit,回车,打开注册表。找到 计算机\HKEY_LOCAL_MAC..._如何修改电脑users文件下的文件名?

tcpip基础-程序员宅基地

文章浏览阅读83次。osi七层模型,tcp,udp_tcpip基础

14寸笔记本电脑_2020年笔记本电脑怎么选,从1000到20000,总有一款适合你-程序员宅基地

文章浏览阅读856次。为了适应快节奏的现代办公环境,笔记本电脑轻薄便携方便移动,自带电池随时随地办公的特性已经成了职场人士不可或缺的工具,更多的家庭用户和学生群体选购电脑优先考虑笔记本电脑。很多朋友在挑选笔记本电脑之初,对笔记本电脑的各硬件配置,笔记本电脑厂商品牌特点,笔记本电脑的各项功能并不了解,只能被动接受销售人员的推荐,从而购买了商家利润高却不符合用户实际需求的笔记本电脑。今天我就来给大家推荐十四款畅销的笔记本电..._两三千左右14寸的笔记本电脑推荐

VCC,VDD,VEE,VSS很头痛吧?这里秒懂!_vdd会受到vcc的影响吗-程序员宅基地

文章浏览阅读4.9k次,点赞2次,收藏8次。VCC,VDD,VEE,VSS很头痛吧?这里秒懂!10-28 17:21查看832回复4上尉shonway大酋长更多PCB专业知识,云盘分享☞☞☞ 【此链接会打开手机QQ】  一、解释  DCpower一般是指带实际电压的源,其他的都是标号(在有些仿真软件中默认的把标号和源相连的)VDD:电源电压(_vdd会受到vcc的影响吗

彻底理解hostname---四种方法修改hostname值-程序员宅基地

文章浏览阅读9.7w次,点赞14次,收藏80次。 当我觉得对Linux系统下修改hostname已经非常熟悉的时候,今天碰到了几个个问题,这几个问题给我好好上了一课,很多知识点,当你觉得你已经掌握的时候,其实你了解的还只是皮毛。技术活,切勿浅尝则止!-------------------------------------------------四种方法更改hostname------------------------------..._hostname

随便推点

minio服务器在win10的上传与下载,以及修改头像Minio速看免费本地文件服务器_minio/minio server /data --console-address ":9001"-程序员宅基地

文章浏览阅读1.2k次。Minio服务器,实现文件CRUD,上传下载,修改头像_minio/minio server /data --console-address ":9001" -address ":9002

怎么调整图片大小?这三种方法一定能帮到你_csdn博客图片调整大小-程序员宅基地

文章浏览阅读3.4k次。在我们平时使用图片的时候,一定都碰到图片的体积超过系统的限制的情况,尤其是在将图片上传到某些系统上的时候,这种情况尤为多见,既限制了图片的尺寸,又限制了图片的体积必须小于指定kb,这时候就需要通过工具来调整图片大小(https://www.yasuotu.com/size),使图片符合要求,下面给大家分享三种调整图片大小的方法,相信一定对大家有帮助。一、图片裁剪采用图片裁剪的方法之前,首先要看图片是否适合裁剪,要在保证图片主体画面不缺失的情况下进行图片裁剪可以降低图片的体积,以下是具体裁剪方法:1.打_csdn博客图片调整大小

puppet语法和命令详解_puppet 命令-程序员宅基地

文章浏览阅读6k次。puppet-intropuppet-intropuppet命令详解puppet语法manifest资源定义示例资源类型groupuserpackageservicefileexeccronnotify资源间的次序puppet variable数据类型正则表达式operatorsif语句case语句selector语句puppet中的类语法格式pup_puppet 命令

数字证书简介-程序员宅基地

文章浏览阅读8.8w次,点赞8次,收藏46次。数字证书,一种集合了多种加密方式的安全标准,数字证书通常由受到人们广泛信赖的组织向第三方颁发,表明这个第三方也是一个值得信赖的对象。_数字证书

while循环结构、do while循环_dowhile循环语句的四元式结构及其语法制导生成过程。-程序员宅基地

文章浏览阅读224次。while循环while循环是最基本的循环,他的结构为while (布尔值表达式){//循环内容}只要布尔值表达式为TRUE,循环就会一直执行下去 我们大多数的情况是会让循环停止下来,我们需要一个表达式失效的方式来让结束循环少部分情况需要让循环一直执行,比如服务器的请求响应监听等循环条件一直为TRUE就会造成无限循环(死循环),我们正常的业务编程中应该尽量避免死循环,会影响程序性能或者造成程序卡死崩溃!problem输出1~100:代码如下: public static v_dowhile循环语句的四元式结构及其语法制导生成过程。

SpringBoot中的bean加载顺序_using dependson at the class level has no effect u-程序员宅基地

文章浏览阅读186次。@DependsOn注解Beans on which the current bean depends. Any beans specified are guaranteed to be created by the container before this bean.Used infrequently in cases where a bean does not explicitly depend on another through properties or constructor argu_using dependson at the class level has no effect unless component-scanning

推荐文章

热门文章

相关标签