91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

TC3xx內(nèi)部模塊框圖和各種內(nèi)部總線及存儲器訪問方式

832065824 ? 來源:汽車電子嵌入式 ? 作者:汽車電子嵌入式 ? 2022-11-04 14:29 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前言

TriCore是英飛凌自主開發(fā)的私有內(nèi)核。早在2000年,英飛凌發(fā)布了第一代TriCore單片機產(chǎn)品。英飛凌為TriCore申請了注冊商標,在一個內(nèi)核架構(gòu)里集成了RISC精簡指令集單片機,MCU微控制器DSP數(shù)字信號處理的功能,是一款計算能力強大的32位實時單片機內(nèi)核架構(gòu)。TC3xx系列MCU是基于TC1.6P作為其內(nèi)核的。本系列文章將記錄Infineon芯片的學習筆記。本文首先介紹TC3xx的內(nèi)部模塊框圖和各種內(nèi)部總線以及存儲器訪問方式,接著介紹TC1.6.2的內(nèi)核架構(gòu),這其中主要介紹了尋址方式,通用寄存器,上下文管理,中斷機制,Trap機制,MPU機制等內(nèi)容。

c77e21ec-5bfc-11ed-a3b6-dac502259ad0.png

1.Architectural Overview

c797935c-5bfc-11ed-a3b6-dac502259ad0.png

圖1:TC3xx相比于TC2xx改進部分

如圖一所示,TC3xx內(nèi)部最多支持6個核,這些核間使用SRI總線進行通信,每個核都有自己的Memory。TC3xx在核架構(gòu)上相比于TC2xx做了如下改進:

1.1 Performanc

1)支持Tricore 1.6.2的內(nèi)核

2)增加了新的指令

3)最多支持6個核,最大主頻達到300MHz

4)每個CPU有自Local的Flash bank,也就是說有自己的Local的總線可以訪問自己Local的Flash bank,速度更快

5)

1.2 Memories

1)更大的SRAM

2)更強大的內(nèi)存保護單元MPU。數(shù)據(jù)和代碼保護的Register的設置更多。

1.3 ADC

1)TC2xx有隊列模式,自動掃描模式,背景掃描模式,TC3xx只有隊列掃描模式,更加的靈活。

1.4 Delta-Sigma

1.5 HSM

1)支持非對稱加密算法

1.6 Standby control unit

專門的低功耗管理單元

1.7 IO Pads

支持5/3.3v兩種硬件系統(tǒng)

1.8 Ethernet

1)支持千M以太網(wǎng),支持一部分TSN/AVB的功能

1.9 Safety

1.10 ADAS

增強的SPU

c7d1ca72-5bfc-11ed-a3b6-dac502259ad0.png

圖2:TC3xx系列資源概況

2.Memory Concept

2.1 Memory architecture

c8089f20-5bfc-11ed-a3b6-dac502259ad0.png

圖3:TC3xx內(nèi)存架構(gòu)

主要關(guān)注PFlash和LMU部分。

每個CPU都可以通過一個私有的LPB總線訪問各自3M的PFlash的bank,訪問速度比較快。外部有個LMU的Ram,分為兩種,一種叫dLMU,另一種叫LMU。每個cpu可以通過私有的總線訪問dLMU,對于LMU,CPU只能通過SRI總線來訪問,速度相對dLMU的訪問較慢。

c8388cb2-5bfc-11ed-a3b6-dac502259ad0.png

圖4:TC3xx內(nèi)存訪問速度

PSPR,DSPR,DLMU都是Local的SRAM,CPU訪問自己的Local Ram的熟讀非常的快,例如CPU讀寫local DSPR都是0等待時間的。CPU也能范圍其他核的Local Ram,但是讀/寫/取指的速度就會變慢。

c87f0ade-5bfc-11ed-a3b6-dac502259ad0.png

圖5:內(nèi)存范圍起始地址

對于同一款內(nèi)存可以使用cache的訪問方式或者非cache的訪問方式。例如對于PFLASH的訪問如果使用cache則起始地址是0x80000000,非cache的訪問方式的起始地址是0xA0000000。同樣,LMU也存在0x90000000/0xB00000000兩個起始地址。

對于每個CPU內(nèi)部的PSPR和DSPR都不需要使用cache,CPU等待時間是0ws。

每個CPU都有3M的local PFLASH的bank,CPU通過LPB總線訪問PFLASH。這個LPB總線在使能了AB SWAP之后就會被disable掉,這么做的原因是為了讓code運行在A Bank還是B Bank的performence都是一樣的(是能ab swap和disable lpb總線的操作在UCB的一塊區(qū)域操作)。

2.2 Memory and connectivity

c89ddafe-5bfc-11ed-a3b6-dac502259ad0.png

圖6:CPU內(nèi)部總線連接圖

CPU通過SRI Master Interface連接到其他core的SRI Slave Interface來范圍其他核的memory。

2.3 Memory map

c8c4bb9c-5bfc-11ed-a3b6-dac502259ad0.png

c980d71e-5bfc-11ed-a3b6-dac502259ad0.png

c9b24696-5bfc-11ed-a3b6-dac502259ad0.png

圖7:內(nèi)存映射圖

3.On-chip Bus Connectivity

ca229662-5bfc-11ed-a3b6-dac502259ad0.png

圖8:SRI總線

Tricore里面,內(nèi)核之間的相互訪問和通信都是通過SRI總線進行的。Tricore 1.6.2里面SRI總線有3個Domain,Domain 1包括CPU0-3,通過SRI0進行相互訪問。其他類似。SRI直接通過S2S Bridge連接。

ca521428-5bfc-11ed-a3b6-dac502259ad0.png

圖9:SRI總線連接圖

ca709e16-5bfc-11ed-a3b6-dac502259ad0.png

圖10:SRI總線間最差延遲時間

ca9cfbbe-5bfc-11ed-a3b6-dac502259ad0.png

圖11:TC39x內(nèi)部SRI總線連接圖

每個SRI總線都有一個SRI Master Interface和一個SRI Slave Interface,對于一個SRI總線的SRI Slave Interface就存在同一時間多個SRI Master Interface訪問的問題,那么就需要SRI具有仲裁的功能。

4.TC1.6.2 Architecture

4.1 TriCore concept

cacc021a-5bfc-11ed-a3b6-dac502259ad0.png

圖12:TriCore定義

TriCore的含義:既有RISC精簡指令集的特性,也集成了DSP數(shù)字信號處理器的性能,同時也可以實現(xiàn)實時控制。

cb520ab8-5bfc-11ed-a3b6-dac502259ad0.png

圖13:英飛凌TriCore的發(fā)展圖

4.2 Address range

cb810cfa-5bfc-11ed-a3b6-dac502259ad0.png

圖14:TriCore的尋址空間

4G的尋址空間,16個Segment,小端系統(tǒng)。

4.3 Pipeline

cbea91ca-5bfc-11ed-a3b6-dac502259ad0.png

圖15:Pipline

整型的Pipline主要組數(shù)據(jù)的運算,類似數(shù)據(jù)的加減乘除。Load/Store Pipline主要用來做數(shù)據(jù)的讀取和存儲,Loop Pipline主要做數(shù)據(jù)的循環(huán)處理。三個Pipline可以并行處理。

4.4 Instructions

cc566f26-5bfc-11ed-a3b6-dac502259ad0.png

ccbecf94-5bfc-11ed-a3b6-dac502259ad0.png

圖16:指令

支持16位和32位指令格式,op1的bit 0為1則是32位指令,op1的bit 0為0則是16位指令。

支持位操作

支持MAC乘加指令,除法指令,單周期多數(shù)據(jù)處理指令SIMD。

4.5 Data Types

ccf75af8-5bfc-11ed-a3b6-dac502259ad0.png

圖17:支持的數(shù)據(jù)類型

支持大部分數(shù)據(jù)類型。

