zynq FreeRTOS 不能進中斷

2021-09-11 01:20:15 字數 709 閱讀 1461

在freertos的main()函式裡初始化裝置,不能收到中斷。

freertos在 void vtaskstartscheduler( void )裡呼叫 configsetup_tick_interrupt(), 也就是void freertos_setuptickinterrupt( void )。void freertos_setuptickinterrupt( void )在檔案portzynqultrascale.c裡實現,會初始化mpsoc的中斷控制器。

所以在vtaskstartscheduler()之前,freertos的中斷沒有使能,不能響應中斷。

如果在vtaskstartscheduler()之前初始化中斷,檢測不到中斷是正常的。

把xilinx的standalone的例子加入freertos時,應該去掉xscugic_cfginitialize(), xil_exceptionregisterhandler(),xil_exceptionenable()等gic層次的操作函式,只保留 xscugic_connect()和xscugic_enableintr()等裝置層次的操作函式。否則gic被重複初始化,可能導致freertos工作異常。裝置的初始化,也最好加在乙個執行緒裡,而不是freertos的main()函式裡。

總結:無論使用dma中斷還是gpio中斷,我都遇到過進不了中斷,原因就是在freertos的vtaskstartscheduler之前初始化中斷,改為新建執行緒後初始化即可。

左轉彎待轉區,什麼時候能進,什麼時候不能進?

其實,不僅新手駕駛員不了解左轉彎待轉區的功能,甚至連很多老司機都未必搞得清這個區域該如何使用 這個區域是幹什麼用的?什麼時候可以進入這個區域?什麼時候又不能進入?以上這些疑問,本文都將為大家一一解答。說到左轉彎待轉區,除了新手司機以外,其實很多開車很多年的老車主,都不一定弄得清左轉彎待轉區該怎麼使用...

Mac不能進入休眠狀態 怎麼解決

首先,讓我們開啟 活動監視器 您可以在 應用程式 實用程式 資料夾中找到該應用程式,也可以使用 spotlight 單擊選單欄中的 放大鏡 圖示,或按command space。彈出搜尋欄時,鍵入 活動監視器 然後單擊 返回 當 活動監視器 開啟時,單擊 能耗 選項卡。在 能耗 選項卡中,您將看到乙...

哪些人不能進入核心團隊

組建核心團隊,首要就是選人。那麼,我們的核心團隊成員中,哪些人不能用?根據我的經驗,歸納為以下幾類 第一,自私者不用 任何時候只考慮自己得失的和進退的人,可能是最先背叛你的人。曾經有乙個專案經理,在分專案獎金時,恨不得自己全拿走。沒辦法最後只能公司再拿出部分資金來補發給專案成員。後來這廝果然不堪重用...