Wie umsteigen von M4 auf M7?

Gast #4935653
Lesenswert?

Hi,

ich habe ein grösseres Projekt (ca. 750Kb bei O3 reiner Code) auf dem 
STM32F407 gemacht.
Jetzt muss ich das Projekt auf splitten (2 ähnliche Produkte) und beim 
neuen reicht mir aber die Leitung nicht mehr und ich wollte auf einen 
STM32F7 um steigen.

Jetzt kommen halt die ganzen Fragen wie man am besten mit dem Projekt 
umzieht.
Dem Compiler zu sagen das es jetzt ein M7 ist und das Linkerfile 
anzupassen ist nicht das Problem!
Aber ich nutze die SPL und nicht die HAL, das auch noch recht viel.
Für dem M7 gibt es aber die SPL nicht!

Alles auf die HAL umschreiben ist doch fast Selbstmord.

Wie würdet Ihr nun vorgehen?


VG, Uli
#4935664
Lesenswert?

Zwischen F4 und F7 gibt es in Hinblick auf Peripherie kaum Unterschiede. 
STM wirbt selbst damit, dass alle F4-Projekt auch auf F7 laufen, ohne 
den Code anfassen zu müssen.

Tatsächlich ist mir aber aufgefallen, dass an manchen Stellen ein DSB 
nötig wird (aufgrund der Caches) und dass der I2C neu ist. Clocktree ist 
natürlich auch anders.

SPI, UART, Timer und co sind aber identisch.
Gast #4935679
Lesenswert?

Was ist den DSB ?

Das die Clock und auch die RAM aufteilung anders ist macht ja nichts, 
ist ja keine unlösbare Aufgabe.

I2C brauche ich beim M7, hatte ich beim M4 aber nicht drin, da neu auch 
kein Problem.

I2S, Timer, UART, Kammerainterface & Externes RAM benutze ich.
Der Rest ist meistens nur IO gefummel.
#4935769
Lesenswert?

Uli schrieb:
> Was ist den DSB ?

Data Synchronisation Barrier, Assembler-Anweisung.
Alle Speicherzugriffe müssen abgeschlossen sein, bevor mit der 
Ausführung fortgefahren wird.

Mir ist beim Umstiegt von F4 auf F7 folgende zwei Zeilen Code um die 
Ohren geflogen:
1
  // set DMA as owner of descriptor
2
  stm32eth_TransmitDescriptor.TDES0.bits.Own = 1;
3
  // start DMA
4
  ETH->DMATPDR = 0xFFFFFFFF;

DMA wurde gestartet, obwohl das own-bit noch nicht gesetzt war.
Gast #4935771
Lesenswert?

Das ich das besser hätte schreiben können habe ich doch kappiert, aber 
ändern kann ich es nicht mehr.

Wobei wenn ich ein M4 Gewinde gemeint hätte dann wäre der Post aber auch 
nicht unter Compiler gelandet. Jetzt ist es zuspät und man könnte da 
Stundenlang drüber reden, macht nur keinen Sinn.

Die stm32f7-legacy-library sieht auf den 1. Blick recht interessant aus.
Muss ich noch richtig ansehen und mit der vom STM32f4 vergleichen.


VG, Uli
#4935813
Lesenswert?

Uli schrieb:
> Wenn ich doch Probleme damit bekomme.
> Wie hast Du es denn gelöst?
1
  // set DMA as owner of descriptor
2
  stm32eth_TransmitDescriptor.TDES0.bits.Own = 1;
3
  // wait for memory transaction
4
  __DSB();
5
  // start DMA
6
  ETH->DMATPDR = 0xFFFFFFFF;

Der Fehler ist erkennbar, wenn im normalen Programmablauf nichts 
gesendet wird, jedoch beim Stepping mit dem Debugger alles super 
funktioniert.
(Firma: TU Darmstadt) #4936694
Lesenswert?

STM32F74x hat mit Cortex-M7 revision r0p1 das Problem, das Interrupts 
bei Single stepping dazwischenfunken. Das ist recht nervig!

STM32F76X hat in Revision A das Problem in Errata sheet Section 2.7.6: 
Ethernet erroneous data received in RMII configuration
Inzwiwschen sollte die Z Revision im Umlauf sein, das sollte man aber 
checken.
Gast #4936831
Lesenswert?

Ich habe mir diese stm32f7-legacy-library mal angetan.

1. Test mit einem kleineren Projekt war erfolgreich.
Allerdings waren die Timer alle noch falsch eingestellt.

Dann habe ich mal die HAL und diese SPL angesehen, so grosse 
unterschiede gibt es da nicht.
Manches ist sauberer, manches ist schlechter gelöst bei der HAL.

Nach den DSB Stellen suche ich mal und schaue ob das auch in dieser SPL 
drin ist.

Da ich an die SPL gewöhnt bin und diese auch recht viel benutzt habe 
versuche ich mein Glück mit dieser F7 SPL. Beim Testen werde ich dann 
schon über den einen oder anderen Fehler stolpern oder auch nicht wenn 
alles richtig ist.

Beim 144 Pinner passen die Pins.
Habe einen F746 also r0p1 Model, beim F407 hatte ich aber auch schon 
hier und da Probleme beim Debuggen. Hier erwarte ich nur das es nicht 
sonderlich schlimmer wird.

VG, Uli

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren