STM32 har allt - Utom trådlöshet
Re: STM32 har allt - Utom trådlöshet
Så wiznet är lite omodernt och ej värt att investera sin tid i?
Re: STM32 har allt - Utom trådlöshet
Nu har jag fått min första hemsida att fungera på en STM32 med LWIP och extern ethernet PHY.
Det fungerar bra. Snabbt.
Varför det tog så länge tid att få det att fungera har med att det är en bugg i STM32. Deras kod har gjort så Ethernet MAC kan ej komma åt ROM, så hemsidan måste ligga på RAM, vilket gör det inte om utrymme.
ST ska fixa denna bugg vecka 23 enligt vad jag har talat med dom.
För att ändå köra en hemsida på RAM så måste alla arrayer som beskrivs med bilddata ej ha datatypen "const". Ta bort den och allt ligger på RAM.
Förbrukat 36.67 % av 128 kB ram bara med två .html filer med text och en liten bild.
Det fungerar bra. Snabbt.
Varför det tog så länge tid att få det att fungera har med att det är en bugg i STM32. Deras kod har gjort så Ethernet MAC kan ej komma åt ROM, så hemsidan måste ligga på RAM, vilket gör det inte om utrymme.
ST ska fixa denna bugg vecka 23 enligt vad jag har talat med dom.
För att ändå köra en hemsida på RAM så måste alla arrayer som beskrivs med bilddata ej ha datatypen "const". Ta bort den och allt ligger på RAM.
Förbrukat 36.67 % av 128 kB ram bara med två .html filer med text och en liten bild.
Re: STM32 har allt - Utom trådlöshet
Eller så mellanlagra bara de requestade sidorna i ram när de skickas till ethernet... få nätverkskort i en dator kan hämta datan direkt från HDen...
Re: STM32 har allt - Utom trådlöshet
ST har bekräftat att det är en bugg.
Vecka 23 kommer dom lansera ny uppdatering för F4 serien.
Medan tänker jag kolla lite mera på kamera för STM32 ov7760 har jag.
Vecka 23 kommer dom lansera ny uppdatering för F4 serien.
Medan tänker jag kolla lite mera på kamera för STM32 ov7760 har jag.
Re: STM32 har allt - Utom trådlöshet
Japp. Från min mail.
Hi @DanielM(Customer) ,
Thank you for your feedback.
The mentioned bug is confirmed.
It is due to Hardware limitation, in fact the Ethernet MAC does not have access to the Flash (in STM32F407 device) to download http's data.
The solution is to move HTTP files to SRAM in by removing the "const".
Sorry for the delayed answer.
It's an applicative bug, in 2 applications :
STM324xG_EVAL\Applications\LwIP\LwIP_HTTP_Server_Raw
STM324xG_EVAL\Applications\LwIP\LwIP_HTTP_Server_Netconn_RTOS
Will be fixed in next F4 maintenance release.
In general, User should be aware for STM32F405xx/07xx and STM32F415xx/17xx series, that Ethernet has no access for flash, To avoid this kind of bugs.
Regards
Mahdy
Re: STM32 har allt - Utom trådlöshet
Tror du de kommer ändra i hårdvaran eller uppdatera sina applikationsexempel så de inte hämtar data från Flash längre?
Re: STM32 har allt - Utom trådlöshet
Det var litet i dom banorna jag också tänkte, när jag läste det där.
Borde väl gå att skyffla via nån lämpligt stor rambuffer, även såna "filer" som lagras i rom?
Borde väl gå att skyffla via nån lämpligt stor rambuffer, även såna "filer" som lagras i rom?
Re: STM32 har allt - Utom trådlöshet
Det är väl det normala att göra.
Jag gjorde en liten HTTP-server på en liten PIC för några år sedan, sidorna "kompilerades" och lagrades i FLASH, "Kompileringen" innebar att allt onödigt skalades bort, såsom mellanslag och ny rad mm (HTML är ju typ 80% mellanslag typ, för läsbarhetens skull), samt att checksumman lades till.
Http-servern hämtade sidorna från FLASH, scannade sidan efter variabler, stoppade in data i dessa variabler och ändrade checksumman vid behov. Värt att notera, man behöver inte räkna om hela checksumman, utan man tar den tidigare, uträknade, och lägger till checksumman för de data man lagt in.
Detta fixades med, vill jag minnas ett par kB programminne, typ 2kB eller nått för TCP-IP stacken och HTTP-servern med en dum ethernetkrets som inte kunde någonting.
Jag kan inte riktigt förstå vad MAC har att göra med HTML, det är ju helt olika lager i OSI.
Det måste vara någon grav missuppfattning inblandad.
Jag gjorde en liten HTTP-server på en liten PIC för några år sedan, sidorna "kompilerades" och lagrades i FLASH, "Kompileringen" innebar att allt onödigt skalades bort, såsom mellanslag och ny rad mm (HTML är ju typ 80% mellanslag typ, för läsbarhetens skull), samt att checksumman lades till.
Http-servern hämtade sidorna från FLASH, scannade sidan efter variabler, stoppade in data i dessa variabler och ändrade checksumman vid behov. Värt att notera, man behöver inte räkna om hela checksumman, utan man tar den tidigare, uträknade, och lägger till checksumman för de data man lagt in.
Detta fixades med, vill jag minnas ett par kB programminne, typ 2kB eller nått för TCP-IP stacken och HTTP-servern med en dum ethernetkrets som inte kunde någonting.
Jag kan inte riktigt förstå vad MAC har att göra med HTML, det är ju helt olika lager i OSI.
Det måste vara någon grav missuppfattning inblandad.
Re: STM32 har allt - Utom trådlöshet
De kommer självklart uppdatera sin mjukvara. Det är inget fel på ST:s hårdvara. Den är ett av dom bästa på marknaden idag. Synd bara att många av deras riktigt avancerade processorerna blir slutsålda direkt. Trodde halvledarbristen var förbi...
Jag testade att göra en liten hemsida med login osv. Det tog inte så mycket minne faktiskt. Så jag tror minne är inte nog det största problemet här för mig. Jag har fortfarande 78 kB ledigt i RAM. Så länge jag inte ska ha massa bilder, så kommer det fungera för mig. Bilder tar enormt mycket minne.
Jag använder ett program som generera HTML, css, javascript till en enda .c fil. Klart. Jag förmodar att den optimerar också.TomasL skrev: ↑5 januari 2023, 20:14:05 Det är väl det normala att göra.
Jag gjorde en liten HTTP-server på en liten PIC för några år sedan, sidorna "kompilerades" och lagrades i FLASH, "Kompileringen" innebar att allt onödigt skalades bort, såsom mellanslag och ny rad mm (HTML är ju typ 80% mellanslag typ, för läsbarhetens skull), samt att checksumman lades till.
Http-servern hämtade sidorna från FLASH, scannade sidan efter variabler, stoppade in data i dessa variabler och ändrade checksumman vid behov. Värt att notera, man behöver inte räkna om hela checksumman, utan man tar den tidigare, uträknade, och lägger till checksumman för de data man lagt in.
Detta fixades med, vill jag minnas ett par kB programminne, typ 2kB eller nått för TCP-IP stacken och HTTP-servern med en dum ethernetkrets som inte kunde någonting.
Jag kan inte riktigt förstå vad MAC har att göra med HTML, det är ju helt olika lager i OSI.
Det måste vara någon grav missuppfattning inblandad.
Hur som helst.
Det finns en metoder som heter SSI, CGI och AJAX.
SSI är om man vill låta webbservern skicka data till hemsidan igenom att uppdatera hemsidan.
CGI är om man vill skicka in data till webbservern. Alltså tvärt om jämfört med SSI.
AJAX är om man låter hemsidan köra live, utan att uppdatera.
Jag tänkte ställa er frågan. AJAX, SSI och CGI har några år på nacken. Borde inte det inte vara bättre att köra något typ utav socket-kommunikation? Alltså Web Socket, som är mer modernt än vad AJAX är.
Vad tror ni?
Re: STM32 har allt - Utom trådlöshet
Websocket är nånting helt annat än HTML och har inte med varandra att göra, så AJAX, PHP, SSI CGI osv har inget med det att göra.
Dock, Websocket stöds inte av alla webläsare.
Men fortfarande, förstår inte vad MAC har med HTML filer att göra, det är inte så att du har missuppfattat det hela.
Dock, Websocket stöds inte av alla webläsare.
Men fortfarande, förstår inte vad MAC har med HTML filer att göra, det är inte så att du har missuppfattat det hela.
Re: STM32 har allt - Utom trådlöshet
Jag vet att websocket är något helt annat. Men det borde ju vara en lösning?
Tänk en hemsida. Så fort man loggar in på hemsidan, så ansluter den en web-socket och skickar data till webbservern. På detta sätt så blir det rätt enkelt att koda. Att sätta upp TCP/IP-socket på STM32 är enkelt. Men att använda AJAX så är det en hel del kodning.
Jag tänkte att moderna teknologier borde ju vara ett föredöme? NodeJS, ReactJS, ElectronJS, VuJS, Jadu...vad ska man ta?
Tänk en hemsida. Så fort man loggar in på hemsidan, så ansluter den en web-socket och skickar data till webbservern. På detta sätt så blir det rätt enkelt att koda. Att sätta upp TCP/IP-socket på STM32 är enkelt. Men att använda AJAX så är det en hel del kodning.
Jag tänkte att moderna teknologier borde ju vara ett föredöme? NodeJS, ReactJS, ElectronJS, VuJS, Jadu...vad ska man ta?
Re: STM32 har allt - Utom trådlöshet
Ja. Jag har inga kommentarer. ST har verifierat buggen då jag skickade min kod till dom och dom har granskat den. De kom fram att deras mjukvara har en bugg. Helt klart. De gav mig också en tillfällig lösning.