Matrisberäkningar med för STM32?
Re: Matrisberäkningar med för STM32?
Här har jag gjort en simulering med 64 mätpunkter mellan 0 till 31 sekunder, dvs 32 sekunder enligt min simulering. Så en 64*64 ska nog fungera som maximal matris.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Re: Matrisberäkningar med för STM32?
Jo, men nu var det två problem med en sådan:mrfrenzy skrev:Att hitta en mikrokontroller med rejält med minne är inte svårt.
Ta en raspberry pi zero som exempel.
512MB ram
1GHz klocka
Hårdvarustöd för flyttalsberäkning
Kostar ca 100kr färdigmonterad men om du kan löda bga går det såklart köpa armchippet löst.
Instruktioner hur man programmerar direkt på hårdvaran utan OS:
https://www.raspberrypi.org/forums/viewforum.php?f=72
1. SD kort - Ostabilt över tid
2. OS baserat - OS systemet kan ha speciella interrupts vid speciella tillfällen. Detta kan skapa olika samplingsintervall, vilket skapar ostabilitet.
Re: Matrisberäkningar med för STM32?
Jag ska skriva ett mindre krävande matrisprogram som endast kräver fåtal matriser. Därefter ska jag testa det på min befintliga STM32 bara för att verifiera att det fungerar.
Programmet ska vara en grundläggande MPC, dvs en regulator som kan prediktivt räkna ut de bästa signalerna t.ex. 5 sekunder framåt.
Programmet ska vara en grundläggande MPC, dvs en regulator som kan prediktivt räkna ut de bästa signalerna t.ex. 5 sekunder framåt.
Re: Matrisberäkningar med för STM32?
Nej det är inte os baserat!
Man programmerar bara en c-fil som gör en sak och skickar över. Precis som med stm32. Det finns inget linux ellet annat OS.
SD-kortet används bara för läsning ej för skrivning så det håller i 100 år.
Vill man ändå inte använda sd går det bra att använda ett eeprom.
Man programmerar bara en c-fil som gör en sak och skickar över. Precis som med stm32. Det finns inget linux ellet annat OS.
SD-kortet används bara för läsning ej för skrivning så det håller i 100 år.
Vill man ändå inte använda sd går det bra att använda ett eeprom.
Re: Matrisberäkningar med för STM32?
Nu känner jag mig helt lurad. Hur kommer det sig att du alltid kommer med självklarheter och lösningar? Kan det vara för du är admin? Annars får jag tacka så mycket för informationen.
Ja, i detta fall så ska jag inte jobba med så stora matriser. Så jag tror den interna hårddisken håller.
Men vad är det för IDE och kompilator man ska använda för att bränna över C-kod till Raspberry Pi Zero's CPU?
Ja, i detta fall så ska jag inte jobba med så stora matriser. Så jag tror den interna hårddisken håller.
Men vad är det för IDE och kompilator man ska använda för att bränna över C-kod till Raspberry Pi Zero's CPU?
Re: Matrisberäkningar med för STM32?
Som många här tycker jag det är roligt att hitta lösningar och dela med sig.
Man kompilerar med arm-gcc som vanligt. Efter länkningen får man en fil som sparas på sd-kortet.
När raspberryn startar läses helt enkelt denna fil med din kod in i ram och körs igång.
Det finns många olika bibliotek för att få kontakt med hårdvaran. Läs dom fem första trådarna i forumet jag länkade och se vilket som verkar smidigast att komma igång med.
Eftersom det är helt vanlig C kan du säkert fortsätta använda Eclipse om du trivs med det.
Man kompilerar med arm-gcc som vanligt. Efter länkningen får man en fil som sparas på sd-kortet.
När raspberryn startar läses helt enkelt denna fil med din kod in i ram och körs igång.
Det finns många olika bibliotek för att få kontakt med hårdvaran. Läs dom fem första trådarna i forumet jag länkade och se vilket som verkar smidigast att komma igång med.
Eftersom det är helt vanlig C kan du säkert fortsätta använda Eclipse om du trivs med det.
Re: Matrisberäkningar med för STM32?
Och inget OS behövs?mrfrenzy skrev: Man kompilerar med arm-gcc som vanligt. Efter länkningen får man en fil som sparas på sd-kortet.
När raspberryn startar läses helt enkelt denna fil med din kod in i ram och körs igång.
Så jag kan ta mitt kompilerade program som är komplimerad med arm-none-eabi-gcc och bara lägga in .a filen på SD kortet och sedan är det klart? Måste läsa på mer om detta. Gjorde en sökning, men fann ingen resultat om detta.
Re: Matrisberäkningar med för STM32?
Fast skulle du inte köra GTK+?
Då behövs väl ett linux, gissar jag?
Om du ska använda ett samplingsintervall på 1s lär det väl inte vara några problem att ha ett OS körandes i bakgrunden. Jag skulle tippa på max en millisekunds jitter, om du nu inte kör några tunga processer i bakgrunden.
Men om jittret måste ner i mikro- eller nanosekunder, är ett OS kanske inte optimalt. Men det borde väl iofs gå att köra med en vanlig hårdvarutimer som ger interrupt och samplar, utan att operativsystemet "vet om" detta, för att få försumbart jitter även med ett OS.
Men grafik går såklart att göra även utan ett OS. Så om grafiken kan göras på annat sätt än GTK+, behövs inte linux.
Då behövs väl ett linux, gissar jag?
Om du ska använda ett samplingsintervall på 1s lär det väl inte vara några problem att ha ett OS körandes i bakgrunden. Jag skulle tippa på max en millisekunds jitter, om du nu inte kör några tunga processer i bakgrunden.
Men om jittret måste ner i mikro- eller nanosekunder, är ett OS kanske inte optimalt. Men det borde väl iofs gå att köra med en vanlig hårdvarutimer som ger interrupt och samplar, utan att operativsystemet "vet om" detta, för att få försumbart jitter även med ett OS.
Men grafik går såklart att göra även utan ett OS. Så om grafiken kan göras på annat sätt än GTK+, behövs inte linux.
Re: Matrisberäkningar med för STM32?
Med tanke på att målet var att jag skulle utveckla ett bibliotek för att göra linjär algebra på inbyggda system så vill jag att biblioteket ska fungera på alla plattformar. Jag har använt mig av CLapack som jag har gjort om lite för att den ska inte vara beroende av operativsystem.
När jag insåg att mitt C-program kräver mycket ramminne så var jag inne på att köra mitt C-program på vanliga datorer t.ex. min dator eller en Raspberry Pi. Då var jag först inne på JavaFX för att göra det grafiska. Men det kändes onödigt att ens utveckla ett C program för Java, när jag kunde lika gärna använda mig av jBLAS eller OjAlgo för numeriska beräkningar inom Java.
Men jag behövde prestanda. Varje millisekund räknas. Då gick jag över till att inspektera GTK+, men GTK+ saknade grafer. Det blir alltså för stort projekt skrivet i C och vid stora projekt vill jag använda mig av objektorientering, och då kan jag lika gärna använda C++ för det är ett bättre verktyg än C vid stora projekt. Så hur jag än vred på det så insåg jag att mitt C-bibliotek blev helt enkelt onödigt om jag väljer OS, Java, GTK osv.
Men då kom MrFrenzy ovan och sade att jag kunde programmera C direkt på Raspberry Pi utan att ens använda Linux. Då slipper jag att mitt C program ska ligga ovanpå ett OS. Jag kräver konstant samplingsintervall. Så länge jag bara läser från mitt SD-kort på Pajen så kommer mitt SD-kort att hålla över 100 år.
Så nu har man ju en anledning och motivering att driva mig till att programmera ARM på den låga nivån, för jag har ingen annan CPU att använda. STM32 är för klent för mig och Raspberry Pi CPU är både billiga och snabba. Så jag för helt enkelt lära mig skriva C-kod för dessa uC:er.
Så mitt arbete för att utveckla ett C-bibliotek som följer MATLAB-standard, är optimerat och 100 % portabelt för realtidssystem fortsätter
Här har jag en länk som kan enkelt styra GPIO pinnarna på en Paj:
http://wiringpi.com/
När jag insåg att mitt C-program kräver mycket ramminne så var jag inne på att köra mitt C-program på vanliga datorer t.ex. min dator eller en Raspberry Pi. Då var jag först inne på JavaFX för att göra det grafiska. Men det kändes onödigt att ens utveckla ett C program för Java, när jag kunde lika gärna använda mig av jBLAS eller OjAlgo för numeriska beräkningar inom Java.
Men jag behövde prestanda. Varje millisekund räknas. Då gick jag över till att inspektera GTK+, men GTK+ saknade grafer. Det blir alltså för stort projekt skrivet i C och vid stora projekt vill jag använda mig av objektorientering, och då kan jag lika gärna använda C++ för det är ett bättre verktyg än C vid stora projekt. Så hur jag än vred på det så insåg jag att mitt C-bibliotek blev helt enkelt onödigt om jag väljer OS, Java, GTK osv.
Men då kom MrFrenzy ovan och sade att jag kunde programmera C direkt på Raspberry Pi utan att ens använda Linux. Då slipper jag att mitt C program ska ligga ovanpå ett OS. Jag kräver konstant samplingsintervall. Så länge jag bara läser från mitt SD-kort på Pajen så kommer mitt SD-kort att hålla över 100 år.
Så nu har man ju en anledning och motivering att driva mig till att programmera ARM på den låga nivån, för jag har ingen annan CPU att använda. STM32 är för klent för mig och Raspberry Pi CPU är både billiga och snabba. Så jag för helt enkelt lära mig skriva C-kod för dessa uC:er.
Så mitt arbete för att utveckla ett C-bibliotek som följer MATLAB-standard, är optimerat och 100 % portabelt för realtidssystem fortsätter
Här har jag en länk som kan enkelt styra GPIO pinnarna på en Paj:
http://wiringpi.com/
- Krille Krokodil
- Inlägg: 4062
- Blev medlem: 9 december 2005, 22:33:11
- Ort: Helsingborg
Re: Matrisberäkningar med för STM32?
Här har du ett realtids-OS med GUI som du kan kika på:
"ChibiOS/RT is the high performance RTOS part of the ChibiOS embedded collection. RT has been designed with the idea of creating a very feature-complete RTOS that could excel in performance and code size."
"ChibiStudio is a free ARM development environment based on Open Source tools and components. It has been created in order to support the development of ChibiOS itself and is now available as a free download.
Everything is required to start working with ChibiOS is encapsulated in a single download. It takes just two minutes to have your development board working with ChibiOS."
http://chibios.org/
https://www.playembedded.org/blog/
"µGFX is a lightweight embedded library for displays and touchscreens providing everything required to build a fully featured embedded GUI. The library is very small and fast because every unused feature is disabled and not linked into the finished binary."
https://ugfx.io/
"ChibiOS/RT is the high performance RTOS part of the ChibiOS embedded collection. RT has been designed with the idea of creating a very feature-complete RTOS that could excel in performance and code size."
"ChibiStudio is a free ARM development environment based on Open Source tools and components. It has been created in order to support the development of ChibiOS itself and is now available as a free download.
Everything is required to start working with ChibiOS is encapsulated in a single download. It takes just two minutes to have your development board working with ChibiOS."
http://chibios.org/
https://www.playembedded.org/blog/
"µGFX is a lightweight embedded library for displays and touchscreens providing everything required to build a fully featured embedded GUI. The library is very small and fast because every unused feature is disabled and not linked into the finished binary."
https://ugfx.io/
Re: Matrisberäkningar med för STM32?
Konstant 1 sekunds samplingsintervall?Jag kräver konstant samplingsintervall
Med vilka toleranser / vilket jitter är acceptabelt?
Om du bara behöver uppdatera grafen en gång per sekund finns det ju andra sätt att lösa grafiken på. T.ex. skicka datapunkterna till en mobil via en seriell-bluetooth-omvandlare. Finns färdiga appar som ritar grafer från inkommande bluetooth.
Re: Matrisberäkningar med för STM32?
Återigen, tänk på att du måste respektera licensvillkoren i kod du inkluderar.Jag har använt mig av CLapack som jag har gjort om lite för att den ska inte vara beroende av operativsystem.
Re: Matrisberäkningar med för STM32?
Jo. Men ramminnet är för klent för dem.Krille Krokodil skrev:Här har du ett realtids-OS med GUI som du kan kika på:
"ChibiOS/RT is the high performance RTOS part of the ChibiOS embedded collection. RT has been designed with the idea of creating a very feature-complete RTOS that could excel in performance and code size."
"ChibiStudio is a free ARM development environment based on Open Source tools and components. It has been created in order to support the development of ChibiOS itself and is now available as a free download.
Everything is required to start working with ChibiOS is encapsulated in a single download. It takes just two minutes to have your development board working with ChibiOS."
http://chibios.org/
https://www.playembedded.org/blog/
"µGFX is a lightweight embedded library for displays and touchscreens providing everything required to build a fully featured embedded GUI. The library is very small and fast because every unused feature is disabled and not linked into the finished binary."
https://ugfx.io/
Re: Matrisberäkningar med för STM32?
Licensen är inkluderad i varje fil.guckrum skrev:Återigen, tänk på att du måste respektera licensvillkoren i kod du inkluderar.Jag har använt mig av CLapack som jag har gjort om lite för att den ska inte vara beroende av operativsystem.
Re: Matrisberäkningar med för STM32?
Jag tror jag ska sikta på 0.5 sekunder. Ja, jag vill ha så nära konstant som möjligt. +- 0.001 millisekund skulle inte vara fel.bearing skrev:Konstant 1 sekunds samplingsintervall?Jag kräver konstant samplingsintervall
Med vilka toleranser / vilket jitter är acceptabelt?
Om du bara behöver uppdatera grafen en gång per sekund finns det ju andra sätt att lösa grafiken på. T.ex. skicka datapunkterna till en mobil via en seriell-bluetooth-omvandlare. Finns färdiga appar som ritar grafer från inkommande bluetooth.