Sida 6 av 20

Re: Hur kan jag få tag på prestandaversionen av Nucleo?

Postat: 29 oktober 2019, 19:45:29
av DanielM
Så i detta fall när jag använde en F446RE och fick 115 kB RAM förbruktning när jag har 128 kB RAM, så bör jag ändå fortsätta använda min F446RE för jag har ca 10 kB RAM kvar att jobba med? Jag kan göra nytt försök om så önskas istället för att beställa en L4R5ZI som har 640 kB RAM. Men då får jag byta ut TFT LCD:n till någon enklare t.ex. 20x4 LCD display med I2C kommunikation.

Re: Hur kan jag få tag på prestandaversionen av Nucleo?

Postat: 29 oktober 2019, 19:51:54
av TomasL
Jag kan göra nytt försök om så önskas istället för att beställa en L4R5ZI som har 640 kB RAM.
Varför skulle vi ha åsikter om vilka val du gör, din kravspec borde ju specificera vad du skall ha.

Re: Hur kan jag få tag på prestandaversionen av Nucleo?

Postat: 29 oktober 2019, 21:27:38
av Rick81
Så i detta fall när jag använde en F446RE och fick 115 kB RAM förbruktning när jag har 128 kB RAM, så bör jag ändå fortsätta använda min F446RE för jag har ca 10 kB RAM kvar att jobba med?
Nej om du kör koden på denna så får du ett snabbt svar hur lång tid dina beräkningar tar och du kan sen enkelt avgöra om du behöver en stm32f4 eller stm32h7. Om inte stm32f4 orkar med beräkningar spelar det ingen roll om du köper en ny med 640 kB,det kommer ju inte funka ändå.

Re: Hur kan jag få tag på prestandaversionen av Nucleo?

Postat: 29 oktober 2019, 22:24:36
av DanielM
Jag gör ett nytt försök imorgon och fokuserar på ett annat LCD bibliotek. :wink: Återkopplar.

Re: Hur kan jag få tag på prestandaversionen av Nucleo?

Postat: 30 oktober 2019, 01:11:47
av TomasL
Snälla nån, vi är nog rätt ointresserad över hur många kb dina projekt tar, eller huruvida du använder det ena eller andra biblioteket, vore det inte bättre att du ställde upp en riktig krav-spec enligt MOSCOW och därefter utifrån den kontrollerar vilken typ av hårdvara du behöver.

Re: Hur kan jag få tag på prestandaversionen av Nucleo?

Postat: 30 oktober 2019, 08:07:24
av Rick81
Alltså om du skippar LCD, lwIP osv och bara tar din huvudkod, kör igenom den koden på samma sätt som du gjorde med Raspbaerry pi och PC, mäter systemticks vid start och när koden är kört och se hur lång tid det tar.

Testa sedan sätta kompilatorflagga O3 och kolla vad tiden blev. Vilken tid på vilken CPU frekvens? Sedan jämför du med de devkiten du funderar på och väljer det som är lämpligt.

Re: Hur kan jag få tag på prestandaversionen av Nucleo?

Postat: 17 november 2019, 22:11:50
av DanielM
Här ska ni få en återkoppling.
qpOASES_e fungerar INTE med STM32 F446RE.

Så fort den ska göra en begräkning så stannar exakt allt. Nu har det gått flera minuter. Jag låter den gå några minuter till och få se om den vaknar till liv i loopen.

Re: Hur kan jag få tag på prestandaversionen av Nucleo?

Postat: 17 november 2019, 22:39:09
av bearing
Har du inte möjlighet att pausa med debuggern och kolla vad som är på tok?

Min gissning är att den fastnat i någon "fälla" (trap) och bara ligger där och kör en tom loop.

Re: Hur kan jag få tag på prestandaversionen av Nucleo?

Postat: 17 november 2019, 23:12:52
av TomasL
Det är väl troligen så, eftersom han kör rekursiv kod, så kör han ut stacken eller nått sånt.

Re: Hur kan jag få tag på prestandaversionen av Nucleo?

Postat: 17 november 2019, 23:29:33
av DanielM
bearing skrev:Har du inte möjlighet att pausa med debuggern och kolla vad som är på tok?

Min gissning är att den fastnat i någon "fälla" (trap) och bara ligger där och kör en tom loop.
Ja. Jag körde programmet och sedan gjorde jag en beräkning. Jag sedan tryckte på "pause" och såg att jag hamnade här. Jag använder DMA2 för ADC. DMA kanske körs samtidigt som när jag kör min beräkning?

Kod: Markera allt

/**
  * @brief This function handles DMA2 stream0 global interrupt.
  */
void DMA2_Stream0_IRQHandler(void)
{
  /* USER CODE BEGIN DMA2_Stream0_IRQn 0 */

  /* USER CODE END DMA2_Stream0_IRQn 0 */
  HAL_DMA_IRQHandler(&hdma_adc1);
  /* USER CODE BEGIN DMA2_Stream0_IRQn 1 */

  /* USER CODE END DMA2_Stream0_IRQn 1 */
}
Edit:

Det är funktionen "QProblem_init" som ställer till med oreda.

Kod exempel:
https://github.com/acado/acado/blob/mas ... example1.c

Funktionens kod:
https://github.com/acados/qpOASES/blob/ ... lem.c#L599

Re: Hur kan jag få tag på prestandaversionen av Nucleo?

Postat: 17 november 2019, 23:29:51
av DanielM
TomasL skrev:Det är väl troligen så, eftersom han kör rekursiv kod, så kör han ut stacken eller nått sånt.
Jag kör inte recursiv kod.

Re: Hur kan jag få tag på prestandaversionen av Nucleo?

Postat: 17 november 2019, 23:30:46
av TomasL
I tidigare inlägg så gjorde du det.

Re: Hur kan jag få tag på prestandaversionen av Nucleo?

Postat: 17 november 2019, 23:31:57
av DanielM
Nix. Det gjorde jag inte :) Aldrig gjort.

Re: Hur kan jag få tag på prestandaversionen av Nucleo?

Postat: 17 november 2019, 23:34:03
av TomasL
Tja, du har en tråd där du kör rekursiv kod, genererad av MATLAB, å andra sidan hur i helsike skall vi kunna veta vad problemet är när du inte skriver nånting.

Re: Hur kan jag få tag på prestandaversionen av Nucleo?

Postat: 18 november 2019, 00:21:03
av DanielM
Jag testade bara MATLAB Coder. Men skrev senare att jag skriver koden för hand då genererad C-kod är ofta en hög med gröt.