日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

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

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

聚沃科技 ? 2024-01-30 09:45 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

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

wKgaomW4VDGAFyaiAAAfPibnKDk317.png

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

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

wKgaomW4VDaAdupXAAAWnoUOW2g644.png

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

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

wKgZomW4VDqABPyOAACQCbjy4Ek810.png

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

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

下面重點(diǎn)來了,小伙伴們要仔細(xì)聽哦。

我們來看下GD32F30x系列的啟動(dòng)文件:

wKgaomW4VD6ADS2fAADLoXDIfoQ299.png

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

wKgZomW4VEOAD9rvAAAi9QvSgto772.png

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

wKgaomW4VEiAaBuQAABOuZMOjhw295.png

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

wKgZomW4VEyAHXe6AAF0WLqIdDU814.png

注意:因?yàn)橄蛄烤幪?hào)是從0開始的(0號(hào)即為棧頂指針),所以EXTI0的中斷編號(hào)為22,也就存在flash第23個(gè)地址(按字對(duì)齊)中。

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

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

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

    關(guān)注

    6078

    文章

    45591

    瀏覽量

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

    關(guān)注

    147

    文章

    19160

    瀏覽量

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

    關(guān)注

    5210

    文章

    20680

    瀏覽量

    337371
  • GD32
    +關(guān)注

    關(guān)注

    7

    文章

    434

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

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

    閃存控制器(FMC),提供了片上閃存需要的所有功能。FMC 也提供了頁擦除,整片擦除,以及32 位整字或 16 位半字編程閃存等操作。 GD32 MCU 支持不同類型編程的具體說明如下表 GD32
    的頭像 發(fā)表于 08-21 09:56 ?3923次閱讀
    <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是如何進(jìn)入中斷函數(shù)的?#GD32 #MCU #中斷函數(shù)

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

    GD32的外部中斷介紹

    起因介紹因?yàn)楣局坝?b class='flag-5'>GD32F4和周立功的CSM300產(chǎn)品的一個(gè)SPI轉(zhuǎn)CAN模塊,做了個(gè)產(chǎn)品,其在收到CAN幀時(shí)INT引腳會(huì)為由高電平轉(zhuǎn)為低電平。需要做一個(gè)中斷接收的程序防止丟包。GD32的外部
    發(fā)表于 08-16 08:36

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

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

    GD32系列外部中斷

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

    GD32 MCU Dfu驅(qū)動(dòng)64位Win8

    GD32 MCU Dfu驅(qū)動(dòng)64位Win8
    發(fā)表于 10-08 14:55 ?1次下載

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

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

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

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

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

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

    GD32 MCU啟動(dòng)后如何運(yùn)行到main函數(shù)

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

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

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

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

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

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

    GD32 MCU內(nèi)部提供了一個(gè)RTC(實(shí)時(shí)時(shí)鐘)模塊,通過RTC可以實(shí)現(xiàn)日歷時(shí)鐘、鬧鐘等功能。RTC也可以用于深度睡眠或待機(jī)模式的低功耗喚醒。不同系列的GD32 MCU在RTC設(shè)計(jì)和功
    的頭像 發(fā)表于 08-23 09:18 ?2764次閱讀
    【<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 ?2610次閱讀
    【<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)與使用注意事項(xiàng)

    本文是專門為基于GD32 MCU開發(fā)的工程設(shè)計(jì)人員提供,主要介紹了GPIO的功能配置、內(nèi)部結(jié)構(gòu)以及在不同場景使用時(shí)的注意事項(xiàng),旨在幫助GD32 MCU開發(fā)者優(yōu)化對(duì)通用型輸入輸出端口(G
    的頭像 發(fā)表于 09-07 10:34 ?4552次閱讀
    【<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)與使用注意事項(xiàng)
    九台市| 罗山县| 昌图县| 札达县| 曲松县| 象州县| 遂昌县| 泽州县| 腾冲县| 依安县| 永德县| 河曲县| 上蔡县| 安泽县| 汤阴县| 图木舒克市| 南乐县| 漳州市| 安化县| 丘北县| 鄯善县| 铅山县| 张家界市| 宁河县| 和顺县| 武陟县| 炉霍县| 东莞市| 南木林县| 蓝田县| 新津县| 雅江县| 惠州市| 进贤县| 晋江市| 特克斯县| 南川市| 德兴市| 仁怀市| 丹东市| 汤阴县|