mikrocontroller.net

Forum: FPGA, VHDL & Co. NIOSII GCC4 Exception Handling Codesize


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von R.Straub (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

hat jemand von euch schon den GCC4 Compiler in euren NIOS Projekten 
(Cpp) verwendet?
Ich habe momentan das Problem, dass extrem viel mehr Code (im Vergleich 
zum GCC3) erzeugt wird.
Laut Map-File hängt es mit dem Exception Handling zusammen.
Hier wird kB-weise der Speicher für das unwinding verbraten obwohl keine 
einzige Exception im Programm verwedet wird:
 .text          0x0001cff0     0x26c8 c:/altera/12.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2\libgcc.a(unwind-dw2.o)
                0x0001d074                _Unwind_GetCFA
                0x0001d07c                _Unwind_GetIP
                0x0001d084                _Unwind_GetIPInfo
                0x0001d098                _Unwind_SetIP
                0x0001d0a0                _Unwind_GetLanguageSpecificData
                0x0001d0a8                _Unwind_GetRegionStart
                0x0001d0b0                _Unwind_GetDataRelBase
                0x0001d0b8                _Unwind_GetTextRelBase
                0x0001d0c0                _Unwind_DeleteException
                0x0001d0d8                _Unwind_SetGR
                0x0001d154                _Unwind_GetGR
                0x0001d428                _Unwind_FindEnclosingFunction
                0x0001de38                __frame_state_for
                0x0001efa8                _Unwind_Backtrace
                0x0001f140                _Unwind_RaiseException
                0x0001f3c0                _Unwind_Resume_or_Rethrow
                0x0001f4bc                _Unwind_Resume
                0x0001f5bc                _Unwind_ForcedUnwind
 .text          0x0001f6b8     0x15e0 c:/altera/12.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2\libgcc.a(unwind-dw2-fde.o)
                0x0001f73c                __register_frame_info_bases
                0x0001f774                __register_frame_info
                0x0001f780                __register_frame_info_table_bases
                0x0001f7ac                __register_frame_info_table
                0x00020264                __register_frame_table
                0x00020294                __register_frame
                0x000202dc                __deregister_frame_info_bases
                0x000203b8                __deregister_frame_info
                0x000203bc                __deregister_frame
                0x00020a74                _Unwind_Find_FDE

Ich habe schon wie auf [1] beschrieben versucht das Exception-Handling 
auszuschalten. Leider ohne Erfolg.
Hat jemand von euch schon die gleichen Erfahrungen gemacht und weis eine 
Lösung?
Oder hat sonst jemand eine gute Idee?

Danke und Grüße
Rainer
[1]: http://gcc.gnu.org/onlinedocs/gcc-4.1.2/gcc/Code-Gen-Options.html

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.