<p id="jhff9"><mark id="jhff9"></mark></p>

    <ruby id="jhff9"><mark id="jhff9"><progress id="jhff9"></progress></mark></ruby>

    <pre id="jhff9"><b id="jhff9"></b></pre>

    <track id="jhff9"><strike id="jhff9"><b id="jhff9"></b></strike></track>

      <pre id="jhff9"><b id="jhff9"><thead id="jhff9"></thead></b></pre>
          <ruby id="jhff9"><mark id="jhff9"></mark></ruby>

          <ruby id="jhff9"><mark id="jhff9"></mark></ruby>

              久久精品一区二区国产_国产亚洲精品a在线观看app_亚洲国产免费_91精品国产91热久久p 国产经典自拍_一级毛片国产_国产午夜精品不卡观看_国产乱妇无码大片在线观看

              銷售咨詢熱線

              0769-81309319
              網站導航
              技術資料
              當前位置:首頁 > 新聞中心 > 技術資料

              Zynq中使用FreeRTOS的空閑鉤子函數時在SDK中的設置

              時間:2021-09-16 點擊次數:549

                  本文介紹zynq中使用FreeRTOS的空閑鉤子函數時在SDK中的設置和一些說明

                  初玩zynq發現,在zynq中可以運行FreeRTOS,果斷試了下;測試了幾個例子,一切正常,但是在使用空閑鉤子函數時導致無法正常執行。

                  要使用空閑鉤子函數必須將FreeRTOSConfig.h文件中的configUSE_IDLE_HOOK定義為1,當然編譯前已手動將其定義改為1,但是空閑鉤子函數仍然沒有運行。

                  查看源文件沒發現錯誤,無意間再次確認configUSE_IDLE_HOOK是否改為1時,查看FreeRTOSConfig.h文件中configUSE_IDLE_HOOK定義為0了,再次修改,重新編譯運行,不行,再看,configUSE_IDLE_HOOK又定義為0了,嗯,應該是編譯工程時BSP也重新生成了,而默認configUSE_IDLE_HOOK定義為0,所以configUSE_IDLE_HOOK又回到了0。

                  找到原因,進入以下處理過程

                  不成功的處理

                  直接在源文件(包含main的實現文件)頭加上#define configUSE_IDLE_HOOK 1

                  這樣當然不行,在編譯FreeRTOS時configUSE_IDLE_HOOK任為0,這里定義的configUSE_IDLE_HOOK只有在編譯源文件時有用,而源文件中也沒使用這個宏,所以這樣改是不行的。

                  當然將#define configUSE_IDLE_HOOK 1放到包含FreeRTOSConfig.h文件的FreeRTOS.h文件包含#include "FreeRTOS.h"之前也是同樣道理,同樣不行。

                  修改SDK自帶BSP中源文件

                  直接將SDK生成FreeRTOS BSP的源文件修改,這樣看似可行。
              當找到SDK的BSP目錄(E:\Xilinx\SDK\2015.3\data\embeddedsw\ThirdParty\bsp\freertos821_xilinx_v1_0,這里假定vivado安裝目錄為E:\Xilinx)時,搜索發現根本沒有FreeRTOSConfig.h這個文件,所以本方法不可行。
              (后來發現FreeRTOSConfig.h是編譯時才生成的)

                  直接自定義BSP

                  后來在網上找資料,找到官網(個人認為Xilinx官網資料還是挺多的,不像LatTIce實在太少,也可能是我沒找到方法),找到的確有自定義BSP的方法(AR# 63964),但是例子中是自定義stand alone BSP的方法,以類似的方法修改,但是可能由于是FreeRTOS BSP的修改與stand alone有所不同,最后選擇修改后的BSP,每次生成BSP會在執行freertos821_xilinx.tcl出錯,沒有解決,待日后處理,所以本方法還未成功。

                  解決辦法

                  最后,真是,踏破鐵鞋無覓,得來全不費功夫;最后在發現是我多慮了,SDK早已考慮到這些,直接在BSP上右鍵->Board Support Package SetTIngs,可以看到下圖

              Zynq中使用FreeRTOS的空閑鉤子函數時在SDK中的設置

                  直接在這里有設置,直接將use_idle_hook設置為true即可(以下還有關于FreeRTOS更多的設置,如STDIO、心跳鉤子函數等)。

                  真是一個簡單的問題,甚至可以說是不存在的問題,而網上搜索真沒找到類似情況的說明,費了不少時間,這里特此記錄,不成功的處理也可作為以后其它問題處理的備選方法。

                  其它

                  對于使用了隊列的應用要添加#include "queue.h";使用了互斥量的要添加#include "semphr.h"
              要使用xil_printf則要添加#include "xil_printf.h";用了vivado中的宏定義要添加#include "xparameters.h"                                                                                    文章來源:電子發燒友

              友情鏈接:全國互聯網安全管理服務平臺 | 工信和信息化部政務服務平臺 |

              版權所有:Copyright ? 2010-2024云南文山市意德電子科技有限公司(信息部) ?備案號:滇ICP備20006267號

              <p id="jhff9"><mark id="jhff9"></mark></p>

                <ruby id="jhff9"><mark id="jhff9"><progress id="jhff9"></progress></mark></ruby>

                <pre id="jhff9"><b id="jhff9"></b></pre>

                <track id="jhff9"><strike id="jhff9"><b id="jhff9"></b></strike></track>

                  <pre id="jhff9"><b id="jhff9"><thead id="jhff9"></thead></b></pre>
                      <ruby id="jhff9"><mark id="jhff9"></mark></ruby>

                      <ruby id="jhff9"><mark id="jhff9"></mark></ruby>

                          亚洲欧美一区二区三区在线_亚洲国产成人久久综合一区_日本三级一区二区三区_正在播放国产一区 久久精品一区二区国产_国产亚洲精品a在线观看app_亚洲国产免费_91精品国产91热久久p 国产经典自拍_一级毛片国产_国产午夜精品不卡观看_国产乱妇无码大片在线观看