Vinnaren i pepparkakshustävlingen!
2018-08-03, 02:41
  #13
Medlem
Det största problemet med rust inom embedded är att det krävs en runtime och det finns nära på noll plattformsstöd för det.
Visst det finns stöd för arm-linux men kör man redan en linuxdistro kan man ju lika gärna använda python/go/.net/whatever. Bare metal är bara att glömma.
Citera
2018-08-03, 23:51
  #14
Medlem
Citat:
Ursprungligen postat av mongomannen
Det största problemet med rust inom embedded är att det krävs en runtime och det finns nära på noll plattformsstöd för det.
Visst det finns stöd för arm-linux men kör man redan en linuxdistro kan man ju lika gärna använda python/go/.net/whatever. Bare metal är bara att glömma.
Nej rust kräver ingen runtime, det skall gå att använda bare-metal också.

Go, Java och .net mm kräver en form av "garbage collection"(Som du kallar "runtime" ?) men ingen GC behövs för rust.

Oftast tror jag man vill använda standard lib'et.. på samma sätt som att man vill ha vanliga lib med när man skriver c/c++.
Detta std lib går att undvika både i c/c++ och i rust.

Vet inte riktigt hur bare metal rust utveckling funkar.. men det ser ut att funka när jag försöker googlar.
Verkar finnas diverse skönhets fläckar dock..
Citera
2018-08-04, 08:50
  #15
Medlem
Jag menar standardbiblioteket, som är en del av språkstandarden.
https://forge.rust-lang.org/platform-support.html
std finns till linux (men då kan man diskutera om det verkligen är embedded). Bare metal går inte, då har du bara halva språket tillgängligt.
Citera
2018-08-04, 22:15
  #16
Medlem
Att C fortfarande är helt dominerande på embedded-sidan är ingen slump eftersom det finns C-kompilatorer till alla processorer och alla miljöer vilket är viktigt om man skriver kod som ska vara flyttbar. Som tidigare påpekats finns det också en stor mängd befintlig kod som direkt kan lyftas in och där också vissa implementationer är särskilt framtagna för system med begränsade resurser.

Säkerhet och buggar kan dock vara ett problem. Man får hantera detta med kodgranskningar, tester och statisk kodanalys. Jobbar man på ett lite större företag kanske man kan köpa in en kommersiell lösning (finns många leverantörer) som kan hitta out-of-bounds-accesser och andra vanliga problem i compile-time utan att man behöver slösa instruktioner på detta i runtime.

Man måste även väga in andra faktorer såsom hur bra språket stöds av byggsystem och andra verktyg samt hur enkelt det är att hitta programmerare som behärskar språket. Inget företag vill bli sittande med en exotisk implementation som skrivits av en språkentusiast men som ingen annan förstår.
Citera
2020-11-30, 09:50
  #17
Medlem
NormanRosemonts avatar
Citat:
Ursprungligen postat av mongomannen
Det största problemet med rust inom embedded är att det krävs en runtime och det finns nära på noll plattformsstöd för det.
Visst det finns stöd för arm-linux men kör man redan en linuxdistro kan man ju lika gärna använda python/go/.net/whatever. Bare metal är bara att glömma.

Noll koll där du!

Det som däremot krävs är ju en kompilator för den specifika processorn du programmerar mot. Slutresultat av en Rust-kompilering är samma som för C/C++, ASM osv.

B I N Ä R T.

KÖRBART RAKT UR LÅDAN!
Citera
2020-11-30, 13:29
  #18
Medlem
Citat:
Ursprungligen postat av Trollfeeder
Det bästa programmeringsspråket är det som är mest anpassat för det specifika ändamålet. Att påstå att ett programmeringsspråk är bäst är typ som att påstå att blå är den bästa färgen, eller att cirklar är bättre än trianglar.

Rust ser intressant ut men jag ställer mig frågande till om det är ändamålsenligt i dom fall där det ställs krav på absolut maxad prestanda. En kernel vill man ju typiskt optimera rätt så maximalt. Däremot skulle Rust säkerligen kunna ersätta C och C++ i vissa applikationer.

Ser inte ut att vara problem med prestanda:
https://benchmarksgame-team.pages.de...test/rust.html
Citera
2020-11-30, 13:40
  #19
Medlem
Trollfeeders avatar
Citat:
Ursprungligen postat av grabb1948
Ser inte ut att vara problem med prestanda:
https://benchmarksgame-team.pages.de...test/rust.html

Tävlar rust mot optimerad c/c++-kod, eller mot det mest naturliga att skriva?
Citera
2020-12-01, 08:25
  #20
Medlem
Citat:
Ursprungligen postat av Trollfeeder
Tävlar rust mot optimerad c/c++-kod, eller mot det mest naturliga att skriva?

Ursäkta jag har tydligen påpekat hastigheten två gånger!
Rust är ännu ganska okänt:
http://rosettacode.org/wiki/Rosetta_..._by_popularity
Det lär nog ta ett tag innan alla programmerare har testat.
Vet inte vad du menar med naturligt. Jag har provat BASIC, Algol, FORTRAN, Pascal, C, C++, Python och Julia.
Vissa är elegantare än andra.
Citera
2020-12-01, 09:00
  #21
Medlem
Trollfeeders avatar
Citat:
Ursprungligen postat av grabb1948
Ursäkta jag har tydligen påpekat hastigheten två gånger!
Rust är ännu ganska okänt:
http://rosettacode.org/wiki/Rosetta_..._by_popularity
Det lär nog ta ett tag innan alla programmerare har testat.
Vet inte vad du menar med naturligt. Jag har provat BASIC, Algol, FORTRAN, Pascal, C, C++, Python och Julia.
Vissa är elegantare än andra.

Det jag menar är att C-kod som är skriven för maximal läsbarhet inte alla gånger ser ut som C-kod skriven för minimal exekveringstid.
Citera
2020-12-01, 09:12
  #22
Medlem
Citat:
Ursprungligen postat av Trollfeeder
Det jag menar är att C-kod som är skriven för maximal läsbarhet inte alla gånger ser ut som C-kod skriven för minimal exekveringstid.

Så kan det vara men kompilatorerna är olika så det kan ha större betydelse.
Jag har testat några Rust-exempel på rosettacode.org. Det är betydligt krångligare än Julia om något fattas. Julia laddar automatiskt ner alla nya lib. Här får man leta efter någon extern crate. Jag vet inte hur de ska placeras eller vad de ska heta (annat än rs?).
Citera
2020-12-06, 00:45
  #23
Medlem
Citat:
Ursprungligen postat av NormanRosemont
Noll koll där du!

Det som däremot krävs är ju en kompilator för den specifika processorn du programmerar mot. Slutresultat av en Rust-kompilering är samma som för C/C++, ASM osv.

B I N Ä R T.

KÖRBART RAKT UR LÅDAN!
Berätta då gärna hur jag får fullt std-stöd på t.ex. en cortex-m eller pic32 med bara en kompilator.
Citera
2021-05-29, 20:14
  #24
Medlem
Bromsklosss avatar
Citat:
Ursprungligen postat av grabb1948
Så kan det vara men kompilatorerna är olika så det kan ha större betydelse.
Jag har testat några Rust-exempel på rosettacode.org. Det är betydligt krångligare än Julia om något fattas. Julia laddar automatiskt ner alla nya lib. Här får man leta efter någon extern crate. Jag vet inte hur de ska placeras eller vad de ska heta (annat än rs?).

Det låter tokigt. I Rust skriver man biblioteksnamn och eventuella versionskrav i "Cargo.toml" och så laddas biblioteket ned och kompileras nästa gång man kör "cargo build".
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback