簡體   English   中英

是否可以創建支持多個不同微控制器的 PIC 固件二進制文件?

[英]Is it possible to create a PIC firmware binary that supports multiple different microcontrollers?

由於當前芯片短缺,我不得不購買與最初設計規格不同的 PIC 微控制器。

  • 初始:PIC24FJ256GA606
  • 修訂版 1:PIC24FJ512GA606
  • 修訂版 2:PIC24FJ1024GA606

在這種情況下,微控制器屬於同一系列,但具有不同大小的 memory。

最初,創建二進制文件是為了支持多種產品變體,它們都使用這個微控制器(使用硬件引腳來定義產品的類型,從而定義它支持的軟件功能)。 我想繼續使用單個二進制文件,但要能夠支持上面指定的不同微控制器。

我們 flash 在制造過程中使用 PICKIT 4 的微控制器。 在制造過程中,自定義引導加載程序也會閃存到微控制器上,以允許固件更新過程由現場的另一個 PIC 微控制器驅動(它是一個通過 RS-485 連接的分布式系統)。

我使用 MPLAB X IDE 進行開發和構建生產二進制文件。

我想關鍵問題是這是否可能? 如果是這樣,那么我將如何實現創建支持多個處理器的單個二進制文件?

通常單個二進制文件應該只對應特定的 controller。 因為尤其是 Microchip 的微控制器種類繁多。 但正如你在問題中提到的:

在這種情況下,微控制器屬於同一系列,但具有不同大小的 memory。

您可以稍微使用相同的二進制文件,只要您非常小心地 select 硬件。 我的意思是,如果這 3 種不同的型號具有相同的引腳映射,但有些型號較少或有些型號較多,那么您將 select 盡可能使用 I/O 功能的通用對應引腳。 由於這些器件屬於同一系列,因此它們必須具有具有相同端口和引腳編號的通用 IO 引腳。

如果包括內部寄存器在內的這些相似之處足以滿足您系統的功能,您可以為這 3 個或更多設備使用相同的二進制文件,只要您非常小心地選擇正確的硬件並且在不觸及其硬件的情況下不會保留任何功能.

但是對於不屬於同一個系列的其他人來說,很難說同樣的話。 在這種情況下,您可以檢查系統每個功能的硬件相似性。 如果該微提供相同的硬件,那么您可以 go 並首先嘗試看看它是否會編程,然后它會以相同的方式運行。 在確保足夠之后,您也可以在可用型號列表中添加 model。

希望這能給你一個有用的想法。

對於兩個具有兼容二進制文件的微控制器,它們需要滿足以下條件:

  • CPU 內核必須具有相同的指令集架構。 請注意,制造商所說的“代碼兼容”一詞可能僅意味着兩個部件具有相同的 ISA 並且在匯編語言級別上兼容,只要不使用外圍設備或存儲器......
  • In case they have different memory sizes, the part with larger memory must be a superset of the part with smaller memory and they must map memory to the same addresses.
  • 使用的所有硬件外圍設備必須相同,並且使用的任何外圍設備路由寄存器也必須相同。 請注意,相同系列的相同內核但具有不同的 package 和引腳布線可能意味着外圍布線寄存器必須設置不同。
  • 固件內部不能檢查MCU零件號寄存器等,flash編程設備中也不能檢查。

一般來說,這意味着 MCU 必須屬於同一個系列,並且制造商必須保證它們是可更換的。

您很可能在同一 model 的不同溫度規格部件之間以及同一 model 的汽車/非汽車質量部件之間切換,而無需更改代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM