CCS-C error - #opt9

Nya'ri Viktor office at flexelec.hu
Sat Jul 16 13:38:03 CEST 2005


Sziasztok!

Adódott egy (számomra) érdekes jelenség:

CCSC-ben irok egy progit, PIC18F452, #opt9 van beállítva.
A progi szépen befordul, a mérleg:
                ROM used: 19750 bytes (60%)
                          Largest free fragment is 13014
                RAM used: 751 (49%) at main() level
                          811 (53%) worst case
                Stack:    8 worst case (4 in main + 4 for interrupts)

Tehát van még bőven RAM is, ROM is.
Akarok definiálni egy újabb int16 változót (ráadásul lokális, tehát nem 
is foglalna új helyet), és a program már nem fordul be. (de semmi egyéb 
változtatás a programban az előzőekhez képest!!!)

Az error log:
----------------------------------------------------------------------
Error[300]   C:\ccs\cpu.c 461 : More info:   Access violation at address 
014A9D9E in module 'PCH.DLL'. Read of address 022E801A
Error[44]   C:\ccs\cpu.c 461 : Internal Error - Contact CCS  OUTPUT FILE O
----------------------------------------------------------------------

Mi a franc ez???
#opt8 és #opt7 esetén is ugyanez a jelenség; viszont #opt6-tal már 
megint befordul, szépen, hiba nélkül. A mérleg viszont:
                ROM used: 25026 bytes (76%)
                          Largest free fragment is 7738
                RAM used: 751 (49%) at main() level
                          811 (53%) worst case
                Stack:    8 worst case (4 in main + 4 for interrupts)

Szal #opt9 és #opt6 között 16% ROM a különbség; nem rossz!

De mi lehet az egész hátterében, amiért #opt9-el nem tudok tovább menni, 
#opt6-tal meg vigan beforditja?
Mik ezek az optimizációs szintek? Ez valami C szabvány, vagy a CCS-nek 
saját belső szabványa?

V.




More information about the Elektro mailing list