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

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

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

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

GD32 MCU是如何進入中斷函數(shù)的

聚沃科技 ? 2024-01-30 09:45 ? 次閱讀

用過GD32 MCU的小伙伴們都知道,程序是順序執(zhí)行的,但當有中斷來的時候程序會跳轉(zhuǎn)到中斷函數(shù),執(zhí)行完中斷函數(shù)后程序又繼續(xù)回到原來的位置繼續(xù)執(zhí)行,那么你們知道MCU是如何找到中斷函數(shù)入口的嗎?

今天我們就以GD32F303系列的EXTI0中斷來描述下MCU是如何進入中斷的。

首先來看一個簡單的代碼(以Keil為開發(fā)環(huán)境):

wKgaomW4VDGAFyaiAAAfPibnKDk317.png

這段程序初始化了兩個LED燈,并將一個按鍵設(shè)置為中斷模式,這里用的是PA0,所以中斷號也為0,即EXTI0。

再來看一下中斷函數(shù):

wKgaomW4VDaAdupXAAAWnoUOW2g644.png

中斷函數(shù)也很簡單,當有中斷發(fā)生的時候,去翻轉(zhuǎn)一個LED燈狀態(tài)。

好,我們通過map文件看下這個中斷函數(shù)的地址在哪里(不會的小伙伴可以看看前面的視頻——《如果查看GD32 Keil和IAR工程的map文件》哦):

wKgZomW4VDqABPyOAACQCbjy4Ek810.png

沒錯,中斷函數(shù)就保存在0x08000193開始的flash地址中,且該函數(shù)占用了24個byte的空間。

正常情況下,程序是不會跳轉(zhuǎn)到這個地址去執(zhí)行的,那為什么中斷信號一來,程序就直接跳轉(zhuǎn)過去了呢?

下面重點來了,小伙伴們要仔細聽哦。

我們來看下GD32F30x系列的啟動文件:

wKgaomW4VD6ADS2fAADLoXDIfoQ299.png

其中用匯編寫了一段代碼:使用DCD指令(DCD指令是為特定的數(shù)據(jù)分配地址)將棧頂指針__initial_sp和中斷函數(shù)分配到flash最開始的地址中去,我們看下flash中的數(shù)據(jù):

wKgZomW4VEOAD9rvAAAi9QvSgto772.png

用紅框標注的數(shù)據(jù)就是程序的棧頂指針,再看下第23個地址也就是0x08000058保存的數(shù)據(jù),就是0x08000193,剛好就是中斷函數(shù)EXTI0_IRQHandler的入口。

wKgaomW4VEiAaBuQAABOuZMOjhw295.png

實際上,flash最開始保存的這一段數(shù)據(jù)有個專有名詞——中斷向量表,可以通過GD32F30x的用戶手冊查到:

wKgZomW4VEyAHXe6AAF0WLqIdDU814.png

注意:因為向量編號是從0開始的(0號即為棧頂指針),所以EXTI0的中斷編號為22,也就存在flash第23個地址(按字對齊)中。

當有EXTI0中斷發(fā)生,MCU會知道是22號中斷來了,內(nèi)部總線就會去查flash最開始地址中的中斷向量表,找到第23個地址(0x08000058),并取得里面的數(shù)據(jù)也就是中斷函數(shù)的入口,然后就跳轉(zhuǎn)到中斷函數(shù)中執(zhí)行程序了。

本期視頻內(nèi)容會有點繞,小伙伴們可以多看幾遍哦,了解MCU是如何進入中斷函數(shù)對于平時的開發(fā)是非常有用的,如果有不懂的小伙伴,歡迎評論區(qū)留言討論哦。

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

    關(guān)注

    6037

    文章

    44558

    瀏覽量

    635356
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    17149

    瀏覽量

    351216
  • 嵌入式
    +關(guān)注

    關(guān)注

    5082

    文章

    19126

    瀏覽量

    305255
  • GD32
    +關(guān)注

    關(guān)注

    7

    文章

    403

    瀏覽量

    24353
收藏 人收藏

    評論

    相關(guān)推薦

    GD32 MCU 入門教程】GD32 MCU 常見外設(shè)介紹(12)FMC 模塊介紹

    閃存控制器(FMC),提供了片上閃存需要的所有功能。FMC 也提供了頁擦除,整片擦除,以及32 位整字或 16 位半字編程閃存等操作。 GD32 MCU 支持不同類型編程的具體說明如下表 GD32
    的頭像 發(fā)表于 08-21 09:56 ?1129次閱讀
    <b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b> 入門教程】<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b> 常見外設(shè)介紹(12)FMC 模塊介紹

    GD32 MCU是如何進入中斷函數(shù)的?#GD32 #MCU #中斷函數(shù)

    單片機mcu
    聚沃科技
    發(fā)布于 :2024年01月31日 09:49:37

    GD32的外部中斷介紹

    起因介紹因為公司之前用GD32F4和周立功的CSM300產(chǎn)品的一個SPI轉(zhuǎn)CAN模塊,做了個產(chǎn)品,其在收到CAN幀時INT引腳會為由高電平轉(zhuǎn)為低電平。需要做一個中斷接收的程序防止丟包。GD32的外部
    發(fā)表于 08-16 08:36

    GD32 MCU原理及固件庫開發(fā)指南》+讀后感

    、調(diào)試工具,再到庫函數(shù)的使用、各個外設(shè)的程序?qū)崿F(xiàn),不僅有原理的介紹,還有實踐的歷程。這本書聚焦在GD32 MCU基本原理和固件庫上,重點在于對固件庫API的介紹,供了大量實例代碼,這些代碼都可以直接編譯
    發(fā)表于 06-06 21:52

    GD32系列外部中斷

    起因介紹因為公司之前用GD32F4和周立功的CSM300產(chǎn)品的一個SPI轉(zhuǎn)CAN模塊,做了個產(chǎn)品,其在收到CAN幀時INT引腳會為由高電平轉(zhuǎn)為低電平。需要做一個中斷接收的程序防止丟包。GD32的外部
    發(fā)表于 11-24 17:06 ?14次下載
    <b class='flag-5'>GD32</b>系列外部<b class='flag-5'>中斷</b>

    推出采用GD32 RISC-V的MCU

    推出采用GD32 RISC-V的MCU ppt分享
    發(fā)表于 07-14 17:15 ?0次下載

    兆易創(chuàng)新GD32 MCU選型手冊,適用于GD32全系列MCU

    兆易創(chuàng)新GD32MCU選型手冊,適用于GD32全系列MCUGD32MCU選型手冊,適用于GD32全系列MCU
    發(fā)表于 10-19 17:26 ?49次下載

    GD32如何配置中斷優(yōu)先級分組以及中斷優(yōu)先級

    使用GD32 MCU的過程中,大家可能會有以下疑問:中斷優(yōu)先級如何配置和使用?
    的頭像 發(fā)表于 01-10 10:30 ?3095次閱讀
    <b class='flag-5'>GD32</b>如何配置<b class='flag-5'>中斷</b>優(yōu)先級分組以及<b class='flag-5'>中斷</b>優(yōu)先級

    你了解GD32 MCU的命名規(guī)則嗎

    下面為大家介紹GD32 MCU的通用命名規(guī)則,以GD32F303ZGT6為例,其中,GD32代表GD32
    的頭像 發(fā)表于 01-13 09:38 ?3648次閱讀
    你了解<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b>的命名規(guī)則嗎

    GD32 MCU啟動后如何運行到main函數(shù)

    GD32 MCU啟動后如何運行到main函數(shù)入口?你是否也有這樣的疑慮。在執(zhí)行到main函數(shù)之前MCU干了哪些事情呢?下面為大家解答。
    的頭像 發(fā)表于 01-15 10:00 ?1083次閱讀
    <b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b>啟動后如何運行到main<b class='flag-5'>函數(shù)</b>

    GD32 MCU的選項字節(jié)是什么?

    GD32 MCU的選項字節(jié)是什么,有什么功能呢?選項字節(jié)被誤篡改如何回復?
    的頭像 發(fā)表于 01-17 09:42 ?1387次閱讀
    <b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b>的選項字節(jié)是什么?

    不同型號的GD32 MCU如何區(qū)分?

    大家是否碰到過以下應用場景:同一套軟件代碼希望跑在不同型號的GD32 MCU中,但有些地方需要根據(jù)MCU型號進行調(diào)整?或者上位機或其他MCUGD3
    的頭像 發(fā)表于 01-27 09:32 ?1003次閱讀
    不同型號的<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b>如何區(qū)分?

    GD32 MCU 入門教程】GD32 MCU 常見外設(shè)介紹(14)RTC 模塊介紹

    GD32 MCU內(nèi)部提供了一個RTC(實時時鐘)模塊,通過RTC可以實現(xiàn)日歷時鐘、鬧鐘等功能。RTC也可以用于深度睡眠或待機模式的低功耗喚醒。不同系列的GD32 MCU在RTC設(shè)計和功
    的頭像 發(fā)表于 08-23 09:18 ?474次閱讀
    【<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b> 入門教程】<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b> 常見外設(shè)介紹(14)RTC 模塊介紹

    GD32 MCU 入門教程】GD32 MCU FPU 使用方法

    GD32 MCU FPU 使用方法
    的頭像 發(fā)表于 08-25 09:24 ?601次閱讀
    【<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b> 入門教程】<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b> FPU 使用方法

    GD32 MCU入門教程】GD32 MCU GPIO 結(jié)構(gòu)與使用注意事項

    本文是專門為基于GD32 MCU開發(fā)的工程設(shè)計人員提供,主要介紹了GPIO的功能配置、內(nèi)部結(jié)構(gòu)以及在不同場景使用時的注意事項,旨在幫助GD32 MCU開發(fā)者優(yōu)化對通用型輸入輸出端口(G
    的頭像 發(fā)表于 09-07 10:34 ?749次閱讀
    【<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b>入門教程】<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b> GPIO 結(jié)構(gòu)與使用注意事項
    主站蜘蛛池模板: 色老头在线官方网站| 欧美精品1| 麻豆国产一区二区在线观看| 亚洲精品久久片久久| 亚洲hhh| 亚洲a在线播放| 国产农村女人一级毛片了| 久久久久久久久久免观看| 浮荡视频在线观看免费| 女人张开腿给人桶免费视频| 天天干视频在线观看| 亚洲日本欧美日韩高观看| 人人草人人澡| 天天拍夜夜操| 精品国产免费观看一区高清| 男女爱爱免费高清| 久久深夜福利| 亚洲色图88| 6969精品视频在线观看| 5g成人影院| 免费三级毛片| 狠狠干.com| 天天摸日日| 天天躁天天狠天天透| 极品啪啪| 国产精品久久久久久久免费| 五月婷婷色| 男人透女人超爽视频免费| 上色天天综合网| 99久久国产综合精品国| 国产美女在线精品观看| 日本wwwhdsex69| 七月婷婷在线视频综合| 精品国产一二三区| 速度与激情10| 天天干天天操天天干| 中文字幕一区精品欧美| 99久久综合精品免费| 人人射人人爽| 国产精品久久久久久久久kt| 中文字幕一区二区三区四区五区人 |