?? 00000005.htm
字號(hào):
<?xml version="1.0" encoding="gb2312"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"/><title>大蝦幫忙:如何將ROM中的函數(shù)調(diào)入RAM中運(yùn) turbolinux </title></head><body><center><h1>BBS 水木清華站∶精華區(qū)</h1></center><a name="top"></a>發(fā)信人: scorpio (不再迷茫), 信區(qū): Embedded <br />標(biāo) 題: 大蝦幫忙:如何將ROM中的函數(shù)調(diào)入RAM中運(yùn)行 <br />發(fā)信站: BBS 水木清華站 (Tue Mar 26 16:54:33 2002) <br /> <br />芯片: VZ328 <br />開發(fā)平臺(tái):Metroworks Codewarrior <br /> <br />因?yàn)槌绦虼娣旁贔lash中,當(dāng)要寫Flash的時(shí)候,需要將寫Flash的程序 <br />調(diào)入內(nèi)存中運(yùn)行。根據(jù)CodeWarrior的文檔,可以修改LCF文件來(lái)達(dá)到 <br />ROM to RAM copy的目的。我已經(jīng)做過(guò)的工作如下: <br /> <br />1. 在原來(lái)MEMORY{..} 中加入如下語(yǔ)句: <br />RAMCODE (RX) : ORIGIN = 0x007e0000, LENGTH = 0x10000 <br /> <br />2. 在SECTIONS{..}中加入如下語(yǔ)句: <br /> _ROM_size = _ROM_size + SIZEOF(..reset); <br /> _ROM_address = _ROM_address + SIZEOF(..reset); <br /> _TEMP_address = _TEMP_address + SIZEOF(..reset); <br /> _ramcode_at = _TEMP_address; <br /> <br /> ..ramcode : AT( _ramcode_at ) <br /> { <br /> <br /> _framcode_ROM = _ROM_address; <br /> _framtext = .; <br /> flashasm.c (.text) <br /> . = ALIGN(0x8); <br /> _eramtext = .; <br /> } > RAMCODE <br />其中,flashasm.c中為我想在Ram中調(diào)用的函數(shù)。reset為開始啟動(dòng)時(shí)的代碼 <br />在ramcode后為其它的程序代碼。 <br /> <br />3. 修改..romp段, 在開始加入: <br /> WRITEW(_framcode_ROM); <br /> WRITEW(_framtext); <br /> WRITEW(_framcode_size); <br /> <br />4. 修改棧地址,原先棧地址為 _stack_addr = _fsdata,即數(shù)據(jù)開始地址 <br /> (棧地址是從高到底變化的). 數(shù)據(jù)開始地址為0x7f0000, 因?yàn)槲倚枰?amp;nbsp;<br /> 把一部分程序放在內(nèi)存,所以改為: _stack_addr = _framtext, 即 <br /> 改成了0x7e0000。 <br /> <br />可是編譯后,在xMAP中Memory map中并沒有發(fā)現(xiàn)ramcode的map地址: <br /> 00010000 00000560 ROM <br /> 00010688 00034468 CODE <br /> 00010560 00000128 RAMCODE <br /> 007F0000 00000000 DATA <br /> 00044AF0 00001E38 DATA <br /> 000454A8 00000030 DATA <br />燒到flash中運(yùn)行也死機(jī)。 <br />請(qǐng)各位大蝦給指條明路 <br /> <br />-- <br /> <br />※ 來(lái)源:·BBS 水木清華站 smth.org·[FROM: 166.111.64.227] <br /><a href="00000004.htm">上一篇</a><a href="javascript:history.go(-1)">返回上一頁(yè)</a><a href="index.htm">回到目錄</a><a href="#top">回到頁(yè)首</a><a href="00000006.htm">下一篇</a></h1></center><center><h1>BBS 水木清華站∶精華區(qū)</h1></center></body></html>
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -