Re: Link Error 是否是超過容量所造成,因為無法編譯成功,請求協助?
|
||||
---|---|---|---|---|
新會員
|
這次看到公告才想到要告知
不好意思上個月 經過多次的測試 發現 PIC24F 系列的 const 資料 (PIC24H PIC30F PIC33F 應該也會有此問題) 容量如果超過 32KB Flash ROM 容量 (實際資料量僅原來 Flash ROM 容量的 3 分之 2 即 21.x KB) 就會發生 Link Error 的情況 就算有沒有關閉 PSV 都ㄧ樣 且亦有關閉中斷中的 auto psv 功能 而且 const 的資料量越大 實際浪費的資料空間就越多 比方我 const 的資料量約 16KB 但實際佔 Flash ROM 的空間卻是 24KB 如果我的資料量超過 22KB 實際佔 Flash ROM 的空間超過 32KB 就會出現 Link Error 的情形 因為我碰 Microchip 的 MCU 時間也不是很長 所以不知道是否是我哪裡設定錯誤所造成的 若有錯誤煩請告知 在下才疏學淺一時之間也想不到什麼更好的方法 只好將 const 的資料大量的移往外部的 24LCxxx 將 PIC24FJ128GA008 內 const 的資料維持在 32KB 以下 才 Link 成功\r 以上方式僅供參考 如果是我哪些設定沒設定好所造成的 煩請告知 以糾正我的錯誤
發表於: 2007/11/1 9:50
|
|||
《佛說人有二十難》
貧窮布施難 豪貴學道難 棄命必死難 得睹佛經難 生值佛世難 忍色忍欲難 見好不求難 被辱不瞋難 有勢不臨難 觸事無心難 廣學博究難 除滅我慢難 不輕未學難 心行平等難 |
||||
|
Re: Microchip
|
||||
---|---|---|---|---|
新會員
|
可能是你們量不是很夠吧
我之前的那一家公司TI的MSP14X殺到2.7X美金 ARM7殺到2.8美金,去年是5.8美金 PIC的2.0美金左右,但是PIC的型號我不知道 所以量才是重點 有量什麼都便宜
發表於: 2007/10/5 8:32
|
|||
《佛說人有二十難》
貧窮布施難 豪貴學道難 棄命必死難 得睹佛經難 生值佛世難 忍色忍欲難 見好不求難 被辱不瞋難 有勢不臨難 觸事無心難 廣學博究難 除滅我慢難 不輕未學難 心行平等難 |
||||
|
Re: Link Error 是否是超過容量所造成,因為無法編譯成功,請求協助?
|
||||
---|---|---|---|---|
新會員
|
不好意思
忘記提供相關晶片資訊 所使用的晶片是PIC24FJ128GA008 多有打擾,煩請見諒
發表於: 2007/9/21 15:32
|
|||
|
Link Error 是否是超過容量所造成,因為無法編譯成功,請求協助?
|
||||
---|---|---|---|---|
新會員
|
Program Memory Usage
section address length (PC units) length (bytes) (dec) ------- ------- ----------------- -------------------- .reset 0 0x4 0x6 (6) .ivt 0x4 0xfc 0x17a (378) .aivt 0x104 0xfc 0x17a (378) .text 0x200 0xd852 0x1447b (83067) .const 0xda52 0x5570 0x8028 (32808) .dinit 0x12fc2 0xc8 0x12c (300) .init 0x1308a 0x80 0xc0 (192) .isr 0x1310a 0x2 0x3 (3) __CONFIG2 0x157fc 0x2 0x3 (3) __CONFIG1 0x157fe 0x2 0x3 (3) Total program memory used (bytes): 0x1c992 (117138) 88% Data Memory Usage section address alignment gaps total length (dec) ------- ------- -------------- ------------------- .nbss 0x800 0 0x2ec (748) .nbss 0xaec 0 0xec (236) .ndata 0xbd8 0 0x78 (120) .ndata 0xc50 0 0x20 (32) .nbss 0xc70 0 0x1e (30) .nbss 0xc8e 0 0x1e (30) .nbss 0xcac 0 0x18 (24) .ndata 0xcc4 0 0x14 (20) .nbss 0xcd8 0 0x12 (18) .nbss 0xcea 0 0xa (10) .nbss 0xcf4 0 0xa (10) .ndata 0xcfe 0 0x4 (4) .nbss 0xd02 0 0x2 (2) Total data memory used (bytes): 0x504 (1284) 15% c:\program files\microchip\mplab c30\bin\pic30-coff-ld.exe: Error: Not enough contiguous memory for section .const. D:\Product\SetupMode.o(.text+0x13e4): In function `FUN_Parameter_Adjust_INC_Range': D:\Product\SetupMode.C:1365: Link Error: relocation truncated to fit: WORD CST_uchr_4KHz D:\Product\SetupMode.o(.text+0x1418):D:\Product\SetupMode.C:1378: Link Error: relocation truncated to fit: WORD CST_uchr_Hz .... .... .... 以上一大串相同類型錯誤 Link step failed. BUILD FAILED: Fri Sep 21 15:01:29 2007 導致程式無法編譯完成
發表於: 2007/9/21 15:16
|
|||
《佛說人有二十難》
貧窮布施難 豪貴學道難 棄命必死難 得睹佛經難 生值佛世難 忍色忍欲難 見好不求難 被辱不瞋難 有勢不臨難 觸事無心難 廣學博究難 除滅我慢難 不輕未學難 心行平等難 |
||||
|
Re: 請問如何在C18中宣告一個不會被RESET初始化的變數
|
||||
---|---|---|---|---|
新會員
|
是不是
直接更改18f452i.lkr 檔案內的 c018iz.o 改成 c018i.o 或是 將18f452i.lkr 換成18f452.lkr 謝謝唷
發表於: 2007/4/27 16:56
|
|||
《佛說人有二十難》
貧窮布施難 豪貴學道難 棄命必死難 得睹佛經難 生值佛世難 忍色忍欲難 見好不求難 被辱不瞋難 有勢不臨難 觸事無心難 廣學博究難 除滅我慢難 不輕未學難 心行平等難 |
||||
|
請問如何在C18中宣告一個不會被RESET初始化的變數
|
||||
---|---|---|---|---|
新會員
|
請問如何在C18中宣告一個不會被RESET初始化的變數
說明: 比方所宣告的這一個變數是 G_S_uchr_Var_1 在某個程式區段 G_S_uchr_Var_1 = 0xA5; 但是 PIC18FXXX 裝置 RESET 後 G_S_uchr_Var_1 必須仍維持 0xA5 的數值 以上 請要這個 G_S_uchr_Var_1 要如何宣告 謝謝!
發表於: 2007/4/24 10:15
|
|||
《佛說人有二十難》
貧窮布施難 豪貴學道難 棄命必死難 得睹佛經難 生值佛世難 忍色忍欲難 見好不求難 被辱不瞋難 有勢不臨難 觸事無心難 廣學博究難 除滅我慢難 不輕未學難 心行平等難 |
||||
|
Re: C18 可以宣告字串陣列嗎??
|
||||
---|---|---|---|---|
新會員
|
const rom char *MultiLanguage[5]=
{ " DF IS ENGLISH ", " DF IS ITALIAN ", " DF IS FRENCH ", " DF IS GERMAN ", " DF IS HOLLAND ", }; 這個語法是可行的,我以前的電控儀表案子有用過,不過在Microchip上是第一次使用 我有在MPLAB C18中編譯過 OK 的 其他的你自行延伸
發表於: 2007/3/23 23:50
|
|||
|