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