ccs編譯生成的out格式檔案不能直接用於flash燒寫
。在ti公司給出的技術文件中,首先將out檔案利用其hex工具轉換為hex格式檔案,然後利用flash燒寫工具將hex格式映像檔案寫入到片外flash中。
實現在flash儲存器燒寫程式一般有以下三種方法:
使用通用燒寫器燒寫需要將記憶體映像轉換為二進位制或十六進製制格式的檔案,而且要求flash器件是可插拔封裝的。這將導致器件的體積較大,給使用者的設計帶來不便。
二、是通過開發商提供的專門軟體工具
合眾達電子seed-vpm642開發板,在最新版本例程中提供了專用的燒寫軟體seedconverttool.exe;
三、是通過燒寫工程。
下面主要介紹第三種方法。
實現bootloader自引導功能,除了需要生成可執行檔案(.out),還需要進行如下步驟:
1、合理配置原工程檔案(.pjt):需要新增乙個
二次引導表
.asm檔案(做搬移時一些初始化和跳轉工作)
。原工程中
,需要修改
.cmd檔案
,為bootloader保留空間。
2、將新增了.asm和修改cmd後重新生成的.out檔案轉化為.hex檔案,這時需要通過轉換工具hex6x.exe
。在執行轉換工具
hex6x.exe
之前,需要修改
轉換.cmd檔案(這個.cmd檔案與
原工程檔案中.cmd完全不同,
轉換.cmd
檔案是為了指明flash的屬性(大小,資料寬度,起始位址和產生檔名)以實現轉換.out檔案為flash相容的.hex檔案,不能混淆)。
3、最後通過flashburn燒寫工程將
生成的.out
檔案寫入flash。
介紹下燒錄中用到的檔案的作用:
1、二次引導表的作用:
對於c6000系列來說,開機加電以後,系統會自動載入flash的1kb的**搬入內部ram的0x0開始的位址空間,並從0x0處開始執行程式。通常情況下,使用者應用程式的大小都會超過這個限制。所以,必須做二次引導才能實現載入。即需要在外部flash的前1kb範圍內預先存放一小段程式,待片上bootloader工具把此段**搬移入內部並開始執行後,用這段**實現將flash中剩餘的使用者應用程式搬移入內部ram中。此段**可以被稱作乙個簡單的二級bootloader
要實現二次引導,必須得增加乙個二次引導程式,該程式必須小於1k,用於對使用者程式的載入,一般用組合語言實現。
主要功能是:分別載入使用者主程式的cinit段和text段,完成後跳轉至使用者主程式的入口位址開始執行。
這裡要注意的是使用者主程式與二次引導程式在編譯的時候是作為乙個整體工程進行編譯的,由cmd檔案來控制兩個程式分別占用的記憶體空間,然後通過燒寫程式將這乙個混合編譯好的程式寫入flash中,即可實現flash的自啟動過程。
2、燒寫.out檔案:負責對flash的操作,比如flash的擦除、讀、寫等。這裡主要看個人板子上flash的型號,因為不同型號的flash,它們的操作命令不一樣。
根據不同的
flash
型號對燒寫工程進行修改,然後重新編譯生成.out檔案。
3、hex6x.exe:將原工程生成的.out檔案轉換為二進位制檔案的工具,這樣燒寫工程就可以將.out檔案以二進位制方式燒進flash中。
4、燒寫工程:
以ccs為基礎,通過執行**程式,
生成.out檔案,將使用者程式寫入flash中。
5、轉換.cmd檔案:指明flash屬性(大小,資料寬度,起始位址和產生檔名),按照flash要求實現將.out檔案到二進位制檔案的轉換。
具體步驟:
1。原程式中新增二次引導表.asm檔案,修改.cmd檔案中的memory和section部分(dsp/bios環境中直接通過配置cdb或者tcf檔案中的system,>mem,>isram即可;非dsp/bios在cmd檔案中新增乙個名為boot的section,位置為0x000,長度為0x400),在連線**器環境下編譯生成可執行的.out格式的coff檔案。
2。使用hex6x.exe工具,將工程檔案生成的.out檔案轉換成為hex的ascii格式的二進位制檔案。
a.編寫乙個轉換.cmd檔案用於設定hex6x.exe的引數
如果例程中存在,則可用記事本開啟如下:
-a
-memwidth 8
-boot
-bootorg 0x90000400
-bootsection .boot_load 0x90000000
roms
b.生成二進位制檔案:
將三個檔案.out、hex6x.exe和.cmd以及.bat複製到特定資料夾下。雙擊convert.bat。
二、改寫燒寫工程,這個ccs工程編譯而成的檔案主要是對flash的操作,其作用相當於乙個搬運工具,將hex檔案由pc搬入flash中。這裡要注意自己的ccs版本和flash的型號,編譯完成會得到乙個.out檔案。
三、開啟開發板上電,啟動ccs軟體,載入gel檔案並連線(connect)硬體**器。將通過燒寫工程生成的.out檔案load到板子上,完畢後拔出**器,關電源重啟即可成功實現燒寫。
C6000中C語言的程式設計及優化
1.對資料型別的考慮 在編寫c語言程式時,要認真考慮資料型別的尺寸。c6000編譯器對每種資料型別都確認了乙個尺寸,其分配形式如下 基於每種資料型別的尺寸,在編寫c語言的時候應遵循下述規則 2.編譯c語言程式 1 使用關鍵字restrict來標明乙個指標是指向乙個特定物件的唯一的指標。2 聯合使用 ...
Flash遊戲開發系列一 遊戲中的敵人 1
對於目前的 flash 來說,開發一些像模像樣的遊戲並不是什麼奇怪的事情了。我這裡所涉及到的內容和開發遊戲有關,但是都是一些比較基本的知識。如果您是遊戲開發方面的高手,那麼完全可以忽略我這裡所描述的內容。我的計畫是要做一系列的教程,這是其中乙個系列。遊戲是乙個互動作品,簡單說,就是通過使用者的行為,...
(五)建築物多邊形化簡系列 最小外接矩形的獲取
最小外接矩形問題是在給出乙個多邊形 或一群點 求出面積最小且外接多邊形的矩形的問題。這個問題看起來並不難,但是具體實現並不簡單。除了呼叫現有的公開庫之外,這裡給出一種簡單且易理解的方法。演算法的主要思想是 1 先實現多邊形的簡單外接矩形的演算法。簡單外接矩形是指邊平行於x軸或y軸的外接矩形。簡單外接...