Matrisberäkningar med för STM32?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Re: Matrisberäkningar med för STM32?

Inlägg av Al_Bundy »

jockwe skrev:
Al_Bundy skrev: I detta fall är jag nöjd med just denna hastighet. Jag ska ju bara ha 1 sekunds samplingsintervall.
Då kanske det räcker att köra mjukvaruräknad double? Varför jaga prestanda när det finns gott om tid över?
Mjukvaruräknad double?

Det gör jag inte :)
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Re: Matrisberäkningar med för STM32?

Inlägg av Al_Bundy »

hummel skrev:
Al_Bundy skrev:Är det någon som har fått mer information om hur malloc beter sig hos STM32? Jag menar, STM32 verkar vara i framkant på allt, så dem kanske har löst det där med minnesallokeringen?
Hur menar du med löst minnesallokeringen?
Det är nog enbart du som designar programmet som kan avgöra det.
Okej. Som jag uppfattade många här i tråden så beskrev dem att malloc + uC = Kaoz.
Användarvisningsbild
AndLi
Inlägg: 18095
Blev medlem: 11 februari 2004, 18:17:59
Ort: Knivsta
Kontakt:

Re: Matrisberäkningar med för STM32?

Inlägg av AndLi »

Många avråder från malloc i uC miljöer ja, så även IAR.
Men det är ju upp till dig som utvecklare att bestämma hur du vill hantera ditt minne.
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Re: Matrisberäkningar med för STM32?

Inlägg av Al_Bundy »

Jag kan förstå detta att man vill helst avråda att använda lite "dynamik" i en processor som ska göra in princip samma sak hela tiden och snabbt. Processorn kanske inte hinner med att ge minne?
Användarvisningsbild
AndLi
Inlägg: 18095
Blev medlem: 11 februari 2004, 18:17:59
Ort: Knivsta
Kontakt:

Re: Matrisberäkningar med för STM32?

Inlägg av AndLi »

Vilken del av processorn tänker du ger ut minne på en STM32F4?
hawkan
Inlägg: 3339
Blev medlem: 14 augusti 2011, 10:27:40

Re: Matrisberäkningar med för STM32?

Inlägg av hawkan »

malloc() och free() är vanliga användarfunktioner.
Googla t ex "do your own malloc" för att avmystifiera den.
T ex här https://danluu.com/malloc-tutorial/
Med reservation för att sbrk() kanske inte finns i uCn.
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Re: Matrisberäkningar med för STM32?

Inlägg av Al_Bundy »

AndLi skrev:Vilken del av processorn tänker du ger ut minne på en STM32F4?
Har ingen aning. Jag kör bara malloc och jag får det jag får.

Nu testade jag med double och det blev samma resultat. Hmm...spår ett fel i qr.c filen....återkommer.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Senast redigerad av Al_Bundy 29 januari 2019, 22:26:33, redigerad totalt 1 gång.
Sado
Inlägg: 84
Blev medlem: 6 april 2007, 14:39:33
Ort: Svealand

Re: Matrisberäkningar med för STM32?

Inlägg av Sado »

Mmm, du formaterar ju utskriften i printMatrix(). Eller missförstod jag funderingen?
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Re: Matrisberäkningar med för STM32?

Inlägg av Al_Bundy »

printMatrix har inget med felet att göra. Jag misstänker att qr.c inte gör sin uppgift av någon lustig anledning. Kanske man har glömt något där.
Sado
Inlägg: 84
Blev medlem: 6 april 2007, 14:39:33
Ort: Svealand

Re: Matrisberäkningar med för STM32?

Inlägg av Sado »

Ok, trodde det var antalet decimaler du höll på med.
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Re: Matrisberäkningar med för STM32?

Inlägg av Al_Bundy »

Hmm...Jag misstänker att C programmeringsspråk klarar inte av just att behandla dessa typer av tal. qr.c och svd.c fungerar felfritt. Men som jag misstänker så använder sig GNU Octave av andra typer av algoritmer för att lösa problemet. Jag misstänker att vissa värden blir så stora (e+308) och därmed kan C inte hantera dessa.

Så jag kan helt enkelt inte använda mitt C-bibliotek för dessa typer av signaler jag vill använda. Jag får helt enkelt gå över till Java som kommunicerar med GNU Octave. :humm: Detta innebär att det blir operativsystem + skript + java + socketprogrammering för att att kommunikation mellan java och octave. Eller så ger jag mig på ett Java bibliotek för matrisberäkningar. Ska ju finnas fullt.
hawkan
Inlägg: 3339
Blev medlem: 14 augusti 2011, 10:27:40

Re: Matrisberäkningar med för STM32?

Inlägg av hawkan »

Får du så stora, giltiga tal så är väl problemet illa-konditionerat. Har jag för mej det kallas.
Då är troligen din algoritm olämplig för just det exemplet.
Hur har octave implementerat rutinen som du har problem med?
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Re: Matrisberäkningar med för STM32?

Inlägg av Al_Bundy »

>> Hur har octave implementerat rutinen som du har problem med?
30 års erfarenhet + massa svett och tårar uppe på sena nätter.

Jag tvivlar nästan på att Java skulle vara ett bra alternativ för matrisberäkninar, om inte C klarar av det med andra ord. Då återstår det bara kommunikation mellan Java och Octave via socket.
Användarvisningsbild
AndLi
Inlägg: 18095
Blev medlem: 11 februari 2004, 18:17:59
Ort: Knivsta
Kontakt:

Re: Matrisberäkningar med för STM32?

Inlägg av AndLi »

Finns det inte inbyggda datatyper med tillräckligt stor dynamik får du väl implementera de själv....
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Re: Matrisberäkningar med för STM32?

Inlägg av Al_Bundy »

Det klarar jag inte av. Jag har redan gjort jobb med kommunikation mellan Java och Octave via socket, men jag föredrar C på uC då samplingsintervallet blir konstant.

Men nu vet man det! Eller så återgår jag till GSL igen. Det skulle ju tydligen fungera att använda, trots att den tog upp halva minnet.

Eventuellt så kanske man skulle titta på C++ för GNU Octave. Octave har en C++ API, men frågan om man kan köra denna API på uC?
Senast redigerad av Al_Bundy 30 januari 2019, 00:07:19, redigerad totalt 1 gång.
Skriv svar