4.6 Addressing Modes

cd265740-5bfc-11ed-a3b6-dac502259ad0.png

圖18:尋址方式

支持絕對地址尋址,相對地址尋址,先加減后運算尋址,先運算后加減尋址。

4.7 Core Registers

cd54f5f0-5bfc-11ed-a3b6-dac502259ad0.png

cd74d0f0-5bfc-11ed-a3b6-dac502259ad0.png

圖19:核寄存器

通用寄存器:和ARM核(r0 - r15)不一樣,數(shù)據(jù)寄存器和地址寄存器分開。數(shù)據(jù)運算和地址運算不沖突,這樣可以提高尋址和數(shù)據(jù)處理的效率。

系統(tǒng)寄存器:PC指針,程序狀態(tài)字寄存器,系統(tǒng)控制寄存器(比如設置系統(tǒng)在Run/Halt/Sleep狀態(tài))

上下文寄存器:

中斷和陷阱控制寄存器:ICR寄存器可以控制全局中斷的開關(guān)。BIV是中斷向量表的起始地址,BTV是陷阱向量表的起始地址。

內(nèi)存保護寄存器:

棧中斷寄存器:通用寄存器里面的A10是user stack pointer,而ISP是interrupt stack pointer,通過PSW寄存器可以設置是否使用ISP,如果使用了ISP的話,通常情況下系統(tǒng)使用A10作為棧指針,一旦產(chǎn)生中斷后系統(tǒng)把ISP指向的地址賦值給A10,也就是中斷使用另一塊內(nèi)存作為??臻g。

訪問核寄存器只能只用專用的MTCR,MFCR指令。

A11類似ARM核里面的LR寄存器。

所謂Global Address也就是進入中斷或者進行函數(shù)調(diào)用的時候是不存這些內(nèi)容的。

數(shù)據(jù)和地址寄存器可以兩個合起來作為一個64位的寄存器(P0/D0)。

4.8 Context Management

cd9f54a6-5bfc-11ed-a3b6-dac502259ad0.png

圖20:上下文管理

cdd01c3a-5bfc-11ed-a3b6-dac502259ad0.png

圖21:上下文存儲區(qū)域

TriCore的上下文處理比較特殊。對于通用MCU(ARM 核)在進入中斷或者函數(shù)調(diào)用時候的上下文內(nèi)容一般存放在棧里面的,但是TriCore的上下文存放在一個叫CSA的區(qū)域的。Upper Context 的內(nèi)容由硬件自動處理,而Lower Context的內(nèi)容需要一些特殊的指令操作。

ce0d2526-5bfc-11ed-a3b6-dac502259ad0.png

圖21:上下文事件和指令

對于絕大部分簡單的ISR, Trap, 函數(shù)調(diào)用都比較簡單的話只要保存Upper context就足夠了,也就不會產(chǎn)生后面的BISR,SVLCX,STLCX,STUCX指令。

ce3efe52-5bfc-11ed-a3b6-dac502259ad0.png

圖22:CSA存放地址

CSA可以存放在DSPR(一般存放在這里),DLMU,External Memory里面,通過修改連接ld文件來配置。

FCX: 指向空閑的CSA的起始地址。

PCX: 指向已經(jīng)使用的CSA的地址。

LCX: 指向空閑CSA的結(jié)束地址。

4.8 Interrupt System

ce694518-5bfc-11ed-a3b6-dac502259ad0.png

ce8fdad4-5bfc-11ed-a3b6-dac502259ad0.png

cec9de78-5bfc-11ed-a3b6-dac502259ad0.png

圖23:中斷系統(tǒng)

TriCore 1.6.2中最多有7個中斷服務提供對象,分別是CPU0-5以及DMA。每一個Service Provider對應一個中斷控制單元ICU,中斷服務請求節(jié)點SRN最多有1024個,8個GPSR可以用作軟中斷做來核間通信。

cef89a7e-5bfc-11ed-a3b6-dac502259ad0.png

圖24:中斷仲裁

