|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
關(guān)于數(shù)組定義的問題,請大家出謀劃策,謝謝 |
| 作者:jaky80000 欄目:ARM技術(shù) |
因為要做顯示用的字庫,所以就用數(shù)組來做了,之前做的是用51做的,直接用了個關(guān)鍵字code就可以把字庫的數(shù)組直接定義到了FLASH區(qū)去,可是現(xiàn)在改用lpc2214后,就不能用這個關(guān)鍵字了,請問如何定義這些數(shù)組到FLASH去? 我試用了這樣定義const uint8 me[32]={};可是會出現(xiàn)在DATA區(qū),而不是在FLASH里,請教大家有何方法可以定義的,我想一定有方法可以做,只是我這個新手還不會,在這里請教大家的幫忙,不勝感激 |
| 2樓: | >>參與討論 |
| 作者: twentyone 于 2006/11/23 13:18:00 發(fā)布:
RE 一個基本的問題:在產(chǎn)品里面,你所有的程序都是在FLASH的。至于運行的時候怎樣,那要看你是怎么考慮的了。如果你用的是ADS的話,建議看看ADS的LINKER GUIDE.相信你會收獲很大的。 |
|
| 3樓: | >>參與討論 |
| 作者: yos 于 2006/11/23 13:43:00 發(fā)布:
兩種方法可以達到 1.直接把字庫燒錄到FLASH的固定地址,一般是最后面,然后在程序中定義常指針指向該地址. int * const p=0x10000; 2.如21所說,了解你所使用的開發(fā)環(huán)境的linker guide,讓linker完成. |
|
| 4樓: | >>參與討論 |
| 作者: jaky80000 于 2006/11/23 14:37:00 發(fā)布:
謝謝2,3樓的回答 3樓:我考慮過了把字庫做為單獨的一個區(qū),直接燒到FLASH里去,但是太麻煩了。 2樓:我是想說,如果定義為const的話,那他就會被編譯為data部分,會占我CPU的RAM空間,因為字庫很大,必須放在FLASH里去,不然我的RAM就超出了,我這樣解釋對不對,望指教,初次接觸ARM |
|
| 5樓: | >>參與討論 |
| 作者: twentyone 于 2006/11/24 5:19:00 發(fā)布:
RE DATA部分也分為RO部分和RW部分的。如果你把字庫定義為CONST的,那就屬于RO部分,并不一定需要占用RAM的。 |
|
| 6樓: | >>參與討論 |
| 作者: jaky80000 于 2006/11/27 10:07:00 發(fā)布:
回5樓的 5樓的同仁,你有這樣用過嗎,是否真的不占用我的RAM,在燒寫程序時,會燒到FLASH里去嗎,我還在求救中。 我板子已經(jīng)發(fā)出去做了,還沒有回來,所以沒有硬件調(diào)試,還不知道能不能用,希望大家能給我一個建議。 如果不能這么用,請教還有什么方法可以定義到FLASH去的,且能很簡單就能調(diào)用。謝謝 |
|
| 7樓: | >>參與討論 |
| 作者: computer00 于 2006/11/27 10:49:00 發(fā)布:
如果你用的是keil CARM編譯器,直接用const,它就到FLASH了…… |
|
| 8樓: | >>參與討論 |
| 作者: jaky80000 于 2006/11/27 14:52:00 發(fā)布:
我用的是ADS1。2,用const不可以嗎? 如果不可以,還有什么方法可以定啊,分散加載? |
|
| 9樓: | >>參與討論 |
| 作者: computer00 于 2006/11/27 15:33:00 發(fā)布:
我只知道在ADS有辦法實現(xiàn),但具體如何,我就不清楚拉。 好象是要用分散加載吧。 |
|
| 10樓: | >>參與討論 |
| 作者: 農(nóng)民講習所 于 2006/11/27 15:46:00 發(fā)布:
程序放在RAM運行,CONST就在RAM中。 如果在FLASH中運行,當然在FLASH中。 如果想程序在RAM運行,字庫在FLASH中,就單獨燒字庫到固定地址?梢宰约簩憘小軟件將BIN文件和字庫文件連接起來形成新的BIN文件。 |
|
| 11樓: | >>參與討論 |
| 作者: jaky80000 于 2006/11/27 16:38:00 發(fā)布:
謝謝9樓,10樓的回答 我想ADS也是肯定可以的,只是我不知道怎么用,我試了下用分散家載文件出來,然后在分散文件里修改,好象也是編譯在DATA里,還有警告錯誤。 to 10樓: 我的要求很簡單的,就是我把所有的程序都燒進去后,字庫要放在FLASH區(qū)去,且在燒寫時也不要分開燒寫,跟平常燒寫一樣,這樣可以嗎?我舉個例子:在C51里,我可以定義為 uchar code me[32]={};然后編譯后就直接在FLASH里了,燒寫時也沒有特殊的要求就可以了,我想用ADS也做到象這樣就可以了,能嗎? 等待你們的回答,謝謝! |
|
| 12樓: | >>參與討論 |
| 作者: xplore 于 2006/11/27 16:45:00 發(fā)布:
你的程序在哪里運行的? const 的位置是和代碼同一個區(qū)域的, 如果有bootloader一類的程序把你的程序裝到ram里了, 那么 const也回裝到哪里. 如果你的程序就是在FLASH里運行的, 那么const也在FLASH里, 不會裝到ram里. 樓上講習所說得對, 樓主還沒把問題說清楚 |
|
| 13樓: | >>參與討論 |
| 作者: jaky80000 于 2006/11/27 18:53:00 發(fā)布:
好的,我明白了 謝謝這么的樓的回答。 我是要做成產(chǎn)品的,所以最終一定是在FLASH里運行的,謝謝了。因為我太清楚它的區(qū)域分配。 我暫時明白了,如果上機運行時碰到了問題再來請教。 再次多謝以上樓的幫助!謝謝! |
|
| 14樓: | >>參與討論 |
| 作者: jaky80000 于 2006/11/28 8:44:00 發(fā)布:
computer00,你是不是那個圈圈啊,我看過 我看過你寫的51操作系統(tǒng),真是厲害啊,有空向你討教下,可以幫我吧,呵呵。。。謝謝! |
|
| 15樓: | >>參與討論 |
| 作者: awey 于 2006/11/28 8:50:00 發(fā)布:
呵呵,00和圈圈是同一公司的兩個品牌 就像飄柔和海飛絲…… |
|
| 16樓: | >>參與討論 |
| 作者: jaky80000 于 2006/11/28 9:09:00 發(fā)布:
??啊。。我。。 我只看到了個叫做“51圈圈操作系統(tǒng)”,不是圈圈寫的嗎?迷糊了 |
|
| 17樓: | >>參與討論 |
| 作者: computer00 于 2006/11/28 11:14:00 發(fā)布:
在你的分散加載文件中添加如下內(nèi)容 ROM_DATA 0x******** { me.o(+RO) } 其中0x********是你要定位的FLASH地址。 |
|
| 18樓: | >>參與討論 |
| 作者: jaky80000 于 2006/11/28 15:07:00 發(fā)布:
這個我也加過了,好象不行的 |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |