99久久全国免费观看_国产一区二区三区四区五区VM_久久www人成免费看片中文_国产高清在线a视频大全_深夜福利www_日韩一级成人av

Westbrook
認證:VIP會員
所在專題目錄 查看專題
dsPIC33 BootLoader(1)-簡介
dsPIC33 BootLoader(2)-Flash程序存儲空間
dsPIC33 BootLoader(3)-構建中斷重映射表
dsPIC33 BootLoader(4)-基于MCC配置Boot區
dsPIC33 BootLoader(5)-基于MCC生成應用程序
Bootloader演示
作者動態 更多
10分鐘教你快速完成數字電源的閉環控制
2022-04-02 17:26
數字電源學習板演示
2022-02-19 13:36
手把手教你學數字電源系列視頻(22)- 數字控制的軟件流程
2022-02-19 13:28
手把手教你學數字電源系列視頻(21)- 設計數字補償器(LDE執行)
2022-02-19 13:28
手把手教你學數字電源系列視頻(20)- 設計數字補償器(AB系數計算)
2022-02-19 13:27

dsPIC33 BootLoader(4)-基于MCC配置Boot區

前面了解了一些Flash結構和中斷重映射之后,現在我們來用MPLAB X IDE自帶插件MCC生成Boot代碼。

打開MPLAB X IDE開發環境,點擊Tools->Embeded ->MPLAB Code Configurator,打開MCC插件,“System Module”設置系統時鐘和仿真口,根據需求自行選擇。在“Device Resources”下面的Libraries找到16-bit Bootloader,點擊“16-bit Bootloader”前面的“+”,添加到"Project Resources"。


Bootloader Settings

(1)設置通信方式(UART1)

前面有提到過,目前暫時只提供UART通信,后續會提供I2C/CAN的通信方式,在這里我們選擇UART1,點擊它之后會自動的彈出UART1外設的設置,采用默認的波特率或者自己選擇都可以。在這里我設置38400,配置完之后在"Pin Manager"里面配置TX和RX端口,將U1RX配置為input,U1TX配置為output。

(2)分配Flash空間和中斷重映射表

下圖是配置Bootloader地址界面。

Bootloader End Address

此字段允許用戶定義引導加載程序的最大大小,包括地址0x0和0x100處的中斷表,實際代碼從地址0x200開始。 Bootloader程序的大小必須是DSC閃存頁面大小的倍數,具體取決于DSC型號,通常為512或1024。 應用程序代碼的開始將放置在Bootloader結束之后的位置。 有關確定Bootloader大小的更多信息,請參見前面篇章介紹的Flash內存空間結構。

例如這里給Bootloader分配2頁,所以選擇Bootloader結束地址為0x001800,在這里一定要是0x800的倍數,如果不是則會報錯。

Application Section Range Addresses

這些字段顯示用戶應用程序代碼的計算出的開始和結束地址,該地址將始終緊隨引Bootloader結束地址之后,且兩者之間沒有空格。 結束地址將是物理閃存的倒數第二頁。 最后一頁包含設備配置字。 Bootloader將不會修改此頁面。

那么Application的開始地址就是0x1800,由于最后一頁是配置字,所以結束地址為0x2B7FE。

Remapped Interrupt Vector Address

此字段顯示計算出的用戶的地址重新映射中斷向量表的起始地址。 這里選擇中斷向量表的重映射地址從0x1A00開始。

Enable/Disable Bootloader Command

MCC提供了在Bootloader中提供啟用或禁用4個引導程序命令生成的功能。啟用后,將添加基本代碼以在引導程序中執行命令。禁用后,命令將被完全刪除,如果嘗試執行這些命令,將導致“命令不支持”響應。

Enable RESET command:允許bootloader命令發出設備重置信息。這樣,Bootloader在下載完命令后即可重置設備。某些情況下可能不希望啟用此操作,而只允許開機復位。

Enable READ command:允許Bootloader和外部Bootloader應用程序讀取用戶代碼的內容。這可能會對某些用戶造成安全風險。

Enable CHECKSUM command:允許Bootloader和外部Bootloader應用程序對用戶代碼執行校驗和。這可能會對某些用戶造成安全風險。


