在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

【S32K 進(jìn)階之旅】Interrupt 模塊介紹與應(yīng)用

大大通 ? 2023-05-04 15:29 ? 次閱讀

大大通——大聯(lián)大線上技術(shù)支持平臺(tái)&方案知識(shí)庫(kù)

一、 S32K144 Interrupt介紹
1. Arm Cortex-M4F 中斷結(jié)構(gòu)及中斷過(guò)程

v2-f82cdabfbd5ad2acca9b471c1576a161_1440w.webp

ARM Cortex-M4F 內(nèi)核模塊框圖

S32K144 內(nèi)核ARM Cortex-M4F 把中斷分為內(nèi)核中斷與非內(nèi)核模塊中斷,并對(duì)內(nèi)核中斷和非內(nèi)核中斷進(jìn)行了統(tǒng)一編號(hào)(0~254),非內(nèi)核中斷的中斷請(qǐng)求號(hào)(IRQ)為 0~238,對(duì)應(yīng)于中斷向量號(hào)的 15~254。中斷結(jié)構(gòu)原理圖如下:

v2-246b9690c327fd43eceb9ab32ba8112e_1440w.webp


ARM Cortex-M4F 中斷結(jié)構(gòu)原理圖

M4F 的中斷由 M4F 內(nèi)核、嵌套向量中斷控制器(Nested Vectored Interrupt Controller,NVIC)及模塊中斷源組成。中斷過(guò)程分為兩步:第一,模塊中斷源向 NVIC 發(fā)出中斷請(qǐng)求信號(hào);第二步,NVIC 對(duì)發(fā)來(lái)的中斷信號(hào)進(jìn)行處理,判斷該模塊中斷源是否被使能,若使能,則通過(guò)專(zhuān)用外設(shè)總線(Private Peripheral Bus,PPB)發(fā)送給 M4F 內(nèi)核,由內(nèi)核進(jìn)行中斷處理。如果同時(shí)有多個(gè)中斷信號(hào)到來(lái),NVIC 則根據(jù)設(shè)定好的中斷優(yōu)先級(jí)進(jìn)行判斷,優(yōu)先級(jí)高的中斷被響應(yīng),優(yōu)先級(jí)低的中斷被掛起,壓入堆棧保存;如果優(yōu)先級(jí)完全相同的多個(gè)中斷源同時(shí)請(qǐng)求,則先響應(yīng) IRQ 號(hào)較小的,其他被掛起。
2. NVIC 寄存器映射

v2-6ec390ea06bce70c5eb77a470b11e36b_1440w.webp


NVIC 寄存器映射地址(Cortex-M4 User Guide)

  • 中斷使能寄存器(NVIC_ISER)
  • 中斷禁止寄存器(NVIC_ICER)
  • 中斷掛起寄存器(NVIC_ISPR)
  • 清除掛起寄存器(NVIC_ICPR)
  • 中斷活動(dòng)位寄存器(NVIC_IABR)
  • 優(yōu)先級(jí)寄存器(NVIC_IPR)

上表列出了 NVIC 的寄存器映射,由于 NVIC 屬于內(nèi)核外設(shè),具體的寄存器用法可以參考手冊(cè)《Cortex?-M4 Devices Generic User Guide》。


二、 S32DS Interrupt例程簡(jiǎn)介與應(yīng)用
下面我們以 S32DS 開(kāi)發(fā)環(huán)境中自帶的例程 hello_Interrupts_s32k144為例。
1. 例程導(dǎo)入

  • 打開(kāi)S32 Design Studio,點(diǎn)擊:“File”->“New”->“S32DS Project from Example”。
v2-04601baf7f3acb3987b4c6cb01653065_1440w.webp



  • 在彈出的窗口選取 S32K144 目錄下的 hello_interrupts 例程,點(diǎn)擊“Finish”。
v2-1e55dbe07acda85f56638a20f43a857d_1440w.webp



  • 點(diǎn)擊左上角“Build”按鈕,編譯例程。
v2-01fabafcdcb7900e4ff0017213ae187f_1440w.webp



  • 點(diǎn)擊“Debug”按鈕。進(jìn)入例程Debug頁(yè)面。
v2-9abd959b226557b2f1356618bbba0560_1440w.webp



  • 點(diǎn)擊運(yùn)行程序 按鈕,D11 LED blue 燈 1s閃爍。
v2-8f2e62d08dd14a333ff47782cf80f3d4_1440w.webp


D11 1s閃爍藍(lán)燈

2. 例程簡(jiǎn)介

  • Hello Interrupt介紹

此例程通過(guò)配置時(shí)鐘、GPIO、LPIT0和NVIC,將定時(shí)器實(shí)現(xiàn)的LED燈閃爍的程序放在中斷程序中實(shí)現(xiàn)LED燈的藍(lán)燈1s閃爍。

  • Hello Interrupt框圖
v2-1597677f2fb28d533b1967d0c69ae57f_1440w.webp


3. 例程設(shè)計(jì)思路

  • 初始化中斷需要在 NVIC中 寫(xiě)入 3 句代碼來(lái)實(shí)現(xiàn):
  • 清除先前未完成的中斷(假如有中斷未完成)
  • -在清除掛起寄存器(ICPR)中的對(duì)應(yīng)位寫(xiě)1
  • 啟用所需中斷
  • -在中斷使能寄存器(ISER)中的對(duì)應(yīng)位寫(xiě)1
  • 設(shè)置中斷優(yōu)先級(jí)
  • -在對(duì)應(yīng)的中斷優(yōu)先級(jí)寄存器(IP)中寫(xiě)入一個(gè)在0~15之間的優(yōu)先級(jí)

  • 程序設(shè)計(jì)思路:
  • 初始化端口 D module
  • 使能端口 D 時(shí)鐘
  • 配置 PTD0 為輸出模式(藍(lán)燈)
  • 初始化系統(tǒng)時(shí)鐘(SOSC)為8MHz
    • 初始化 SOSC 分頻器
    • 配置范圍,高增益,參考系數(shù)
    • 確保 SOSC 控制狀態(tài)寄存器是可寫(xiě)的
    • 使能 SOSC 控制狀態(tài)寄存器中的 SOSC
    • 等待 SOSC 生效

  • 初始化系統(tǒng)鎖相環(huán)(SPLL)為160MHz
    • 確保 SPLL 禁止配置
    • 初始化 SPLL 分頻器
    • 初始化 PLL 分頻和倍頻系數(shù)

  • Fpll = Fosc / PLL Ref Clk Divider x Sys PLL Multiplier / 2 = 8 MHz / 1 x 20 / 2= 160 MHz
    • 確保 SPLL 控制狀態(tài)寄存器可寫(xiě)
    • 使能 SPLL 控制狀態(tài)寄存器中的 SPLL
    • 等待 SPLL 生效

  • 初始化 LPIT 0 通道
    • 使能時(shí)鐘源為 SPLL_DIV2_CLK
    • 使能 LPITO 寄存器時(shí)鐘
    • 使能 LPIT0 模塊
    • 初始化 0 通道:
    • 使能該通道中斷
      • 超時(shí)時(shí)間=1s
      • 設(shè)置計(jì)數(shù)器模式并使能 0 通道

  • 改變 SPLL 工作模式為 Normal RUN Mode
    • 初始化 CORE、BUS、FLASH 的分頻系數(shù)
    • 切換系統(tǒng)時(shí)鐘為 SPLL(160MHz)

  • 禁止看門(mén)狗
  • 主函數(shù):永遠(yuǎn)等待
  • LPIT_0 0 通道中斷處理程序:
    • 清除通道溢出位
      • 裝載計(jì)數(shù)器
      • 翻轉(zhuǎn) PTD0 GPIO 輸出



三、 例程代碼解釋以及寄存器介紹
1. void NVIC_init_IRQs (void)

  • S32_NVIC->ICPR[1] = 1 << (48 % 32); /* IRQ48-LPIT0 ch0: clr any pending IRQ*/

