色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

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

3天內不再提示

TC3xx芯片的Trap詳解(二)之TC3xx芯片的產生

832065824 ? 來源:汽車電子嵌入式 ? 2023-10-27 11:36 ? 次閱讀

前言

前面的文章<>介紹了Trap的類型以及Trap產生后如何定位Trap位置和原因,但是對于Trap的產生只簡要闡述了內部異常(Exception)時會產生Trap,對于Trap還存在以下的問題:

問題1:異常(Exception)和外部中斷的區別?

問題2:什么是NMI,如何產生NMI,NMI有什么用?

問題3:除了NMI,用戶如何主動制造異常?

問題4:如何配置異常中斷?

本文先詳細介紹TC3xx芯片的產生,然后再回答上述問題:

參考文檔:

1. Infineon-AURIX_TC3xx_Part1-UserManual-v02_00-EN

2. TriCoreTM TC1.6.2 core architecture manual

縮略詞

簡寫 全稱
TCN Trap Class Number
TIN Trap Identification Number
TSR Trap Service Router
NMI Non-Maskable Interrupt
BTV Base Trap Vector Table Pointer

注:本公眾號文章中使用了一些第三方工具和文檔,若有侵權,請聯系作者刪除!

正文

1.TC3xx芯片Trap產生

如圖1所示,Trap請求(TrapTrigger)或者通過TRAPSET寄存器設置對應的trap bit都能置位對應的TRAPSTAT的狀態bit.寄存器TRAPDIS[0:1]位域確定哪些CPUs接收來自TRAPSTAT的trigger flag.默認狀態下,Reset復位后所有的CPUs會接收Trap. TRAPSTAT寄存器中的trap flag可以通過寫TRAPCLR寄存器的對應bit來清除。

e4305a18-7478-11ee-939d-92fbcf53809c.png

Figure 1: CPU Trap Generation

1.1 Trap特點

. 可以通過ESRx Pin腳觸發Safety Alarm來觸發CPUTraps.

. CPUTrap觸發事件能夠被TRAPSTAT狀態寄存器捕獲。

.可以通過軟件產生或者移除CPUTrap觸發事件。

. 可以為單個 CPU 禁用或啟用單個 CPU Trap觸發事件。

e43c744c-7478-11ee-939d-92fbcf53809c.png

e447563c-7478-11ee-939d-92fbcf53809c.png

Figure 2: Monitoring and Reset Pins

1.2 Trap處理

當啟用(enable)Trapsource并設置Trap狀態標志時生成Trap時,建議在啟用(enable) TRAPDISn 中的Trapsource之前通過 TRAPCLR寄存器 清除Trap狀態標志。 Trap狀態標志可以在啟用Trapsource之前設置,只要啟用Trapsource,就會導致意外的 CPU 陷阱。 Trap處理例程結束時,應清除Trap狀態標志。

1.3 Trap寄存器

主要有:

TRAPSTAT:Trap Status Register.

TRAPSET: Trap Set Register.

TRAPCLR: Trap Clear Register.

TRAPDIS0: Trap Disable Register 0.

TRAPDIS1: Trap Disable Register 1.

具體每個寄存器的位域作用參考芯片手冊。

2.VectorOS對異常的處理

2.1 異常Exception和中斷的關系

異常(Exception,Trap產生):BTV寄存器中保存了異常向量表(Exception Vector)的基地址,異常向量表中保存了所有用戶配置和系統自帶的異常護理程序(Exception Handlers)。系統產生Trap時(比如非法訪問0地址)就會以 “中斷搶占“的方式調用對應的異常護理程序(Exception Handlers)。

中斷(Interrupt,外部事件產生):BIV寄存器中保存了中斷向量表(Interrupt Vector)的基地址。中斷向量表中保存了所有用戶配置和系統自帶的中斷護理程序(Interrupt Handlers)。系統產生外部(External)中斷事件(比如配置了CAN的接收中斷,收到CAN報文)時就會觸發中斷事件,系統就會調用對應的中斷處理程序。

所以,嚴格意義上來講,異常和中斷沒啥關系,只不過異常產生時會以“中斷搶占“的方式調用異常處理程序,處理過程和外部事件觸發的中斷處理過程類似,都是搶占當前Task執行xxxhandlers.

用戶調用DisableAllInterrupts API可以禁用/屏蔽所有的中斷,但是屏蔽不了Exception產生Trap,NMI(Non-Maskable Interrupt)實際上是一種Trap而不是ISR,只不過NMITrap(Class 7)產生后一定會去調用TrapHandler/Exception Handler, 且過程也是“中斷搶占“的形式,看上去就像”不可屏蔽的中斷一樣“。

2.2 Vector OS對異常處理

在<>一文中我們知道Tricore異常由8大類(Class0 – Class 7)。

e452187e-7478-11ee-939d-92fbcf53809c.png

e452187e-7478-11ee-939d-92fbcf53809c.png

TC3xx的BTV寄存器保存了異常向量表的基地址。異常向量表里面保存了用戶配置的異常處理程序,值得注意的是,Vector OS中以及實現了Class 1(memory protection errors)Class 6(SYSCALL / TRAP instructions)的異常處理程序(exception handlers)。

e476764c-7478-11ee-939d-92fbcf53809c.png

e48d6ea6-7478-11ee-939d-92fbcf53809c.png

產生Class 1 Trap后OS會調用Os_Hal_MemoryTrapEntry:

e4918806-7478-11ee-939d-92fbcf53809c.png

產生Class 6 Trap后OS會調用Os_Hal_SysCallTrapEntry:

e4a8c610-7478-11ee-939d-92fbcf53809c.png

沒有配置Handler的Trap產生后,OS就會調用Os_Hal_UnhandledTrapEntry,之后可能會調用PanicHooK()或者ProtectionHook():

e4c936fc-7478-11ee-939d-92fbcf53809c.png

e4e033a2-7478-11ee-939d-92fbcf53809c.png

測試了一個Class 1 Trap,最后也會走到ProtectionHook:

e50b4844-7478-11ee-939d-92fbcf53809c.png

對于非OS處理的Trap(非Class 1和Class 6)如果配置了自定義的Exception Handler, Trap產生后調用自定義的Exception Handler。

e51321ea-7478-11ee-939d-92fbcf53809c.png

2.3 Infineon提供的關于Trap的接口

void Mcu_SetTrapRequest(const Mcu_TrapRequestType TrapRequestId);
void Mcu_ClearTrapRequest(const Mcu_TrapRequestType TrapRequestId);


typedef enum
{
  MCU_TRAP_ESR0    = 0x0U,    /* ESR0 trap request    */
  MCU_TRAP_ESR1    = 0x1U,    /* ESR1 trap request    */
  MCU_TRAP_TRAP2   = 0x2U,    /* TRAP2 trap request   */
  MCU_TRAP_SMU     = 0x3U,    /* SMU trap request     */
  MCU_TRAP_INVALID = 0x4U     /* Invalid trap request */
} Mcu_TrapRequestType;

3.異常配置

Exception Handler的配置基本和ISR一樣,只有兩個地方需要注意:

OsIsrInterruptType:需要選EXCEPTION.

OsIsrCategory: 只能是CATEGORY_1 or CATEGORY_0.

e526f026-7478-11ee-939d-92fbcf53809c.png

4.NMI的作用

在第2章中我們知道NMI是Trap不是ISR。

如果我們不想通過外部IC觸發NMITrap: ESR1 Pin默認接到高電平(因為ESR1低電平有效默認觸發NMITrap)。

如果我們想使用NMITrap:比如把TLE35584 SBC的INTPin腳接到ESR1,這樣35584出現異常的時候,就能通過NMI_Handler快速的獲取35584的錯誤狀態。

5.總結

我們通過回答開頭的幾個問題來結束本文:

問題1:異常(Exception)和外部中斷的區別?