Bootloader Verification

選擇用于驗證應用程序二進制文件的方法,后續會對改部分內容進行單獨說明,在這里我們選擇Not Blank這一選項。


Interrupt Vetor Table Remapping

remap_to_application-將中斷直接跳轉至用戶應用程序。 跳轉的每個中斷將在用戶重映射表中需要2條GOTO指令,因此每條占用6個字節的程序存儲器。 對于以硬件實現的所有中斷,這是最安全的選擇。但是這種成本高,需要的內存空間大。

keep_in_bootloader-此選項會將中斷保留在引導程序中。 如果定義了中斷功能,它將僅作用于該功能。 如果未定義,它將跳轉到默認中斷處理函數。

remap_to_application_default-將中斷直接跳轉到用戶應用程序的默認中斷處理程序,而不是指定的唯一中斷向量。 該選項對于應用程序不希望使用的中斷很有用。 由于通過remap_to_application選項跳轉的每個中斷都占用2個指令字,因此跳轉所有可能的中斷的成本可能很高。 使用此選項跳轉的中斷不會占用任何其他代碼空間來進行跳轉。 由于多個中斷將被跳轉到同一向量,因此用戶代碼必須檢查觸發了哪個中斷以進行相應的處理。

作為示例,此處采用默認的配置,后續會針對不用的配置進行單獨說明,比如在Boot區產生中斷。


進行完上述的配置,點擊“Generate”產生代碼,如下:

為了驗證Boot區的程序執行,增加一個LED閃爍的代碼, 在main.c里面增加。

同時在boot_demo.c文件RunBootLoader()函數里面進行調用。

編譯OK后將整個代碼燒錄到MCU里面,會發現LED再進行閃爍,說明程序運行成功。

在Bootloader程序中加入按鍵的操做,當MCU上電或者復位后如果按鍵有效,則會進入bootloader程序運行,否則會進入application程序運行。設置bootloader程序運行時的閃爍頻率和application運行的不一致,以此來判斷在哪個區間運行程序。

至此,采用MCC配置的Bootloader程序產生完成,接下來是進行Application的配置。

聲明:本內容為作者獨立觀點,不代表電子星球立場。未經允許不得轉載。授權事宜與稿件投訴,請聯系:editor@netbroad.com
覺得內容不錯的朋友,別忘了一鍵三連哦!
贊 3
收藏 4
關注 851
成為作者 賺取收益
全部留言
0/200
  • dy-wt1XAWRX 2023-03-22 17:32
    你好,麻煩問一下,我將此處按鍵改成定時器,但是上位機下載APP程序時會失敗,求指導?
    回復
  • 王超的小站 2020-11-22 08:36
    跟大姥學習了
    回復
主站蜘蛛池模板: 在线观看免费黄色小视频 | 色婷婷在线精品国自产拍 | 日韩一区二区精品葵司在线 | 在线观看a视频 | 九一网站在线观看 | 成人影院www在线观看 | 亚洲精品无码久久久久久久 | 成在人线AV无码免费高潮喷水 | 亚洲理论av | 99久久久国产 | 不卡av中文字幕手机看 | 久草在线小说 | 国产电视伦理怡红院在线观看 | 欧美高清视频 | 久久中文字幕精品 | 国产精品久久久久久久久大全 | 91看大片 | 久操超碰 | 九九婷婷| 四虎首页 | 91伊人| 中文精品一区二区三区四区 | 自拍偷在线精品自拍偷无码专区 | 五月天国产成人av免费观看 | 国产激情无码视频在线播放性色 | 日日操日日爽 | 大地资源在线观看官网第三页 | 久久久青青草原 | 国产欧美日本一区二区三区 | 永久黄网站色视频免费 | 铜铜铜铜铜铜铜铜好大无打码 | xxx.在线观看 | 国内精品久久久久久久果冻传媒 | 中日韩亚洲人成无码网站 | 久久免费在线 | 无码专区在线观看韩国 | 特大黄色片 | 玩弄少妇肉体到高潮动态图 | 国产无套中出学生姝 | 美国精品一区二区 | 天堂AV无码大芭蕉伊人AV孕妇 |