Hallo, jetzt habe ich ein ähnliches Problem, ich habe aber bereits eine Vermutung, dennoch möchte ich Euch zu Eurer Meinung fragen: Fehlermeldung lautet: error: can't allocate .cinit (sz: 000004ea page: 0) in HOSARAM (avail: is not in the project "C:\xyz\xyz.pjt" Diese Fehlermeldung erscheint im Output - Fenster beim Linken, genauer gesagt nach der Meldung: [Linking...] "C:\Programme\TI\c2000\cgtools\bin\cl2000" -@"Debug.lkf" <Linking> Dieser Fehler tritt nur auf, wenn ich eine .h Datei einbinden will, also #include "xyz.h". Wenn ich diese eine .h Datei einbinde, und dafür eine andere aus dem Projekt rausschmeisse, geht alles glatt. Es liegt also nicht an der Datei selbst. Sie ist auch im Projektordner. Ich vermute, daß das Projekt zu groß ist. Falls ich eine der beiden .h Dateien weg lasse und erfolgreich compiliere, hat das /Debug-Verzeichnis 183KB. Die (uncompilierte) Datei, die ich einfügen möchte, hat 255Byte. Oder ist es ein ganz anderer Fehler? Gruß, Martin P.S.: Code Composer, mit TMS320F2812-Board, wie gehabt :)
Nur mal so eine Frage, ist das Projekt xyz eigentlich von Dir selbst aufgesetzt? Wenn ja wie hast Du Dir das Linkerfile erstellt?
nein, ist nicht selbst aufgesetzt. Ist das Beispielprogramm "Volume2", welches ich modifiziert habe. An der Linkerdatei habe ich aber (noch) nichts gemacht. Muß ich das denn?
Hallo Martin, wo hast Du das Beispiel her? Kannst Du es mal uploaden, dann kann ich es mir ja mal anschauen.... Michael
Hallo Martin, Deine Vermutung ist richtig. Ich vermute, dass Du aus dem RAM heraus debugst und nicht jedes mal den DSP flasht? Das Projekt ist zu groß und passt nicht mehr in den Teil des RAM, in den der Linker es legen will. Du musst also das Linkerfile anpassen und Teile in andere Bereiche des RAM mappen. Gruß Andreas
@hebel23 Kannst Du mir grob schildern, wie das geht? Bzw. wo ich darüber was herausfinden kann? @Michael Ich habe das Beispielprogramm gerade nicht hier, ich werde es aber hochladen. Meinst Du das Originalprogramm oder das von mir modifizierte (Ist etwas umfangreich!)? Gruß, Martin
Hi! Also die Linkadressen stehen im *.cmd - File (bei Dir wahrscheinlich F2812.cmd). Wenn Du da mal reinschau´st, findest Du MEMORY und SECTIONS - Definitionen. Unter MEMORY werden die Speicherplätze mit Startadresse und Größe deklariert. Unter SECTIONS werden bestimmte Teile Deines Codes bestimmten Speicherplätzen zugewiesen. z.B.: .text : > FLASHA PAGE = 0 bedeutet, dass Dein kompilierter Code in den unter FLASHA deklarierten Speicherbereich gemappt wird. Das wäre der Fall, wenn Du das Programm aus dem Flash starten (und vorher hineinschreiben) willst. Im Debugmodus läuft aber auch der Programmcode aus dem (internen) RAM heraus. In Deinem *.map - File siehst Du anschließend, ob und wo der Linker die Teile hingemappt hat. Sieh Dir die Dateien und auch die Memory-Map im Datenblatt mal genauer an. Das Ganze ist ziemlich kryptisch und erfordert ein bissl Gedult beim Anpassen an das jeweilige Projekt. Ich hab jetzt leider nicht so viel Zeit, um genauer darauf einzugehen. (Heute abend vielleicht...) Gruß Andreas
Mein Projekt heißt HDR, und deshalb heißt die CMD-Datei auch HDRcfg.cmd. Die wurde automatisch erstellt, als ich die HDR.cdb-Datei erstellt und gespeichert habe. Zu Beginn steht da ein Kommentar(in HDRcfg.cmd): /* Do not directly modify this file. It was */ /* generated by the Configuration Tool; any */ /* changes risk being overwritten. */ Nachdem ich mich damit abgefunden habe, daß ich das Programm in den Flash laden und von dort starten muß, habe ich mal mit der Recherche begonnen. Ich habe mit die Memory Map angeschaut und auch die *.map-Datei. Dort fand ich folgendes: MEMORY CONFIGURATION name origin length used attr ---------------------- -------- --------- -------- ---- PAGE 0: OTP 003d7800 00000400 00000000 RWIX FLASH 003d8000 0001fff6 00000000 RWIX H0SARAM 003f8000 00002000 00001b46 RWIX BOOTROM 003ff000 00000fc0 00000000 RWIX PAGE 1: M0SARAM 00000000 00000800 00000480 RWIX PIEVECT 00000d00 00000100 00000100 RWIX L0SARAM 00008000 00002000 00001adf RWIX Ich bin mir nicht 100%ig sicher, aber es scheint mit tatsächlich so, daß beim H0SARAM von 00002000 nun 00001b46 voll sind. Flash ist noch völlig unbenutzt. Nun zu meiner Frage: Wie kann ich das Programm in den Flash laden und von dort starten (im Kommentar in der Datei HDRcfg.cmd steht ja, ich soll diese Datei NICHT ändern). Geht das denn im Code Composer unter DSP/BIOS Config -> HDR.cdb unter "System" -> "MEM Memory Section Manager"? Wenn ich bei diesem "MEM Memory Section Manager" "Properties" auswähle, kann ich sehr viel einstellen. Ich weiß aber weder, was ich da genau tue, noch, worüber ich darüber Infos finden könnte. Die Code Composer Studio Help gibt nicht viel her. Muß ich auch noch einen Jumper umstecken? Ich hoffe, ich konnte mein Problem gut schildern! Grüße, Martin
@Michael Hier ist das Beispielprogramm von TI. Wird in den Tutorials unter "Developing a Simple Program" genauer erklärt. Allerdings muß ich dazu sagen, daß ich nun selbst ein neues Projekt erstellt habe und meine Quelldateien darin eingefügt habe - mit dem gleichen Ergebnis. Die Fehlermeldung ist also nicht von diesem Beispiel abhängig. Gruß, Martin
Hallo Martin, also ich hab hier die Version 2.12 aber bei Integrated Enviroment steht 2.10 (statt bei Dir 2.20). Auf jeden Fall gibt es bei mir kein DSP/Bios Config - Menü und auch kein File mit der Endung *.cdb . Ich hab die Einstellungen im *.cmd-File daher immer per Hand gemacht. Wenn Du das Programm aus dem Flash laufen lassen willst, musst Du den Jumper 7 auf 2-3 (boot from flash) stellen. Lässt sich Dein DSP schon aus CCS flashen oder musst Du auch über den Umweg Sd-Flash gehen? Andreas
Hallo, ich weiß nicht genau wie das geht, das war je meine Frage. Ich kann in diesem Config-Menü irgendwie einen Speicherbereich einstellen, habe aber auch noch dieses Sd-Flash in meinem Windows-Startmenü... Gruß, Martin
@Andreas: Noch eine Frage: Kannst Du nicht im CCS unter File - New - DSP/BIOS Configuration eine solche Configurationsdatei erstellen? Wenn man die neu erstellt und dann speichert, wird bei mir diese *.cmd, *.cdb und noch ein paar andere estellt. Gruß, Martin
Hallo nochmal, es gibt tatsächlich unter New/ einen Eintrag namens DSP/Bios Configuration. Das ist aber inaktiv (grau). Ich meine mich zu erinnern, dass ich, als ich damals mit dem 2812-DSP anfing, gelesen zu haben, dass das in dieser Version noch nicht unterstützt wird. Es waren damals noch nicht mal die richtigen "Serien-DSP´s" sonderd die Prototypen (TMP320F2812) zu kriegen. Desshalb hab´ ich dann mühsam das Linker-Commandfile selber zusammengestrickt. In Deinem Fall kann ich Dir also leider dazu keine Auskunft geben, da ich diesen ominösen Configuration-Dialog nicht kenne. Leider hat TI auch eine sehr eigenwillige Softwarestrategie, so dass ich nicht mal auf die neueste Version (offenbar V2.20) updaten kann. Gruß Andreas
Die neueste Version ist V2.23. Ich habe die Version 2.20.Ich finde aber auf der ganzen Seite keinen Link wo ich das Update bekomme ich werde mich am Montag mal ans Telfon hängen. So kann das ja auch nicht sein....
Hi Michael, Deine Bemühungen werden wohl ohne Erfolg bleiben. Von TI ist es soviel ich weiß nicht vorgesehen, dass man die Software kostenlos updaten kann. Ich kann z.B. nur Patches für genau meine Version (2.12) downloaden und das auch nur ein Jahr lang. Für jede weitere, höhere Version müsste ich bzw. meine Firma etwas bezahlen. Das nennt sich dann "Annual Subscription" und ist wie der Name schon sagt jährlich neu zu bezahlen. Wie gesagt, TI hat eine sehr eigenwillige Softwarestrategie. Eine neuere Version würde Dir aber nichts nützen, da Du ja eigentlich schon die komfortablere Lösung und offenbar einen Editor für das *cmd - File dabei hast. Da wirst Du Dich wohl oder übel mit dem Tool beschäftigen müssen oder das *cmd-File doch per Hand editieren. Andreas
Kann es wirklich war sein, daß es bei TI keinerlei Doku darüber gibt, wie man ein Programm in den Flash laden kann? Das muß doch irgendwo erklärt sein, oder nicht?
Hi Martin, versuch's mal damit "TMX320F281x Flash API". Hat mir aber auch noch nicht wirklick weitergeholfen.... Ich weiß eigentlich auch immer nicht so genau was API jetzt wirklich ist. Hat da jemand eine Idee???? Michael
Naja also ganz so dumm lassen die TI´ler einen dann doch nicht sterben. Suchet und ihr werdet finden...: http://www-k.ext.ti.com/SRVS/CGI-BIN/WEBCGI.EXE/,/?St=214,E=0000000000001413147,K=895,Sxi=9,Case=obj(31718) Das ist die Application Note zum Thema: "Running an Application from Internal Flash Memory on the TMS320F281x DSP" Das sollte doch eigentlich Deine Fragen beantworten... ;o) Andreas
Oops, der Link war wohl doch zu lang. Such mal nach "SPRA958D" unter Knowledge Base...
Hallo zusammen, ich habe die beiden Beispielprogramme (SPRA958D + TMX320F281x Flash API) geöffnet. Ich konnte Sie zwar compilieren, aber beim Übertragen kommt die Fehlermeldung (siehe Anhang). Funktioniert das bei Euch? Habt ihr noch irgendwo etwas umgestellt (z.B. Jumper,..)? Vielleicht ist der Prozessor schon hinüber? Gruß, Martin
Hallo Martin, ich habe gerade das Beispiel "example_BIOS_flash.pjt" ausprobiert. Bei mir funktioniert das einwandfrei. Zu Deiner Fehlermeldung habe ich leider keine Idee. Was ich noch aber gar nicht hinbekomme ist, das Beispiel auf meinen Code zu portieren. Das ist mir ein Rätsel. Vielleicht sollte ich das Beispiel aushöhlen und meinen Code da reinstecken. Aber am Ende habe ich dann wieder keine Ahnung :-(.... Noch eine andere Frage. Ich benutze das *.cdb nur zum Einstellen der Interrupts und der zum Einstellen der Memory Sections. Aber ich benutze es nicht zur Erstellung eines BIOS. Ist das jetzt ein DSP/BIOS oder ein nonDSP/BIOS. Michael
Hallo Martin, kann sein das Du nicht den On-Chip Flash Programmer benutzt. Ist unter Tools zu finden.... Michael
@Michael: Hast Du das Beispiel "example_BIOS_flash.pjt" im CCS compiliert und übertragen? Oder hast Du es im CCS compiliert und mit dem SD-Flash-Tool übertragen? Gruß, Martin
Hallo Martin, wenn Du auf's Flash was laden willst, dann mußt Du immer den "On-Chip Flash Programmer" benutzen, ansonsten bekommst Du Fehlermeldungen. Beim Compilieren ist kein Unterschied. Da nimmst Du einfach immer nur die "Build" bwz. "Rebuild All" Option. Michael
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.