ICU能夠仲裁處理多個SRN同時的請求。

cf1d5396-5bfc-11ed-a3b6-dac502259ad0.png

圖25:中斷保護

中斷寄存器也有保護機制,SRC有ECC的保護措施,在寫完SRC寄存器后會自動生產(chǎn)一個ECC的Code,然后這個SRC的內(nèi)容在被讀取的時候就會做ECC的check。

SRC寄存器的權(quán)限也可以設置。比如,每個Bus Master總線都會有一個TAG-ID,我們可以設置SRC寄存器可以被哪些TAG-ID表示的總線訪問。

cf442fca-5bfc-11ed-a3b6-dac502259ad0.png

圖26:服務請求控制寄存器SRC

cf6304a4-5bfc-11ed-a3b6-dac502259ad0.png

圖27:中斷控制寄存器ICR和中斷向量表地址寄存器BIV

VSS寄存器設置中斷向量表是8字節(jié)對齊還是32字節(jié)對齊。

cf8ed8b8-5bfc-11ed-a3b6-dac502259ad0.png

圖28:中斷向量表

在TricCore里面,中斷向量表不是固定的,是跟著中斷優(yōu)先級走的,也就是整個中斷向量表內(nèi)中斷服務的排序是會跟著中斷優(yōu)先級的變化而變化的(和其他內(nèi)核不一樣)。

d02a596e-5bfc-11ed-a3b6-dac502259ad0.png

圖29:中斷處理過程

4.9 DMA service requests

d0c8261c-5bfc-11ed-a3b6-dac502259ad0.png

圖30:DMA服務請求

SRN目標也可以選擇DMA的,選擇DMA的時候,TOS要設置成1。中斷優(yōu)先級要設置成和DMA的通道號一樣,也就是中斷優(yōu)先級在選擇DMA的時候就是DMA的通道號,這個很關(guān)鍵。

4.10 Traps

d0fab8fc-5bfc-11ed-a3b6-dac502259ad0.png

圖31:Trap

Trap的概念就類似ARM里面的Exception vector異常向量。Trap也有自己的Trap向量表,Trap是為了檢查一些非法的訪問,例如NMI中斷,內(nèi)存保護。Trap有自己的類型TCN和ID TIN。

d151b0bc-5bfc-11ed-a3b6-dac502259ad0.png

圖32:Trap類型

Trap類型一般有兩種劃分方式,同步或者異步,硬件或者軟件。

同步Trap:CPU在執(zhí)行的過程中發(fā)生的Trap,比如說中斷溢出,取值錯誤,內(nèi)存非法訪問等。Trap發(fā)生的時候,CPU會把Trap發(fā)生的指令的下一條指令作為返回地址保存到A11寄存器當中,所以在Trap的handler里面可以讀取A11來定位Trap發(fā)生的位置。

異步Trap:和中斷類似,一般由外設或一些協(xié)處理器的錯誤造成的。比如說FPU上發(fā)生的一些Trap。異步Trap發(fā)生的時候,A11中的內(nèi)容不具備參考意義的。

硬件Trap:比如說CPU執(zhí)行的指令是非法的,內(nèi)存保護錯誤等。

軟件Trap:軟件調(diào)用了一些系統(tǒng)調(diào)用指令,比如assert。

d1f8ee90-5bfc-11ed-a3b6-dac502259ad0.png

d257cd98-5bfc-11ed-a3b6-dac502259ad0.png

圖33:具體的Trap

d291b6e8-5bfc-11ed-a3b6-dac502259ad0.png

圖34:Trap處理過程

關(guān)鍵點,D15保存了Trap的ID號,可以在handler中讀取D15獲取Trap ID。

d2d81b2e-5bfc-11ed-a3b6-dac502259ad0.png

圖35:Trap保護機制

4.11 Permission Privilege Levels

d3019e9a-5bfc-11ed-a3b6-dac502259ad0.png

圖36:權(quán)限設置

d32c1c24-5bfc-11ed-a3b6-dac502259ad0.png