ICPR: Interrupt Clear-pending Registers 中斷清除掛起寄存器

v2-7c3b896d87c0cb3221cc701f62c15de5_1440w.webp


NVIC ICPR 寄存器映射地址

NVIC_ICPR0-NVIC_ICPR7 寄存器清除推遲狀態(tài)的中斷,并顯示推遲中的中斷。操作方法如下:

v2-496868b34dde2d246808e690fcd6805d_1440w.webp


S32K144 向量表

查詢(xún) S32K144.h 可得 PORTD 的向量值為 64,對(duì)應(yīng) IRQ 為 48。查詢(xún) S32K144 NVIC 寄存器地址可以看到 256 個(gè)中斷向量被分為 8 個(gè)寄存器,每個(gè)寄存器共 32 位。通過(guò)移位運(yùn)算給 PORTD 對(duì)應(yīng)的 ICPR 寄存器賦值 1,清除 PORTD 中斷。

  • S32_NVIC->ISER[1] = 1 << (48 % 32); /* IRQ48-LPIT0 ch0: enable IRQ */

ISER:Interrupt Set-enable Registers 中斷使能寄存器

v2-3872bd2b3f6f1926407bc434a272cb4f_1440w.webp


NVIC ISER 寄存器映射地址

NVIC_ISER0-NVIC_ISER7 寄存器使能中斷,并顯示已經(jīng)使能的中斷。

v2-6b52816591b9c9717842e14f16b2015e_1440w.webp


通過(guò)移位運(yùn)算給 PORTD 對(duì)應(yīng)的的 ISER 寄存器賦值 1,使能 PORTD 中斷。

  • S32_NVIC->IP[48] = 0x0A; /* IRQ48-LPIT0 ch0: priority 10 of 0-15*/

IP:Interrupt Priority Registers 中斷優(yōu)先級(jí)寄存器

v2-7f8926e39cd520fba08769231e1d1c72_1440w.webp


NVIC IPR寄存器映射地址

NVIC_IPR0-NVIC_IPR59 寄存器為每一個(gè)中斷提供8 bit的優(yōu)先級(jí)域,每個(gè)寄存器(32bit)包含4個(gè)優(yōu)先級(jí)域。這些寄存器都是可以設(shè)置的。

v2-74e966af64f0c6cdf10ca4019d006182_1440w.webp


NVIC IPR 寄存器分配

v2-8b9f42905046ff7f64b705d163605302_1440w.webp


NVIC IPR 寄存器與優(yōu)先級(jí)域?qū)φ?br />
通過(guò)位運(yùn)算直接給 PORTD 對(duì)應(yīng)的IPR寄存器賦值優(yōu)先級(jí),優(yōu)先級(jí)為 8 bit 數(shù)值。

2. void LPIT0_Ch0_IRQHandler (void) {}
中斷函數(shù),在需要中斷的模塊名后添加IRQHandler。

3. 主程序
等待中斷狀態(tài)。

四、 參考文獻(xiàn)
[1] Cortex?-M4 Devices Generic User Guide.pdf,ARM
[2] S32K1xx Series Cookbook.pdf,NXP
[3] S32K144 Reference Manual.pdf,NXP

