當(dāng)我們?cè)陂_發(fā)過(guò)程中用到MDK下載程序的時(shí)候可能都知道,在下載程序之前需要都在Debug設(shè)置的Flash Download子選項(xiàng)卡選擇編程算法。大多數(shù)時(shí)候,我們只要安裝了芯片包之后,就可以直接得到對(duì)應(yīng)的編程算法,并不需要我們?nèi)バ薷乃5牵?dāng)我們是一個(gè)芯片包的開發(fā)者,或者我們有獨(dú)特的下載需求(比如在程序里加入一些校驗(yàn)信息),這個(gè)時(shí)候我們就需要去了解它了!
編程算法其實(shí)就是一段程序,主要功能就是擦除相應(yīng)的內(nèi)存塊,并將我們的程序?qū)懭氲较鄳?yīng)的內(nèi)存區(qū)域上去。在點(diǎn)擊下載按鈕的時(shí)候,這段程序會(huì)被先下載到RAM上(RAM for Algorithm上的設(shè)置),然后才會(huì)通過(guò)它,將用戶寫的程序?qū)懭氲街付ǖ膬?nèi)存區(qū)域內(nèi)。
怎么去實(shí)現(xiàn)一個(gè)自己的編程算法?首先我們找到自己的MDK的安裝路徑,進(jìn)入到ARMFlash文件夾下。這里有個(gè)編程算法的工程模板,復(fù)制這個(gè)工程到你的工程文件夾下,重命名你自己的想要的名字。
打開工程,里面主要有兩個(gè)文件 FlashPrg.c 和 FlashDev.c:
FlashDev.c主要實(shí)現(xiàn)了一個(gè)設(shè)備相關(guān)的結(jié)構(gòu)體(根據(jù)自己的Flash情況去實(shí)現(xiàn))
比如STM32F103實(shí)現(xiàn)如下:
FlashPrg.c實(shí)現(xiàn)了幾個(gè)Flash編程相關(guān)的函數(shù):
根據(jù)自己的需要去實(shí)現(xiàn),從上面我們就可以看出,下載程序的時(shí)候就是調(diào)用了上面的幾個(gè)函數(shù),跟我們自己寫Flash沒(méi)有太大的區(qū)別。那么程序都編程完成之后,怎么生成FLM文件呢?我們先編譯工程,完成之后你去看你的工程輸出目錄,這個(gè)時(shí)候你就已經(jīng)可以找到FLM后綴的文件了,這個(gè)就是我們自己的編程算法,把它復(fù)制到 ‘ MDK安裝路徑 ’ARMFlash下面就可以了,在選項(xiàng)卡里選擇我們自己的編程算法就可以使用了。但是為什么我們自己的工程就生成不了FLM文件呢?工程中的.axf文件跟.FLM文件是一樣的,把.axf后綴改為.FLM即可。
責(zé)任編輯:haq
-
芯片
+關(guān)注
關(guān)注
453文章
50406瀏覽量
421845 -
FlaSh
+關(guān)注
關(guān)注
10文章
1621瀏覽量
147754 -
PLM
+關(guān)注
關(guān)注
2文章
113瀏覽量
20842
原文標(biāo)題:燒寫算法FLM文件如何實(shí)現(xiàn)呢?
文章出處:【微信號(hào):gh_e7f294a514ca,微信公眾號(hào):?jiǎn)纹瑱C(jī)匠人】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論