sections{
/* allocate program areas: */
.cinit : > flashb page = 0
.pinit : > flashb, page = 0
.text : > flashb page = 0
codestart : > begin page = 0
ramfuncs :>load =flashd, /****定義乙個段在flashd中**/
run=raml0, /****複製到**執行****/
load_start(_ramfuncsloadstart),/**獲取段對應的起始位址*/
load_end(_ramfuncsloadend), /***獲取段對應的結尾位址******/
run_start(_ramfuncsrunstart);/**獲取run的起始位址***/
/**********************
load_start load_end run_start 是能夠生成全域性符合的指令。 生成的全域性符號
決定了裝載位址 執行位址和 段長度
load_start(_ramfuncsloadstart),/**_ramfuncsloadstart 指向到load 起始地點*/
load_end(_ramfuncsloadend), /** _ramfuncsloadend 指向到load 結尾地點******/
run_start(_ramfuncsrunstart ) /***_ramfuncsrunstart 指向到run的起始********/
*/。。。。。。。。。。。。。。。
load_srart load_end 都是讓變數指向load 開頭和結尾 此處我flashd
run_start 則是指向run 對應的起始位址 此處為raml0
對應的位址宣告
extern uint16 ramfuncsloadstart;
extern uint16 ramfuncsloadend;
extern uint16 ramfuncsrunstart;
使用命令 #pragma code_section(函式命,"ramfuncs");
可以把要在ram 執行的函式按排到ramfuncs 段。
在執行函式前 通過下面語句搬運到ram 實現期望的函式在ram執行
memcopy(&ramfuncsloadstart, &ramfuncsloadend, &ramfuncsrunstart); // ramfuncs
DSP Flash燒寫的步驟都有哪些
1.使用通用的flashburn工具實現flash燒寫 將使用者的程式寫入到flash中的操作步驟如下 1 將boot.asm的程式加入到使用者程式中,其位址空間分配為0x00 0x400 2 編寫hex轉換的cmd檔案。3 使用hex6x工具,將out檔案,轉換成為hex的二進位制檔案。4 使用f...
《程式猿的搬磚生活》五 遊戲雜談
說起玩遊戲,有人認為這是玩物喪志,有人認為這是消遣方式,有人 但是我想問一句,現在我們所用到的,都是你在學校學到的嗎?那麼我肯定不是,我是在遊戲裡學 到很多東西。仙劍 把感動詮釋得完美,它教會我們有一種諾言叫承擔,有一種感動叫永遠。軒轅劍 把生命構造得端重,有一種美好叫生命,有一種踐踏叫文明。真三無...
《程式猿的搬磚生活》五 遊戲雜談
說起玩遊戲,有人認為這是玩物喪志,有人認為這是消遣方式,有人 但是我想問一句,現在我們所用到的,都是你在學校學到的嗎?那麼我肯定不是,我是在遊戲裡學 到很多東西。仙劍 把感動詮釋得完美,它教會我們有一種諾言叫承擔,有一種感動叫永遠。軒轅劍 把生命構造得端重,有一種美好叫生命,有一種踐踏叫文明。真三無...