dsp flash 程式搬運到ram

2021-09-25 09:14:58 字數 1384 閱讀 7689

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...

《程式猿的搬磚生活》五 遊戲雜談

說起玩遊戲,有人認為這是玩物喪志,有人認為這是消遣方式,有人 但是我想問一句,現在我們所用到的,都是你在學校學到的嗎?那麼我肯定不是,我是在遊戲裡學 到很多東西。仙劍 把感動詮釋得完美,它教會我們有一種諾言叫承擔,有一種感動叫永遠。軒轅劍 把生命構造得端重,有一種美好叫生命,有一種踐踏叫文明。真三無...

《程式猿的搬磚生活》五 遊戲雜談

說起玩遊戲,有人認為這是玩物喪志,有人認為這是消遣方式,有人 但是我想問一句,現在我們所用到的,都是你在學校學到的嗎?那麼我肯定不是,我是在遊戲裡學 到很多東西。仙劍 把感動詮釋得完美,它教會我們有一種諾言叫承擔,有一種感動叫永遠。軒轅劍 把生命構造得端重,有一種美好叫生命,有一種踐踏叫文明。真三無...