久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3692|回復: 0
打印 上一主題 下一主題
收起左側

一個跟ST單片機啟動文件有關的外設中斷無響應話題

[復制鏈接]
跳轉到指定樓層
樓主
ID:98618 發表于 2016-1-9 16:13 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
本文作者是:Miler Shao
一般來講,微處理器的用戶程序運行前總有個啟動文件或類似的文件先行啟動,完成微處理器從復位過渡到運行大家耳熟能詳的main()函數所需要的基本環境的搭建和準備,具體內容跟開發環境及芯片類型而有所差異。STMCU也不例外,不論STM8還是STM32系列的MCU的程序運行都有相應的啟動文件。

關于STM32 MCU的啟動文件,以匯編指令完成。網絡上很多關于啟動文件的講解,有些還講得比較透徹,有興趣的話可以搜索閱讀。STM32的啟動文件的基本功能就是實施有關堆和棧的配載、系統時鐘的初始配置、中斷矢量的入口配置、各個中斷服務程序的入口地址加載、復位程序的執行、以及到MAIN()函數的跳轉等。



很多時候,當我們按部就班的建立項目工程的時候,那個后綴為S的啟動文件可能被無視,貌似可有可無。其實不然,它的作用很重要、很關鍵。

STM32開發應用過程中,碰到外設中斷不響應的因素可能很多。比方有關外設的時鐘沒開啟、外設時鐘選擇錯誤、NVIC中斷矢量沒有正確配置等。這里主要分享下跟STM32啟動文件有關的外設中斷不響應話題。


曾經有人利用STM32F1系列某芯片開發產品,好像是用到SPI外設中斷,調試時發現怎么也進不了中斷。反復檢查相關配置和中斷函數代碼就是發現不了問題。后來查看其代碼,發現配置沒有問題,唯一就發現中斷函數名跟啟動文件里中斷矢量表里加載的函數名不一致。比方矢量表里的加載的是SPI1_IRQHandler,而他自己則另取了一個函數名,比如SPI1_INT或其它名字,反正不是SPI1_IRQHandler。這里不是不可以調整,調整的話,你新的函數名要與中斷矢量表里聲明的函數名一致,否則中斷發生時時CPU是跳不進你定義的函數代碼里的。


另外一個跟啟動文件有關的問題,多發生在STM32同一系列不同型號間的移植的時候。比方STM32F1STM32F4系列又各分好幾個子系列,各個子系列又對應不同的啟動文件。雖然子系列間的管腳及程序代碼兼容性極高,但它們的外設往往存在一些多寡的差異,導致相關外設的中斷矢量定義在各自的啟動文件里也會有所不同。有時盡管用戶程序代碼寫得美輪美奐,結果發現個別外設中斷就是不響應,檢查代碼配置及語法很難發現問題。最后發現問題就出在前面提到的啟動文件常開發者忽視,沒有及時根據芯片型號變動而調整。

有一次某廣州的工程師用STM32F1做研發頗有些時日,算是熟手了。因為產品的原因,他經常選用STM32F1系列不同芯片做產品開發。有一次他發現UART4沒法響應中斷,芯片手冊也明確告知是有UART4的,而UART1/2又好好的,翻來覆去找不到原因。后來幾經痛苦折騰,突然大徹大悟想到到了啟動文件。原來他在從低容量的STM32F1芯片移植升級到更大容量、更多外設的芯片時,忘記了做啟動文件的同步更新。因為有些外設的中斷向量在低容量芯片的啟動文件里根本就沒有。比如在STM32F1的低、中容量芯片的啟動文件里就沒有相關UART4/5中斷矢量的定義。前不久有位深圳工程師在做STM32項目移植時好像也碰到這個問題。


當然,我這里只是舉個例而已,同一STM32系列不同型號間的外設差異并不僅僅體現在UART。類似問題,在拿別人的程序模板基礎上自行調整并做MCU型號往高端方向移植時尤其容易碰到。因為我們往往會把注意力主要集中在應用代碼的更新升級和開發調試上,而忘記相關啟動文件的同步調整。

好,先就聊到這里,權當提醒。愿各位STM32開發者尤其初學者,在調試開發過程中少走彎路,并期望從類似的分享中有更多的感悟或收獲。

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂1 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久久一区二区三区四区 | 亚洲天堂精品久久 | 久久久久一区二区三区四区 | 日本不卡视频在线播放 | 午夜电影一区二区 | 久久久新视频 | 精品欧美乱码久久久久久 | 久久久.com | 精区3d动漫一品二品精区 | 国产91丝袜在线播放 | 久久亚洲欧美日韩精品专区 | 国产激情视频在线免费观看 | 欧美日韩一区二区在线观看 | 日韩综合| 国产午夜精品久久久 | 欧美午夜精品 | 好姑娘影视在线观看高清 | 国产精品国产三级国产aⅴ原创 | 91色综合| 国产内谢| 国产日韩av一区二区 | 激情在线视频网站 | 怡红院怡春院一级毛片 | 日本视频一区二区三区 | 中文字幕不卡在线88 | 国产精品久久久久久吹潮 | 国产亚洲www| 中国黄色毛片视频 | 精品国产一区二区久久 | 日韩国产中文字幕 | 成人一区二区三区视频 | 亚洲理论在线观看电影 | 亚洲乱码一区二区 | 国产偷录视频叫床高潮对白 | 最近中文字幕第一页 | 7777奇米影视 | 亚洲狠狠| 国产视频在线观看一区二区三区 | 91av导航 | 国产亚洲一区二区精品 | 亚洲精品在线视频 |