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