d358e4d4-5bfc-11ed-a3b6-dac502259ad0.png

d3874a86-5bfc-11ed-a3b6-dac502259ad0.png

圖37:不同模式下的訪問權(quán)限

User0模式允許訪問外設寄存器,不允許訪問內(nèi)核寄存器,也不允許訪問中斷系統(tǒng)寄存器。

User1模式可以訪問中斷系統(tǒng)寄存器。

Supervisor模式可以訪問核寄存器。

4.12 Memory protection

d3a7324c-5bfc-11ed-a3b6-dac502259ad0.png

d3d632cc-5bfc-11ed-a3b6-dac502259ad0.png

圖38:內(nèi)存保護

實際上就是6組MPU保護,6*18的數(shù)據(jù)保護,6*10的代碼保護。

Bus MPU: 可以設置哪些Master Interface可以訪問Local SRAM

d402f122-5bfc-11ed-a3b6-dac502259ad0.png

d42c199e-5bfc-11ed-a3b6-dac502259ad0.png

圖38:增強的內(nèi)存保護

4.13 Temporal Task Protection

實時操作系統(tǒng)對于內(nèi)存訪問錯誤可以通過MPU內(nèi)存保護來識別和定位問題,但是對于任務超時該怎么來監(jiān)控了?-- TriCore提供了時間任務保護機制來實現(xiàn)任務超時監(jiān)控。

d4537318-5bfc-11ed-a3b6-dac502259ad0.png

d4ed8c64-5bfc-11ed-a3b6-dac502259ad0.png

d5099ddc-5bfc-11ed-a3b6-dac502259ad0.png

圖39:時間任務保護

5.Summary

d5a32eac-5bfc-11ed-a3b6-dac502259ad0.png

d5d39be6-5bfc-11ed-a3b6-dac502259ad0.png

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 英飛凌
    +關(guān)注

    關(guān)注

    68

    文章

    2521

    瀏覽量

    142967
  • 存儲器
    +關(guān)注

    關(guān)注

    39

    文章

    7739

    瀏覽量

    171779
  • 總線
    +關(guān)注

    關(guān)注

    10

    文章

    3043

    瀏覽量

    91698

原文標題:學習筆記 | Aurix TC3xx Architecture