登陸大大通,了解更多詳情,解鎖1000+系統(tǒng)級(jí)應(yīng)用方案,更有大聯(lián)大700+FAE在線為您答疑解惑!

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

    關(guān)注

    146

    文章

    17197

    瀏覽量

    351904
  • NXP
    NXP
    +關(guān)注

    關(guān)注

    60

    文章

    1284

    瀏覽量

    184778
  • NVIC
    +關(guān)注

    關(guān)注

    0

    文章

    35

    瀏覽量

    11717
  • S32k144
    +關(guān)注

    關(guān)注

    1

    文章

    9

    瀏覽量

    1915
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    S32K3xx參考手冊(cè)

    NXP單片機(jī) S32K3xx系列完整版技術(shù)手冊(cè),手冊(cè)PDF文檔包含IO MUX等附件
    發(fā)表于 12-30 16:12 ?0次下載

    S32K3系列汽車(chē)級(jí)MCU應(yīng)用筆記

    電子發(fā)燒友網(wǎng)站提供《S32K3系列汽車(chē)級(jí)MCU應(yīng)用筆記.docx》資料免費(fèi)下載
    發(fā)表于 12-30 15:43 ?0次下載

    S32K3xxICU應(yīng)用筆記

    S32K3xxICU應(yīng)用筆記
    發(fā)表于 12-30 15:38 ?0次下載

    如何如何集成MCAL到S32DS_S32K344

    集成MCAL到S32DS_S32K344
    發(fā)表于 12-30 15:35 ?0次下載

    k8s和docker區(qū)別對(duì)比,哪個(gè)更強(qiáng)?

    Docker和Kubernetes(K8s)是容器化技術(shù)的兩大流行工具。Docker關(guān)注構(gòu)建和打包容器,適用于本地開(kāi)發(fā)和單主機(jī)管理;而K8s則提供容器編排和管理平臺(tái),適用于多主機(jī)或云環(huán)境,具備自動(dòng)化
    的頭像 發(fā)表于 12-11 13:55 ?145次閱讀

    西門(mén)子S7-300 PLC的詳細(xì)介紹

    S7-300是德國(guó)西門(mén)子公司生產(chǎn)的PLC系列產(chǎn)品之一,以下是關(guān)于S7-300 PLC的詳細(xì)介紹: 一、產(chǎn)品特性 模塊化結(jié)構(gòu):西門(mén)子S7-30
    的頭像 發(fā)表于 12-10 18:18 ?427次閱讀
    西門(mén)子<b class='flag-5'>S</b>7-300 PLC的詳細(xì)<b class='flag-5'>介紹</b>

    TAx5x12EVM-K評(píng)估模塊

    電子發(fā)燒友網(wǎng)站提供《TAx5x12EVM-K評(píng)估模塊.pdf》資料免費(fèi)下載
    發(fā)表于 12-06 16:06 ?0次下載
    TAx5x12EVM-<b class='flag-5'>K</b>評(píng)估<b class='flag-5'>模塊</b>

    BOOSTXL-K350QVG-S1 QVGA顯示BoosterPack?插件模塊用戶(hù)指南

    電子發(fā)燒友網(wǎng)站提供《BOOSTXL-K350QVG-S1 QVGA顯示BoosterPack?插件模塊用戶(hù)指南.pdf》資料免費(fèi)下載
    發(fā)表于 12-05 14:45 ?0次下載
    BOOSTXL-<b class='flag-5'>K350QVG-S</b>1 QVGA顯示BoosterPack?插件<b class='flag-5'>模塊</b>用戶(hù)指南

    智能家居之旅(15):HA傳感器采集主板低功耗設(shè)計(jì)的遭遇

    智能家居之旅(1):了解HomeAssistant 智能家居之旅(2):設(shè)備接入HomeAssistant的方法 智能家居之旅(3):Ai-M61/M62 接入HomeAssistant 實(shí)現(xiàn)點(diǎn)燈
    的頭像 發(fā)表于 09-05 10:27 ?412次閱讀
    智能家居<b class='flag-5'>之旅</b>(15):HA傳感器采集主板低功耗設(shè)計(jì)的遭遇

    STM8S105K4T6使用ADC轉(zhuǎn)換結(jié)果異常的原因?如何解決?

    /*----------------------------------------------------------------------------*/ /* @Name: stm8_interrupt_vector.c*/ /* @Brief :*/ /* @Include: stm8
    發(fā)表于 05-13 08:52

    基于S32K3的ECU參考設(shè)計(jì)集成電池管理方案

    S32K396/376 BMS-EVB板現(xiàn)已供貨,同時(shí)S32K39 / 37 / 36系列芯片將于今年6月正式上市。相關(guān)的集中式電芯監(jiān)控參考設(shè)計(jì)板也已上市。
    發(fā)表于 04-26 10:59 ?531次閱讀

    RK3568驅(qū)動(dòng)指南|驅(qū)動(dòng)基礎(chǔ)進(jìn)階篇-進(jìn)階5 自定義實(shí)現(xiàn)insmod命令實(shí)驗(yàn)

    RK3568驅(qū)動(dòng)指南|驅(qū)動(dòng)基礎(chǔ)進(jìn)階篇-進(jìn)階5 自定義實(shí)現(xiàn)insmod命令實(shí)驗(yàn)
    的頭像 發(fā)表于 02-20 14:10 ?732次閱讀
    RK3568驅(qū)動(dòng)指南|驅(qū)動(dòng)基礎(chǔ)<b class='flag-5'>進(jìn)階</b>篇-<b class='flag-5'>進(jìn)階</b>5 自定義實(shí)現(xiàn)insmod命令實(shí)驗(yàn)

    基于 NXP S32K311 評(píng)估板的方案

    該方案是以 NXP S32K311 芯片為主控制器的評(píng)估板方案,S32K311 是基于 ARM Cortex-M7 的嵌入式應(yīng)用微控制器,有 64 KB 的 Dflash、1 MB 的 Pflash
    的頭像 發(fā)表于 02-18 11:22 ?902次閱讀
    基于 NXP <b class='flag-5'>S32K</b>311 評(píng)估板的方案

    RK3568驅(qū)動(dòng)指南|驅(qū)動(dòng)基礎(chǔ)進(jìn)階篇-進(jìn)階8 內(nèi)核運(yùn)行ko文件總結(jié)

    RK3568驅(qū)動(dòng)指南|驅(qū)動(dòng)基礎(chǔ)進(jìn)階篇-進(jìn)階8 內(nèi)核運(yùn)行ko文件總結(jié)
    的頭像 發(fā)表于 01-31 14:58 ?1184次閱讀
    RK3568驅(qū)動(dòng)指南|驅(qū)動(dòng)基礎(chǔ)<b class='flag-5'>進(jìn)階</b>篇-<b class='flag-5'>進(jìn)階</b>8 內(nèi)核運(yùn)行ko文件總結(jié)

    S32K 進(jìn)階之旅】 NXP S32K3 以太網(wǎng) RMII 接口調(diào)試(1)

    大聯(lián)大世平集團(tuán)推出了一款基于NXP車(chē)規(guī)級(jí)MCUS32K344的開(kāi)發(fā)板——花名“Cavalry”,它使用BGA257封裝的32位ArmCortex-M7S32K344作為主控芯片,在69.6
    的頭像 發(fā)表于 01-18 08:26 ?2561次閱讀
    【<b class='flag-5'>S32K</b> <b class='flag-5'>進(jìn)階</b><b class='flag-5'>之旅</b>】 NXP <b class='flag-5'>S32K</b>3 以太網(wǎng) RMII 接口調(diào)試(1)
    主站蜘蛛池模板: 免费人成网站线观看合集| 天天天做天天天天爱天天想| 日本三级日产三级国产三级| 黄色网毛片| 老色批影院| 韩国三级在线视频| 真实的国产乱xxxx在线| 天天射天天色天天干| 日韩1024| 成年女人色费视频免费| 深夜网站在线| 午夜视频www| 伊人网成人| 特级一级片| 国内夫妇交换性经过实录| 久久国产精品无码网站| 一级毛毛片毛片毛片毛片在线看| 亚洲va久久久噜噜噜久久狠狠 | 2018天堂视频免费观看| 亚洲视频天天射| 免费永久视频| 亚洲最色网| 狠狠色噜噜狠狠狠狠米奇777| 午夜影院色| 精品国产影院| 午夜久久免费视频| 国产黄色一级网站| 爽好舒服快给老师| 网全大全黄| 精品国产你懂的在线观看| 站长工具天天爽视频| 狠狠燥| 色综合久久网女同蕾丝边| 一区不卡在线观看| 国模极品一区二区三区| 色午夜视频| 国产美女精品在线| 美女一级牲交毛片视频| 求av网站| 欧美性天堂| 亚洲羞羞裸色私人影院|