www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Problems mit dem M16C und malloc()


Autor: Torsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich bin gerad dabei, ein Projekt von einem Hitachi H8 auf einen M16C
Controller zu portieren.

Dabei haben die Autoren ganz heftig mit Malloc gearbeitet. Das klappt
auf dem M16 aber nicht ohne weiteres. Sobald ich versuche, mehr als
1500 Byte Speicher anzulegen, gibt malloc nur 0 zurück. Kleinere
Grössen funktionieren aber.
Wo liegt hier der Fehler?
Man kann ja die Speichergrösse sicherlich beeinflussen, haber mit
diesem startup.s34, und den anderen Dateien habe ich mich noch nicht
wirklich auseinander gesetzt.

Bin für jede Hilfe dankbar

Gruss Torsten

Autor: Peter Kasi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du mußt wahrscheinlich den Heapsize vergrößern, schau mal in der
ncrt0.a30 nach.

Gruß
Peter

Autor: Torsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

hmm ich muss glaub ich erwähnen, das ich den IAR Compiler hab. Aber da
gibts ja was ähnliches. Ich erlaube mal das hier zu posten: (Achso,
laut Datenblatt Ist der RAM Adressbereich von 00400 - 07FFF und ROM von
A0000 - FFFFF)

Hier die Linkermap:


// Generated : 02/17/2004 11:09:08 AM
// IAR XLINK Linker command file for Renesas M16C.
-cm16c
-ylmb
// ID code written to ROM memory for the ID Code Check Function
-D_ID_CODE_1=0
-D_ID_CODE_2=0
-D_ID_CODE_3=0
-D_ID_CODE_4=0
-D_ID_CODE_5=0
-D_ID_CODE_6=0
-D_ID_CODE_7=0

// Relocatable "bit" segment (must be in data13 area).
-Z(BIT)BITVARS=2000-FFFF

// =======================
//      DATA13 RAM
// =======================

-Z(NEAR)DATA13_AN=0-1FFF
-Z(NEAR)DATA13_I=400-1FFF
-Z(NEAR)DATA13_Z,DATA13_N

// =======================
//       DATA16 RAM
// =======================

// Set up user stack
-Z(NEAR)CSTACK+400=400-7FFF

// Set up interrupt stack
-Z(NEAR)ISTACK+80


// Near variables
-Z(NEAR)DATA16_I,DATA16_Z,DATA16_N,DATA16_AN

// User defined near DATA segments


// =======================
//       DATA16 ROM
// =======================

// No NEAR ROM segments defined!


// =======================
//     FAR/DATA20 RAM
// =======================

// Far and huge data segments
-Z(FAR)FAR_I,FAR_Z,FAR_N,FAR_AN=400-7FFF
-Z(HUGE)DATA20_I,DATA20_Z,DATA20_N,DATA20_AN

// User defined far & huge DATA segments

// =======================
//     FAR/DATA20 ROM
// =======================

// Constant and initializer segments (in ROM)
-Z(FARCONST)FAR_ID=F0000-FFCFF
-Z(FARCONST)FAR_C=A0000-FFCFF
-Z(HUGECONST)DATA20_C,DATA20_ID,CHECKSUM
-Z(FARCONST)DATA16_ID,DATA13_ID,DIFUNCT

// CODE segments
-Z(HUGECODE)CODE
-Z(HUGECODE)CSTART=D0000-FFCFF
-Z(HUGECODE)TINYFUNC=F0000-FFCFF

// User defined CODE segments

// User defined far & huge CONST segments

// Variable vector table
-Z(CONST)INTVEC=FFD00-FFDFF

// Special page table
-Z(CONST)FLIST=FFE00-FFFDB

// Fixed interrupt vector table
-Z(CONST)INTVEC1=FFFDC-FFFFF

// ========================
// IAR C library formatting
// ========================
-e_small_write=_formatted_write
-e_medium_read=_formatted_read

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau doch in das Handbuch, da steht das drin.
Oder bemüh den Support von IAR.

Autor: Torsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
tja "RTFM" stimmt mal wieder... Da steht das man die heap.c einbinden
soll, und MALLOC_BUFSIZE verändern soll.

Damit funzt es.

Gruss Torsten

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]
  • [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.