文章出處:【微信號:汽車電子嵌入式,微信公眾號:汽車電子嵌入式】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    CW32F030 RAM存儲器的介紹

    時鐘頻率進行訪問 ?支持奇偶校驗功能 3 RAM 存儲器操作 用戶可執(zhí)行的 RAM 存儲器操作包括:讀操作、寫操作。 對 RAM 的讀寫操作支持 8bit、16bit 和
    發(fā)表于 01-12 06:33

    請問單片機程序存儲器64KB是外擴的還是外擴加內(nèi)部的呢?

    單片機程序存儲器64KB是外擴的還是外擴加內(nèi)部的呢?
    發(fā)表于 01-06 08:24

    AURIX? TC3xx 電機控制電源板:設計解析與特性洞察

    AURIX? TC3xx 電機控制電源板:設計解析與特性洞察 一、引言 作為一名電子工程師,在電機控制領(lǐng)域不斷探索新的解決方案是我們的日常工作。今天要給大家介紹的 AURIX? TC3xx 電機控制
    的頭像 發(fā)表于 12-21 15:50 ?598次閱讀

    英飛凌AURIX? TC3xx安全應用套件快速上手

    英飛凌AURIX? TC3xx安全應用套件快速上手 在電子工程師的日常工作中,快速且有效地掌握新的硬件套件是一項必備技能。今天,我們就來探討一下英飛凌AURIX? TC3xx安全應用套件的快速啟動
    的頭像 發(fā)表于 12-19 14:30 ?566次閱讀

    請問如何利用CW32L083系列微控制內(nèi)部Flash存儲器進行程序升級和數(shù)據(jù)存儲?

    如何利用CW32L083系列微控制內(nèi)部Flash存儲器進行程序升級和數(shù)據(jù)存儲?
    發(fā)表于 12-15 07:39

    芯源的片上存儲器介紹

    片上FLASH 閃存由兩部分物理區(qū)域組成:主FLASH 存儲器和啟動程序存儲器。 ●● 主 FLASH 存儲器,共 64KB,地址空間為 0x0000 0000 - 0x0000 FFFF。該區(qū)
    發(fā)表于 11-12 07:34

    Everspin存儲器8位并行總線MRAM概述

    在需要高速數(shù)據(jù)寫入與極致可靠性的工業(yè)與數(shù)據(jù)中心應用中,Everspin推出的8位位并行接口MRAM樹立了性能與耐用性的新標桿。這款Everspin存儲器MRAM與SRAM引腳兼容的存儲器,以高達35
    的頭像 發(fā)表于 10-24 16:36 ?697次閱讀

    請問如何僅使用軟件和 TC375 精簡板來測量函數(shù)調(diào)用的堆棧使用情況?

    我想測量 AURIX TriCore? TC3xx 項目的函數(shù)調(diào)用的堆棧使用情況。 我不知道該怎么做。 我知道事實上作為硬件我只有一個 TC375 lite 開發(fā)板,沒有 BlueBox 或任何
    發(fā)表于 08-08 07:28

    TC3XX 的端口可以同時被 EvADC 和 DSADC 用于 ADC 轉(zhuǎn)換嗎?

    1、TC3XX 的端口可以同時被 EvADC 和 DSADC 用于 ADC 轉(zhuǎn)換嗎? 例如,TC36X系列的AN1引腳 2、同時重新分配同一個引腳,是否會影響EVAADC和DSADC的轉(zhuǎn)換結(jié)果的精度和速度?
    發(fā)表于 08-07 08:19

    兩片TC3XX芯片之間的時鐘同步可以實現(xiàn)嗎?

    實現(xiàn)兩片TC3XX芯片之間的時鐘同步,希望兩片芯片的PWM輸出能夠同步。類似功能的芯片能實現(xiàn)上述操作嗎?期待你的答復。非常感謝!!!
    發(fā)表于 08-04 07:51

    TC3XX /TC1.6.2OCDS如何通過軟件啟用核心調(diào)試控制

    如何通過軟件啟用核心調(diào)試控制?也就是說可以通過軟件讀取DBGSR.DE =1。參考TriCore? TM TC1.6.2 核心架構(gòu)手冊第 1 卷。
    發(fā)表于 07-30 06:27

    CYPD3177-24LQXQT是否實現(xiàn)內(nèi)部存儲器?

    CYPD3177-24LQXQT 是否實現(xiàn)內(nèi)部存儲器?(例如 內(nèi)存)? BCR 數(shù)據(jù)表中似乎沒有提及這一點。
    發(fā)表于 05-07 07:23

    請問tc3xx如何配置多個dedicatedRxBuffersNumber?

    tc3xx如何配置多個dedicatedRxBuffersNumber?
    發(fā)表于 04-21 07:53

    瑞薩RA系列MCU FSP庫開發(fā)實戰(zhàn)指南(09)存儲器映射

    3.3 存儲器映射 前文所述,寄存與RAM、FLASH一樣都是芯片內(nèi)部的一種存儲設備。那么,當我們需要訪問它們的時候,我們需要知道它們的
    的頭像 發(fā)表于 04-16 15:52 ?1620次閱讀
    瑞薩RA系列MCU FSP庫開發(fā)實戰(zhàn)指南(09)<b class='flag-5'>存儲器</b>映射

    NXP MCU RT1166如何使用JTAG/SWD工具將數(shù)據(jù)存儲內(nèi)部閃存中?

    我需要使用 JTAG 將數(shù)據(jù)存儲內(nèi)部閃存中。我能夠使用 JTAG/SWD 工具 ARM J-Link 將它們存儲在 FlexSPI1 連接的外部閃存上,并且可以通過地址0x30000000
    發(fā)表于 04-01 06:54