|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
發(fā)現(xiàn)CW設(shè)置堆棧大小的問題。 |
| 作者:ddtv 欄目:單片機 |
最近發(fā)現(xiàn)調(diào)用一個包含除法的函數(shù)老是不對,查來查去也沒查明白,反匯編看的迷迷糊糊。 最后發(fā)現(xiàn)參數(shù)都是在堆棧中傳遞的,而那個堆棧的尺寸老是0x30?紤]有可能太小了,試著改成0x40就ok了。 進而發(fā)現(xiàn)改成0x10,甚至是0x00竟然也不報錯,這是cw的缺陷? 另編譯模式選擇small模式時我的ram就不夠用了,可我用tiny模式時還剩下80個字節(jié)啊,是不是定義變量時要指定到0頁,否則第0頁就空著了,這樣才能獲得最大效率和最小的ram使用量? |
| 2樓: | >>參與討論 |
| 作者: 張明峰 于 2007/1/22 13:04:00 發(fā)布:
CW不檢查堆棧大小 CW不檢查堆棧大小,用戶自己看著辦。在prm文件中改變堆棧長度。 在非tiny模式下,變量缺省都被放在0x100以后的空間內(nèi)。若要放到第0頁中,必須特別聲明: #pragma DATA_SEG SHORT MY_ZEROPAGE //direct addressing data segment byte year, month, day, hour, minute, second; |
|
| 3樓: | >>參與討論 |
| 作者: ddtv 于 2007/1/23 11:52:00 發(fā)布:
那么自己怎樣知道設(shè)置多大的堆棧長度呢? 堆棧首先不能非常大,否則用戶可用的RAM空間就非常小了,堆棧當然也不能太小. 那么有沒有辦法知道堆?赡艿淖畲笊疃饶?這個編譯器應(yīng)該能輕松辦到的. 個人實在不好確定大小,也許現(xiàn)在的大小沒問題,但換個環(huán)境和條件堆棧就變大了呢? 另外張工象#pragma等參數(shù)的用法有沒有資料可供下載?有中文的最好了,看help真是不好查找. |
|
| 4樓: | >>參與討論 |
| 作者: 張明峰 于 2007/1/23 17:19:00 發(fā)布:
Help文件都有啊, 在CW安裝目錄下有help。我的電腦里是在: D:\Program Files\FREESCALE\CW08 V5.0\Help\pdf\... |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |