Hallo, ich habe eine Frage zum STM32F7xx. Dieser besitzt die Möglichkeit, Code aus dem Flash über sein ITCM Interface auszuführen. Dafür muss natürlich das Programm entsprechend gelinkt werden. Meine Frage ist nun, wie flasht man das elf File dann in den uC? Der Flash ist laut Datenblatt nicht über das ITCM Interface beschreibbar. Er muss über einen anderen Adressbereich über den "normalen" Bus beschrieben werden. Meine Frage ist nun, ob die Flashtools von STLink und JLink automatisch erkennen, dass sie das an eine andere Adresse schreiben müssen, als später darauf zugegriffen wird? In den Linkerskripten, die mir vorliegen wurden nämlich die Lade und Zugriffsadressen nicht getrennt, so wie man es zum Beispiel bei initialisiertem RAM tut. Vielen Dank
Habe ich auch noch nicht benutzt, denke aber hier ist alles erforderliche dabei: http://www.st.com/content/st_com/en/products/embedded-software/mcus-embedded-software/stm32-embedded-software/stm32cube-expansion-software/x-cube-lpdemo-f7.html
Ich wollte das X-CUBE-LPDEMO-F7 herunterladen, klappt aber nicht. Schon das zweite Mal das keine email kommt. Hat noch jemand Probleme oder liegt das an meiner temporären email Adresse? Vor 2 Tagen hatte ich schon mal das Problem.
pegel schrieb: > Ich wollte das X-CUBE-LPDEMO-F7 herunterladen, klappt aber nicht. > Schon das zweite Mal das keine email kommt. > Hat noch jemand Probleme oder liegt das an meiner temporären email > Adresse? > Vor 2 Tagen hatte ich schon mal das Problem. Hat bei mir auch ewig gedauert. ST entwickelt sich da langsam in eine unangenehme Richtung. Ich bin immernoch am grübeln, wie man diesen Flash programmiert...
Bei mir ist noch nichts angekommen. Das Nächste wäre: "For more details about the embedded software, refer to the readme file inside the embedded software package." aus http://www.st.com/content/ccc/resource/technical/document/application_note/35/d9/ab/96/de/f2/48/42/DM00219305.pdf/files/DM00219305.pdf/jcr:content/translations/en.DM00219305.pdf
pegel schrieb: > Das Nächste wäre: > "For more details about the embedded software, refer to the readme file > inside the embedded software package." Mir geht es hier weniger um die Doku von ST. Mich interessiert, wie ich den Programmieradapter dazu bewegen kann den Code, der auf die ITCM Adresse gelinkt ist, in den Flash zu schreiben. Ich möchte Wissen, ob bspw. der JLink automatisch erkennt, um welche Adresse es sich dabei handelt und das auf den Flash umbiegt, oder ob man im Linkerscript die VMA und LMA trennen muss.
Schon klar. Aber manchmal muss man sich einlesen. In der pdf oben, könnte Kapitel 2.2.2 interessant sein.
pegel schrieb: > Schon klar. > Aber manchmal muss man sich einlesen. > In der pdf oben, könnte Kapitel 2.2.2 interessant sein. Ist es eben nicht. Es zeigt, was man anklicken muss, aber nicht, was passiert. Das es zwei Linkereinstellungen gibt, habe ich auch gesehen. Abllerdings ist mir nicht klar, wie das Programm geladen wird, da die Adresse nicht schreibbar ist.
Dann wird es vielleicht indirekt wie bei ext. Flash gemacht? Da auch eine SW4STM32 Version dabei ist, würde ich in den openocd Konfigurationen suchen. Weiß es aber nicht genau, die email ist immer noch nicht da. Für heute gebe ich auf.
pegel schrieb: > Dann wird es vielleicht indirekt wie bei ext. Flash gemacht? > Da auch eine SW4STM32 Version dabei ist, würde ich in den openocd > Konfigurationen suchen. Weiß es aber nicht genau, die email ist immer > noch nicht da. > Für heute gebe ich auf. Ich habe die Note von STM gelesen:
1 | @Notes |
2 | 1- For the SW4STM32 toolchain the application runs only with Flash_AXI configuration |
3 | |
4 | 2- In order to load the Flash_AXI configuration, you must follow the instructions below : |
5 | - Open SW4STM32 toolchain |
6 | - Rebuild all files |
7 | - Open STM32 ST-Link Utility V3.7, click on "External Loader" from the bar menu then check "N25Q128A_STM32F746G-DISCO" box |
8 | - Connect the STM32746G-Discovery board to PC with USB cable through CN14 |
9 | - Use the "Flash_AXI.hex" for SW4STM32 file with ST-Link Utility to program Flash and external QSPI memories |
Die bekommen das offenbar selbst nicht hin xD. Mein Ansatz ist es (ähnlich wie bei initilisiertem RAM) die loadadresse der flash sections in den AXI-Flash zu legen, und die VMA auf den ITCMFlash zeigen zu lassen.
hi habe das auch gebraucht ... im Linkerfile eine section anlegen: MEMORY { RAM4 (xr) : ORIGIN = 0x00000000, LENGTH = 16K /* ITCM */ ... ... ... SECTIONS { ... ... _siitcm = LOADADDR(.itcm); /* ITCM RAM for critical functions */ .itcm : { . = ALIGN(4); _sitcm = .; /* create a global symbol at itcm start */ *(.itcm) *(.itcm*) . = ALIGN(4); _eitcm = .; /* define a global symbol at itcm end */ } >RAM4 AT> ROM ... ... ... } und jetzt der knackpunkt .. das zeug muss bei systemstart vom flash in den ITCM geladen werden udn das bitte VOR allem anderen zeug zB: in der systeminit
1 | extern unsigned long _siitcm; |
2 | extern unsigned long _sitcm; |
3 | extern unsigned long _eitcm; |
4 | |
5 | void SystemInit(void) |
6 | {
|
7 | // copy to ITCM RAM !!!
|
8 | unsigned long *pulSrc, *pulDest; |
9 | pulSrc = &_siitcm; |
10 | |
11 | for(pulDest = &_sitcm; pulDest < &_eitcm; ) |
12 | {
|
13 | *(pulDest++) = *(pulSrc++); |
14 | }
|
wer sich mit linkerfiles auskennt kann das auch dort automatisieren... ich hatte das nicht hinbekommen funktionen werden dann mit:
1 | __attribute__((section(".itcm"))) |
2 | void foo(void) { |
3 | blah(); |
4 | }
|
in den ITCM gelegt
ach fu** .... vergesst es xD ist noch früh am morgen dachte ging um ITCM RAM !! ....
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.