本應(yīng)用筆記介紹了將 FIT 或固件集成技術(shù)用于板級(jí)支持包模塊。該文檔描述了概述、特性、配置、API 信息和功能,以及項(xiàng)目設(shè)置和手動(dòng)添加 r_bsp。
概述
在運(yùn)行用戶應(yīng)用程序之前,必須執(zhí)行一系列操作才能正確設(shè)置 MCU。這些操作和操作次數(shù)將根據(jù)所使用的 MCU 而有所不同。常見示例包括:設(shè)置堆棧、初始化內(nèi)存、配置系統(tǒng)時(shí)鐘和設(shè)置端口引腳。無論應(yīng)用程序如何,都需要遵循這些步驟。為了簡化此過程,提供了 Renesas Board Support Package,縮寫為 r_bsp。
在最低級(jí)別,r_bsp 提供了使用戶的 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è)頭文件中,以便于訪問。
許多客戶開始在瑞薩開發(fā)板上進(jìn)行開發(fā),然后過渡到他們自己的定制板。當(dāng)用戶轉(zhuǎn)向他們自己的定制硬件時(shí),強(qiáng)烈建議他們在 r_bsp 內(nèi)創(chuàng)建一個(gè)新的 BSP。通過遵循所提供的 BSP 所使用的相同標(biāo)準(zhǔn)和規(guī)則,用戶可以盡早開始開發(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è)板文件夾中,用戶將找到特定于該板的源文件。還提供了一個(gè)名為 user 的文件夾。該文件夾只是一個(gè)占位符,用于提醒用戶,建議他們創(chuàng)建自己的電路板文件夾。第三個(gè)文件夾是 mcu 文件夾,每個(gè)支持的 MCU 都有一個(gè)文件夾。在這個(gè)包含源代碼的目錄中還有一個(gè)名為 all 的文件夾,它對(duì) r_bsp 中的所有 MCU 是通用的。雖然電路板文件夾具有特定于電路板的源文件,但 mcu 文件夾包含在同一 MCU 組中的 MCU 之間共享的源文件。這意味著,如果用戶有兩個(gè)不同的板,它們都使用 RX63N 的一個(gè)版本,那么每個(gè)板都有自己的板文件夾(即板>>my_board_1 和板>>my_board_2)但兩者將共享相同的 MCU 文件夾(即單片機(jī)>>rx63n)。即使兩個(gè) RX63N MCU 具有不同的封裝或內(nèi)存大小,它們?nèi)詫⒐蚕硐嗤?mcu 文件夾。
文件 platform.h 供用戶選擇他們當(dāng)前的開發(fā)平臺(tái)。h,反過來,從板和 mcu 文件夾中選擇所有正確的頭文件以包含在用戶的項(xiàng)目中。這將在后面的部分中更詳細(xì)地討論。readme.txt 文件是一個(gè)標(biāo)準(zhǔn)文本文件,隨所有 FIT 模塊提供,提供有關(guān) r_bsp 的簡要信息。
全局中斷
RX MCU 上的中斷因復(fù)位而被禁用。PowerON_Reset_PC() 函數(shù)將在調(diào)用用戶應(yīng)用程序之前啟用中斷。
RX 設(shè)備有兩個(gè)向量表:可重定位向量表和固定向量表。顧名思義,可重定位向量表可以位于內(nèi)存中的任何位置,而固定向量表位于內(nèi)存映射頂部的靜態(tài)位置。
可重定位向量表保存外設(shè)中斷向量并由 INTB 寄存器指向。該寄存器在 PowerON_Reset_PC() 函數(shù)中的其余部分之后被初始化。可重定位向量表中的向量由 RX 工具鏈插入。RX 工具鏈通過在用戶代碼中使用“#pragma interrupt”指令來了解用戶的中斷向量。
固定向量表包含異常向量、復(fù)位向量以及一些基于閃存的選項(xiàng)寄存器。固定向量表與所有異常、NMI 中斷、總線錯(cuò)誤和未定義中斷的默認(rèn)中斷處理程序一起在 vecttbl.c 中定義。用戶可以選擇使用 mcu_interrupts.c 中的功能為所有這些向量動(dòng)態(tài)設(shè)置回調(diào)。vecttbl.c 文件還負(fù)責(zé)在適用時(shí)設(shè)置用戶引導(dǎo)重置向量。
固定向量表中的所有向量都在 vecttbl.c 中處理。可重定位向量表中的所有向量都不會(huì)被處理,因?yàn)橛脩魧⒍x這些向量,并且每個(gè)應(yīng)用程序都會(huì)有所不同。這意味著在每個(gè)應(yīng)用程序中都會(huì)有未填充的向量,以防意外觸發(fā)中斷。許多鏈接器支持使用靜態(tài)函數(shù)填充未使用的向量。vecttbl.c 中的 undefined_interrupt_source_isr() 函數(shù)就是為此目的提供的,鼓勵(lì)用戶設(shè)置鏈接器以使用該函數(shù)的地址填充未使用的向量。
編輯:hfy
-
mcu
+關(guān)注
關(guān)注
146文章
17370瀏覽量
352949 -
瑞薩
+關(guān)注
關(guān)注
35文章
22314瀏覽量
86869
發(fā)布評(píng)論請先 登錄
相關(guān)推薦
急需TMS320C6416的板級(jí)支持包bsp/bsl,求助
請問有沒有地方能下載到6455評(píng)估板的板級(jí)支持包的源碼啊?
XPS工具如何快速生成Virtex FPGA板級(jí)支持包
有沒有支持這個(gè)FIT-USB-TO-4-UARTS模塊編譯好的驅(qū)動(dòng)呢
說一下什么是板級(jí)支持包
studio SDK管理器里的芯片支持包和板級(jí)支持包的區(qū)別在哪里?
Linux與VxWorks的板級(jí)支持包開發(fā)的比較與分析
實(shí)時(shí)操作系統(tǒng)中的板級(jí)支持包BSP
車規(guī)級(jí)GNSS模塊 支持GPS GLONASS 北斗 GALIL
如何導(dǎo)出硬件平臺(tái)并啟動(dòng)SDK開發(fā)應(yīng)用程序及板級(jí)支持包
![如何導(dǎo)出硬件平臺(tái)并啟動(dòng)SDK開發(fā)應(yīng)用程序及<b class='flag-5'>板</b><b class='flag-5'>級(jí)</b><b class='flag-5'>支持</b><b class='flag-5'>包</b>](https://file.elecfans.com/web1/M00/DB/A8/o4YBAGAKD0aAMlAFAABH0bt9iUs890.png)
評(píng)論