日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > > 電源漫談

在使用Microchip8PIC單片機中,如何使用XC8 編譯器用已知值填充未使用的程序存儲器,而不保持默認的0x3FFF呢?這是一個網友經常問的問題,那么今天我們就此話題展開討論。

這里給大家推薦使用編譯器自帶的--FILL 驅動選項,它可以允許您使用已知數(shù)字值填充未使用的程序內存。

具體而言,您可以在MPLAB® X IDE > XC8 Project Properties > XC8 Linker > Fill Flash Memory 下拉菜單中選擇訪問此選項,然后在填充字段中輸入適當?shù)膮?shù)即可,如圖1所示。

1 填充FLASH空間的選項設置

究其根本,此選項是利用XC8所帶的Hexmate 應用程序工具,來填充未使用的位置,鑒于這個原因,它僅適用于十六進制的HEX 文件處理,它不會填充二進制文件格式的代碼。

圖2 填充FLASH空間的選項實現(xiàn)格式

3 填充FLASH空間的選項示例

上述示例,將未使用FLASH空間以0x3FFF來填充,因此這個結果和默認的未使用空間一致。

4 填充FLASH空間的說明

從圖4說明來看,這個選項主要有幾個參數(shù)值得注意,首先是填充的內容,填充的變化形式,填充的地址范圍。

4中的第一個示例顯示,使用常數(shù)0xBEFF來填充所有未使用FLASH空間。第二個示例顯示,采用以0xBEFF為基準值,逐步加1的形式,來填充未使用FLASH空間。

第三個示例顯示,使用以0xBEFF為基準值,逐步遞減0x10的方式填充未使用FLASH空間。

第四個示例顯示,使用一個重復的常數(shù)序列,來填充整個未使用的程序FLASH空間。這些方式選項的執(zhí)行,都可以在編譯器選項中去設置。

我們以圖1為例,如下方式,去填充所有未使用空間為0x3333這個值,而默認值是0x3FFF.

5 填充后的FLASH MEMORY顯示

可以看出未使用空間被填充為了0x3333,和預期一致。除了填充所有的未使用FLASH空間的形式之外,也可以使用選項去設定僅僅填充部分地址范圍的未使用FLASH空間,如圖6說明。

6 部分FLASH未使用空間填充定義

上述定義可知,使用@unused參數(shù)表示填充所有的未使用FLASH空間,而上圖第二個示例表示,在其中一個地址0x1000處填充為常數(shù) fill_expr,注意這里,也可以填充一個單個地址為某一個常數(shù)。

上述示例3中采用@00xFF表示在0-0xFF地址范圍內填充0xBEFF常數(shù),這就是一個FLASH地址范圍的填充形式。

7 部分未使用地址空間填充為常數(shù)的設置

這里表示從0x5000x600之間的地址空間中的未使用FLASH空間被填充為0x3333.

8 地址范圍內未使用空間填充1

可以看出,在0x500,到0x600FLASH地址范圍內,未使用的空間變?yōu)?/span>0x3333,其中部分空間已經被代碼占用。

9地址范圍內未使用空間填充2

從圖9來看,截止到0x600 Flash地址,未使用空間都被給填充為了0x3333,但是后面的更大的地址處的未使用空間,還是保持為默認的0x3FFF.

另外,值得一提的是,在FLASH MEMORY窗口,也可以右鍵直接更改Hex數(shù)據并進行填充,但是這里并未使用編譯器選項。

10 FLASH MEMORY窗口進行FLASH空間直接填充改寫Hex

11 FLASH MEMORY窗口進行FLASH空間直接填充改寫Hex示例

12 直接對Hex進行填充更改

由上圖12可知,指定范圍內的FLASH空間被直接填充為0x0000,當然還有更多的操作方式,這里就不一一去說明,有興趣的朋友可以去嘗試。

以上介紹了基于PIC16的單片機如何進行未使用的程序空間進行填充期望值的方法,如有更多問題,可以關注公眾號后添加作者微信進行交流。


本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
關閉