本應用筆記介紹了將 FIT 或固件集成技術用于板級支持包模塊。該文檔描述了概述、特性、配置、API 信息和功能,以及項目設置和手動添加 r_bsp。
概述
在運行用戶應用程序之前,必須執行一系列操作才能正確設置 MCU。這些操作和操作次數將根據所使用的 MCU 而有所不同。常見示例包括:設置堆棧、初始化內存、配置系統時鐘和設置端口引腳。無論應用程序如何,都需要遵循這些步驟。為了簡化此過程,提供了 Renesas Board Support Package,縮寫為 r_bsp。
在最低級別,r_bsp 提供了使用戶的 MCU 從復位到其應用程序的 main() 函數啟動所需的一切。r_bsp 還提供許多應用程序所需的通用功能。這方面的示例包括異常回調和啟用或禁用中斷的函數。
雖然每個應用程序在休息后都需要處理相同的步驟,但這并不意味著設置將相同。根據應用的不同,堆棧大小會有所不同,所使用的時鐘也會有所不同。所有 r_bsp 配置選項都包含在一個頭文件中,以便于訪問。
許多客戶開始在瑞薩開發板上進行開發,然后過渡到他們自己的定制板。當用戶轉向他們自己的定制硬件時,強烈建議他們在 r_bsp 內創建一個新的 BSP。通過遵循所提供的 BSP 所使用的相同標準和規則,用戶可以盡早開始開發,因為他們知道他們的應用程序代碼將很容易轉移到他們的目標板上。
文件結構
r_bsp 文件結構如下圖 1 所示。在根 r_bsp 文件夾下有 3 個文件夾和 2 個文件。第一個文件夾名為 doc,包含 r_bsp 文檔。第二個文件夾,每個文件夾一個,支持的板。在每個板文件夾中,用戶將找到特定于該板的源文件。還提供了一個名為 user 的文件夾。該文件夾只是一個占位符,用于提醒用戶,建議他們創建自己的電路板文件夾。第三個文件夾是 mcu 文件夾,每個支持的 MCU 都有一個文件夾。在這個包含源代碼的目錄中還有一個名為 all 的文件夾,它對 r_bsp 中的所有 MCU 是通用的。雖然電路板文件夾具有特定于電路板的源文件,但 mcu 文件夾包含在同一 MCU 組中的 MCU 之間共享的源文件。這意味著,如果用戶有兩個不同的板,它們都使用 RX63N 的一個版本,那么每個板都有自己的板文件夾(即板>>my_board_1 和板>>my_board_2)但兩者將共享相同的 MCU 文件夾(即單片機>>rx63n)。即使兩個 RX63N MCU 具有不同的封裝或內存大小,它們仍將共享相同的 mcu 文件夾。
文件 platform.h 供用戶選擇他們當前的開發平臺。h,反過來,從板和 mcu 文件夾中選擇所有正確的頭文件以包含在用戶的項目中。這將在后面的部分中更詳細地討論。readme.txt 文件是一個標準文本文件,隨所有 FIT 模塊提供,提供有關 r_bsp 的簡要信息。
全局中斷
RX MCU 上的中斷因復位而被禁用。PowerON_Reset_PC() 函數將在調用用戶應用程序之前啟用中斷。
RX 設備有兩個向量表:可重定位向量表和固定向量表。顧名思義,可重定位向量表可以位于內存中的任何位置,而固定向量表位于內存映射頂部的靜態位置。
可重定位向量表保存外設中斷向量并由 INTB 寄存器指向。該寄存器在 PowerON_Reset_PC() 函數中的其余部分之后被初始化。可重定位向量表中的向量由 RX 工具鏈插入。RX 工具鏈通過在用戶代碼中使用“#pragma interrupt”指令來了解用戶的中斷向量。
固定向量表包含異常向量、復位向量以及一些基于閃存的選項寄存器。固定向量表與所有異常、NMI 中斷、總線錯誤和未定義中斷的默認中斷處理程序一起在 vecttbl.c 中定義。用戶可以選擇使用 mcu_interrupts.c 中的功能為所有這些向量動態設置回調。vecttbl.c 文件還負責在適用時設置用戶引導重置向量。
固定向量表中的所有向量都在 vecttbl.c 中處理。可重定位向量表中的所有向量都不會被處理,因為用戶將定義這些向量,并且每個應用程序都會有所不同。這意味著在每個應用程序中都會有未填充的向量,以防意外觸發中斷。許多鏈接器支持使用靜態函數填充未使用的向量。vecttbl.c 中的 undefined_interrupt_source_isr() 函數就是為此目的提供的,鼓勵用戶設置鏈接器以使用該函數的地址填充未使用的向量。
編輯:hfy
-
mcu
+關注
關注
146文章
17316瀏覽量
352246 -
瑞薩
+關注
關注
35文章
22310瀏覽量
86615
發布評論請先 登錄
相關推薦
評論