Nochmals aber richtig: Probleme beim Pic-Programmieren!

Jul 03, 2003 4 Replies

Hy Leute! Da ich viele fehler beim ersten Posten gemacht habe. Mach ich es nochmal aber richtig!



Problemstellung:



----------------- Ich will einen PIC vom Typ 16F74 in C programmieren und verwende dafür den Compiler HI-Tech. Ich bekomme komische Fehlermeldungen die ich nicht richtig deuten kann. z.B.:



5 errors, 0 warnings from HLINK.EXE

Can't find 0x82 words for psect rbss_0 in segment BANK0 (error) Can't find 0x4 words for psect rdata_0 in segment BANK0 (error) Can't find 0x7 words for psect temp in segment BANK0 (error) usw.



Im Programm verwende ich Felder um 3 x 1 Byte zu erzeugen, dass zum Poti geschickt werden muss, nach jedem Byte muss ich auf ein ACK vom Poti warten. Muss aber auch jedes einzelne Bit ändern können. ==> meiner Meinung nach gute Lösung.



Nun meine Frage:



-------------------- Wodurch kann dieser Fehler beim Linker entstehen, oder hat schon jemand dieses Problem gehabt? Solltet Ihr den Code wollen, dann bitte anfragen per Mail.



Danke für eure Hilfe und ich hoffe, dass ich diesmal alles richtig gemacht habe.



MfG Wuki


"Robert Wukitsevits" schrieb:

Ich kenne den Compiler/Linker nicht, aber das klingt mir, wie zu viel Speicher (RAM) alloziert. Da er von Bänken spricht, ggf. mußt Du Deinen Speicherbedarf da irgendwie aufteilen auf mehrere...

Jörg Wunsch "Verwende Perl. Shell will man können, dann aber nicht verwenden." Kristian Köhntopp, de.comp.os.unix.misc

"Robert Wukitsevits" schrieb:

Hallo!

Vermutlich schaltest Du die Bank nicht richtig um. Ohne Quellcode kann man aber dazu nicht viel sagen. Schon mal auf der HI-Tech-Seite nachgesehen, ob es zu den Fehlermeldungen Docus gibt? Bei meinem CCS C-Compiler war sowas dabei.

Gruß Jürgen

--------------------------------------------------------- meine Auktionen: http://members.ebay.de/aboutme/do1pjk/ ---------------------------------------------------------

Danke für den Tip! Habe unter microchip.com in den FAQ etwas darüber gefunden. Standartmässig werden alle Variablen in die Bank0 gelegt (Stack, usw) ist auch darin gespeichert und daher sehr schnell voll. Nun hab ich manuell die Arrays in die Bank1 gelegt und es klappte. Danke, der Tip hat mir sehr geholfen!

MfG Wuki

"Juergen Klein" schrieb im Newsbeitrag news: snipped-for-privacy@4ax.com...

den

richtig

Meinung

per

gemacht

Sieht so aus, als ob der Linker keinen Platz mehr findet :D

Probier mal einige Variablen mit der Anweisung 'bank1' auf eine andere Bank zu platzieren. Bzw. auch mal testweise einige (große) Variablen auskommentieren.

z.b. bank1 unsigned char test;

Das einzige was mir etwas spanisch vorkommt, ist dass die Fehler alle auf einmal auftreten. Normalerweise 'wächst' ein Programm ja, und man kompiliert alle paar Zeilen mal um zu sehen ob eh noch alles in Ordnung ist was man gerade gemacht hat...

HTH,

- Marcus Roses are Red, Violets are blue, I am schizophrenic, And so am I!

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required