:參考2.1異常Exception和中斷的關系章節。

問題2什么是NMI,如何產生NMI,NMI有什么用?

:NMI是Class 7 Trap,可以通過ESR1 Pin拉低觸發NMI, NMI一般用來快速的捕獲外部Exception.

問題3除了NMI,用戶如何主動制造異常?

:可以通過調用Mcu_SetTrapRequest()API來設置Trap.

問題4如何配置異常中斷?

:參考第3章節。





審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 寄存器
    +關注

    關注

    31

    文章

    5424

    瀏覽量

    123479
  • 觸發器
    +關注

    關注

    14

    文章

    2033

    瀏覽量

    61908
  • 中斷處理
    +關注

    關注

    0

    文章

    94

    瀏覽量

    11205
  • 狀態機
    +關注

    關注

    2

    文章

    493

    瀏覽量

    28089
  • 外部中斷
    +關注

    關注

    1

    文章

    133

    瀏覽量

    16111

原文標題:TC3xx芯片的Trap詳解(二)

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

收藏 0人收藏

    評論

    相關推薦
    熱點推薦

    英飛凌TC3XX系列多核MCU學習筆記(1)

    聲明:本文是在學習英飛凌 TC3XX系列多核 MCU 過程中整理的筆記,便于后期復習!
    發表于 09-19 09:54 ?3518次閱讀
    英飛凌<b class='flag-5'>TC3XX</b>系列多核MCU學習筆記(1)

    TC3xx芯片的Endinit功能詳解

    上鎖Endinit。那什么是Endinit功能了? -- 本文就來詳細解鎖TC3xx芯片的Endinit機制。
    的頭像 發表于 11-27 09:23 ?3146次閱讀
    <b class='flag-5'>TC3xx</b><b class='flag-5'>芯片</b>的Endinit功能<b class='flag-5'>詳解</b>

    TC3xx芯片時鐘系統的鎖相環PLL詳解

    的Tick數就是基于模塊時鐘的)。本系列文章就來詳細介紹TC3xx芯片的時鐘系統及其具體配置。本文為TC3xx芯片時鐘系統的鎖相環PLL詳解
    的頭像 發表于 12-01 09:37 ?3518次閱讀
    <b class='flag-5'>TC3xx</b><b class='flag-5'>芯片</b>時鐘系統的鎖相環PLL<b class='flag-5'>詳解</b>

    英飛凌TC3xx系列安全管理單元的使用

    本篇文檔主要用來介紹英飛凌基于AURIX-2G TriCore 1.6.2架構的 TC3xx系列安全管理單元的使用。
    的頭像 發表于 12-07 09:29 ?3081次閱讀
    英飛凌<b class='flag-5'>TC3xx</b>系列安全管理單元的使用

    TC3XX寄存器讀寫時間過長怎么解決?

    我目前在做TC3XX底層代碼優化,經過之前多次測試目前可以確定該系列芯片對單個寄存器地址的讀寫耗時超過100us。請問對于寄存器讀寫耗時你們官方有沒有確切的文件說明?還有就是既然寄存器讀寫時間那么長100M的外設總線時鐘是否有意義?
    發表于 01-25 06:56

    TC3xx系列怎么禁用trap

    目前在TC3xx調試flash讀寫功能,單獨運行flash相關功能沒有問題,但將flash相關功能集成到工程中。操作pflash就會進入trap中,查看了一些帖子說是要禁掉trap?請問怎么禁用
    發表于 01-31 06:21

    TC3xx系列是否支持RTC功能?

    請教各位,TC3xx系列芯片是否支持RTC功能,目前要記錄snapshot的時間點(年月日時分秒)。
    發表于 02-02 07:53

    TC3xx的HSM中有沒有單調計數器?

    你好, 我看到 OPTIGA 有單調計數器,但我在 TC3xx 的 HSM 中確實找不到單調計數器。 能否確認TC3xx的HSM中沒有單調計數器?
    發表于 03-05 07:56

    TSIM是否支持TC3xx系列在沒有硬件的情況下調試應用程序?

    你好, TSIM是否支持TC3xx系列在沒有硬件的情況下調試應用程序? AURIX TC3xx - Free Entry ToolChain 是否有助于實現上述目的?
    發表于 05-17 07:02

    請問tc3xx如何配置多個dedicatedRxBuffersNumber?

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

    AUTOSAR MCAL-基于Infineon TC3xx芯片的ADC模塊

    ADC模塊了,由于最近開始使用Infineon TC3xx芯片,在配置ADC模塊的時候發現ADC模塊對上提供的標準接口是一樣的,在切換芯片的時候,IoHwAb_ADC模塊基本不用修改,但是對于具體
    的頭像 發表于 01-29 16:45 ?1w次閱讀

    AURIX? TC3xx NVM是非易失性存儲器學習筆記

    TC3xx芯片最多有6個內核,每個核有自己的私有的Memory以及共有的Memory。
    發表于 06-19 09:09 ?9520次閱讀
    AURIX? <b class='flag-5'>TC3xx</b> NVM是非易失性存儲器學習筆記

    TC3xx芯片DMU介紹

    AUTOSAR架構圖下的Fls模塊對上(Fee)模塊提供統一的標準接口,但是具體的實現因不同的芯片而不一樣,Infineon公司的Fls模塊通過操作TC3xx芯片的DMU模塊實現Fls的功能。在具體
    的頭像 發表于 08-31 14:10 ?2676次閱讀
    <b class='flag-5'>TC3xx</b><b class='flag-5'>芯片</b>DMU介紹

    TC3xx芯片的MPU功能詳解

    在前面的文章文章中我們介紹了RH850-U2A的內存保護單元(MPU),了解了MPU的概念以及在RH850-U2A上的具體使用流程,但是對于TC3xx系列芯片的的MPU功能不甚了解。
    的頭像 發表于 09-19 11:42 ?3396次閱讀
    <b class='flag-5'>TC3xx</b><b class='flag-5'>芯片</b>的MPU功能<b class='flag-5'>詳解</b>

    深入解析TC3xx芯片中的SMU模塊應用

    TC3xx芯片是德國英飛凌半導體公司推出的汽車級處理器芯片系列,其中的SMU(System Management Unit)模塊是其重要組成部分之一。SMU模塊在TC3xx
    的頭像 發表于 03-01 18:08 ?2436次閱讀
    主站蜘蛛池模板: 亚洲第一成年人网站 | 牛牛超碰 国产 | 色综合99久久久国产AV | 欧美性视频xxxxhd | 夫外出被公侵犯日本电影 | 欧美在线亚洲综合国产人 | 免费的av不用播放器的 | 免费人成网站在线观看10分钟 | 成年人视频在线免费播放 | 国产亚洲精品品视频在线 | 麻豆最新免费版 | 92国产精品午夜免费福利视频 | 女bbbbxxx孕妇| 先锋影音av最新资源 | 特黄特色大片免费播放器试看 | 国产精品无码中文在线AV | 在线视频a | 新影音先锋男人色资源网 | 扒开女人下面使劲桶动态图 | 差差差差差差差差免费观看 | 伊人久久综合影院 | 无码国产成人777爽死在线观看 | s8sp视频高清在线播放 | 芳草地社区在线视频 | 暖暖视频大全免费观看 | 网址在线观看你懂我意思吧免费的 | 国产在线观看免费观看不卡 | 中文字幕在线观看亚洲视频 | 日日摸天天添天天添无码蜜臀 | 国内精品久久 | 第七色男人天堂 | 极品网红液液酱粉嫩福利照子凌酱 | 久久人妻少妇嫩草AV無碼 | 黄色网址在线播放 | 国产浮力草草影院CCYY | 好紧好湿太硬了我太爽了小说 | 狠狠综合久久综合88亚洲 | 国产精品一区二区三区四区五区 | 国产中文字幕乱码一区 | 久久久黄色片 | 百性阁综合社区 |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品