性无码一区二区三区在线观看,少妇被爽到高潮在线观看,午夜精品一区二区三区,无码中文字幕人妻在线一区二区三区,无码精品国产一区二区三区免费

Westbrook
認(rèn)證:VIP會(huì)員
所在專(zhuān)題目錄 查看專(zhuān)題
dsPIC33 BootLoader(3)-構(gòu)建中斷重映射表
dsPIC33 BootLoader(4)-基于MCC配置Boot區(qū)
dsPIC33 BootLoader(5)-基于MCC生成應(yīng)用程序
Bootloader演示
dsPIC33 Bootloader(6) -開(kāi)發(fā)時(shí)需要考慮的一些關(guān)鍵問(wèn)題
dsPIC33 BootLoader(7)-修改鏈接描述文件GLD
作者動(dòng)態(tài) 更多
10分鐘教你快速完成數(shù)字電源的閉環(huán)控制
2022-04-02 17:26
數(shù)字電源學(xué)習(xí)板演示
2022-02-19 13:36
手把手教你學(xué)數(shù)字電源系列視頻(22)- 數(shù)字控制的軟件流程
2022-02-19 13:28
手把手教你學(xué)數(shù)字電源系列視頻(21)- 設(shè)計(jì)數(shù)字補(bǔ)償器(LDE執(zhí)行)
2022-02-19 13:28
手把手教你學(xué)數(shù)字電源系列視頻(20)- 設(shè)計(jì)數(shù)字補(bǔ)償器(AB系數(shù)計(jì)算)
2022-02-19 13:27

dsPIC33 Bootloader(6) -開(kāi)發(fā)時(shí)需要考慮的一些關(guān)鍵問(wèn)題

在利用MCC開(kāi)發(fā)Bootloader和Application時(shí)需要注意一些關(guān)鍵問(wèn)題。

Bootloader部分

1)Bootloader最大空間-Bootloader能分配的最大空間由目標(biāo)Application和Flash的大小決定。在Bootloader區(qū)還應(yīng)提供額外的備用閃存大小,以允許在項(xiàng)目的整個(gè)生命周期內(nèi)增加Bootloader的大小。如果Bootloader的大小需要增加,它將影響所有現(xiàn)有的Application項(xiàng)目。所以在開(kāi)發(fā)初期,一定要留充足的Flash空間大小,避免后續(xù)空間不足導(dǎo)致更改的內(nèi)容過(guò)多。

2)應(yīng)用程序確認(rèn)方式-驗(yàn)證Application的方法是什么? MCC生成的示例代碼將檢查代碼的第一個(gè)地址是否有效。雖然這是有效的,但它的覆蓋范圍相對(duì)較低。開(kāi)發(fā)者可能想要實(shí)現(xiàn)CRC檢查例程。 HEXMATE提供了不同的工具來(lái)幫助計(jì)算十六進(jìn)制文件中數(shù)據(jù)的校驗(yàn)和。(關(guān)于如何驗(yàn)證后續(xù)會(huì)單獨(dú)開(kāi)篇介紹)

3)中斷選擇-Bootloader開(kāi)發(fā)者還需要使Application端的所有開(kāi)發(fā)人員都同意將轉(zhuǎn)發(fā)到特定處理程序和默認(rèn)處理程序的中斷列表。

4)配置字-Bootloader開(kāi)發(fā)者需要確保Application的所有開(kāi)發(fā)人員都進(jìn)行相同的配置。在使用Bootloader下載代碼之前,請(qǐng)通過(guò)在Application項(xiàng)目上使用MCC重新驗(yàn)證Bootloader與Application之間的配置位是否匹配,這一點(diǎn)非常重要。

5)Boot區(qū)選項(xiàng)-Bootlaoder開(kāi)發(fā)者需要為任何選項(xiàng)(如引導(dǎo)選項(xiàng)或指示器選項(xiàng))創(chuàng)建最終代碼。此外,如果設(shè)備的任何外設(shè)均已通過(guò)其重置設(shè)置進(jìn)行了修改,則需要對(duì)相應(yīng)的Application進(jìn)行修改,因?yàn)樗麄兛赡苄枰谂渲闷渫庠O(shè)時(shí)解決這些差異。


Application部分

在理想的情況下,可以在不考慮Bootloader如何工作的情況下完成Application的開(kāi)發(fā),并且對(duì)于大多數(shù)問(wèn)題,可以獨(dú)立地開(kāi)發(fā)兩者。但是,由于它們共存于同一芯片上,并且Bootloader是在Application之前設(shè)置的,因此兩者之間存在依賴(lài)性。無(wú)法避免交互的關(guān)鍵區(qū)域是共享外設(shè),內(nèi)存映射,中斷和其他區(qū)域的配置。

1)共享資源-共享資源的配置是需要解決的主要問(wèn)題之一。例如,考慮如果Bootloader和Application都使用UART,但它們以不同的方式使用UART,會(huì)發(fā)生什么情況。在Application開(kāi)發(fā)期間,由于Application固件不使用Bootloader,它們始終會(huì)從復(fù)位狀態(tài)配置UART,因此,它們僅需根據(jù)初始系統(tǒng)復(fù)位值來(lái)修改UART寄存器。但是,如果Bootloader在運(yùn)行時(shí)且在跳轉(zhuǎn)到Application代碼之前配置UART,則UART將不再具有與沒(méi)有Bootloader時(shí)相同的初始值,并且如果不解決這些差異,則Application將使用UART可能會(huì)在此時(shí)失敗。因此,對(duì)于共享資源,Application代碼需要知道Bootloader如何使用外設(shè)以及Bootloader使用的設(shè)置和這些設(shè)置對(duì)Application使用的影響。

2)中斷-雖然Bootloader和Application之間的中斷不是“共享的”,但由于Application中斷向量確實(shí)位于Bootloader的閃存地址空間中,因此應(yīng)用程序需要與Bootloader合作,以使所有中斷都使用正確的方式跳轉(zhuǎn)至Application方法。 

3)配置位-Bootloader和Application之間的配置位必須相同是非常重要的。Application配置位與Bootloader的配置位匹配非常重要,以至于當(dāng)MCC提取Bootloader的配置時(shí),它會(huì)驗(yàn)證它們是否相同,如果不一致,則MCC將顯示差異。原因很簡(jiǎn)單,配置位僅在運(yùn)行Bootloader固件之前在設(shè)備復(fù)位時(shí)讀取。這些配置位中的部分將控制時(shí)鐘和其他設(shè)備特性。如果這些與Application設(shè)置不匹配,則該Application需要一個(gè)特定的時(shí)鐘;如果Bootloader具有不同的設(shè)置,則Application代碼將失敗。

聲明:本內(nèi)容為作者獨(dú)立觀點(diǎn),不代表電子星球立場(chǎng)。未經(jīng)允許不得轉(zhuǎn)載。授權(quán)事宜與稿件投訴,請(qǐng)聯(lián)系:editor@netbroad.com
覺(jué)得內(nèi)容不錯(cuò)的朋友,別忘了一鍵三連哦!
贊 3
收藏 2
關(guān)注 844
成為作者 賺取收益
全部留言
0/200
成為第一個(gè)和作者交流的人吧