Förslag på PWM, ADC, I/O och DAC IC kretsar med SPI?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
DanielM
Inlägg: 2433
Blev medlem: 5 september 2019, 14:19:58

Re: Förslag på PWM, ADC, I/O och DAC IC kretsar med SPI?

Inlägg av DanielM »

Jag hittar ingen specifik information om att dom är bokstavligen farliga och bör aldrig mer användas.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46920
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Förslag på PWM, ADC, I/O och DAC IC kretsar med SPI?

Inlägg av TomasL »

Du kan med lätthet skriva över heap, stack och andra minnesytor om du använder dessa funktioner.
DanielM
Inlägg: 2433
Blev medlem: 5 september 2019, 14:19:58

Re: Förslag på PWM, ADC, I/O och DAC IC kretsar med SPI?

Inlägg av DanielM »

Än fast man ej inte allokerar minne?
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46920
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Förslag på PWM, ADC, I/O och DAC IC kretsar med SPI?

Inlägg av TomasL »

Ja.
DanielM
Inlägg: 2433
Blev medlem: 5 september 2019, 14:19:58

Re: Förslag på PWM, ADC, I/O och DAC IC kretsar med SPI?

Inlägg av DanielM »

Jag fick höra från en väldigt kunnig kretskortstillverkare är att om man är osäker på om det kommer hålla eller inte, så ska man köra allt på logikkretsar istället för uC. Priset blir dock dyrare, men robustheten ökar.

Jag tror du dock överdriver, då jag har aldrig hört talas som att det skulle vara farligt för minnet att använda heap.

https://www.quora.com/Why-is-malloc-har ... ed-systems
I’ve used malloc() in embedded systems for decades. malloc() is only harmful if you don’t know what you are doing and/or you are not paying attention to detail.

Myself, I don’t consider malloc() harmful.
Användarvisningsbild
mrfrenzy
Co Admin
Inlägg: 15439
Blev medlem: 16 april 2006, 17:04:10

Re: Förslag på PWM, ADC, I/O och DAC IC kretsar med SPI?

Inlägg av mrfrenzy »

Risken är inte att minnet går sönder utan data blir felaktigt.
Din maskin kan svänga vänster istället för höger, eller starta värmen istället för kylfläkten.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46920
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Förslag på PWM, ADC, I/O och DAC IC kretsar med SPI?

Inlägg av TomasL »

Om du använder dessa funktioner, och källsträngen är längre eller lika lång som målsträngen, så kommer funktionerna att skriva över minnet, dessutom kommer aldrig /0 att läggas till för att avsluta strängen, vilket då innebär att målsträngen per definition får samma längd som hela ditt återstående RAM-minne, du kan ju fundera på vad som händer med HEAP, stack osv i dessa lägen.
Enda skillnaden mellan srtncpy och strcpy är att strncpy fyller målsträngen med /0 om målsträngen är längre än källsträngen, om ej, så blir det samma som ovan.
Du kan ej heller ersätta strcpy med strncpy rakt av eftersom argumenten är olika.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46920
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Förslag på PWM, ADC, I/O och DAC IC kretsar med SPI?

Inlägg av TomasL »

DanielM skrev: 1 november 2020, 21:43:20 Jag fick höra från en väldigt kunnig kretskortstillverkare är att om man är osäker på om det kommer hålla eller inte, så ska man köra allt på logikkretsar istället för uC. Priset blir dock dyrare, men robustheten ökar.

Jag tror du dock överdriver, då jag har aldrig hört talas som att det skulle vara farligt för minnet att använda heap.

https://www.quora.com/Why-is-malloc-har ... ed-systems
I’ve used malloc() in embedded systems for decades. malloc() is only harmful if you don’t know what you are doing and/or you are not paying attention to detail.

Myself, I don’t consider malloc() harmful.
Du kanskke skall läsa de andra svaren istället.
dynamisk minnesakllokering är och kommer alltid att vara förbjudet enligt MISRA.
Dessutom så är det inte säkert att det funkar i alla lägen i inbäddade system, och misslyckas malloc, tja gissa vad som händer.
Din kunniga kretskortstillverkare har inte en blekaste susning om vad han/hon pratar om.
DanielM
Inlägg: 2433
Blev medlem: 5 september 2019, 14:19:58

Re: Förslag på PWM, ADC, I/O och DAC IC kretsar med SPI?

Inlägg av DanielM »

mrfrenzy skrev: 1 november 2020, 21:45:51 Risken är inte att minnet går sönder utan data blir felaktigt.
Din maskin kan svänga vänster istället för höger, eller starta värmen istället för kylfläkten.
Jo. Det vet jag, om man gör fel.
Men jag talar om absolut nu. Gör man fel om man använder strcat?
Rick81
Inlägg: 755
Blev medlem: 30 december 2005, 13:07:09

Re: Förslag på PWM, ADC, I/O och DAC IC kretsar med SPI?

Inlägg av Rick81 »

Du kan ju testa implementera strcpy i logikretsar så har du ett mer avancerat kretskort än det du precis gjort , troligen buggigare också... :D

Det är inget fel använda men liksom allt annat har det föe och nackdelar. Den största fördelen tycker jag är att man får en massa färdiga exempel på olika delar av STM32.

Samma gäller LL som också ingår i HAL men en lägre nivå.

Största nackelen med HAL tycket jag är att det tar rnassa flash för alla olik varianter av structar man skickar som input även om man aldrig kommer använda dem.

Men eftersom källkod kommer med HAL har jag tex strippat bort en massa från HAL som jag inte använde.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46920
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Förslag på PWM, ADC, I/O och DAC IC kretsar med SPI?

Inlägg av TomasL »

Du skall i möjligaste mån undvika osäkra funktioner.
Rick81
Inlägg: 755
Blev medlem: 30 december 2005, 13:07:09

Re: Förslag på PWM, ADC, I/O och DAC IC kretsar med SPI?

Inlägg av Rick81 »

men gör inte fell om man använder strcat, men man måste bara fundera så att inte skriver över buffrar
DanielM
Inlägg: 2433
Blev medlem: 5 september 2019, 14:19:58

Re: Förslag på PWM, ADC, I/O och DAC IC kretsar med SPI?

Inlägg av DanielM »

TomasL skrev: 1 november 2020, 21:50:16 Om du använder dessa funktioner, och källsträngen är längre eller lika lång som målsträngen, så kommer funktionerna att skriva över minnet, dessutom kommer aldrig /0 att läggas till för att avsluta strängen, vilket då innebär att målsträngen per definition får samma längd som hela ditt återstående RAM-minne, du kan ju fundera på vad som händer med HEAP, stack osv i dessa lägen.
Enda skillnaden mellan srtncpy och strcpy är att strncpy fyller målsträngen med /0 om målsträngen är längre än källsträngen, om ej, så blir det samma som ovan.
Du kan ej heller ersätta strcpy med strncpy rakt av eftersom argumenten är olika.
Jag använder aldrig allokering inom uC. Jag känner inte behovet ens.
Däremot använder jag mycket memset och memcpy. strcpy, strcat osv brukar jag använda till LCD.
Rick81 skrev: 1 november 2020, 21:57:07 Du kan ju testa implementera strcpy i logikretsar så har du ett mer avancerat kretskort än det du precis gjort , troligen buggigare också... :D

Det är inget fel använda men liksom allt annat har det föe och nackdelar. Den största fördelen tycker jag är att man får en massa färdiga exempel på olika delar av STM32.

Samma gäller LL som också ingår i HAL men en lägre nivå.

Största nackelen med HAL tycket jag är att det tar rnassa flash för alla olik varianter av structar man skickar som input även om man aldrig kommer använda dem.

Men eftersom källkod kommer med HAL har jag tex strippat bort en massa från HAL som jag inte använde.
Som ekonomicheferna säger så är det bättre att kasta lite extra pengar och det går snabbare gjort att få jobbet.
Jag vet att det låter som en tokig idé.
TomasL skrev: 1 november 2020, 21:58:25 Du skall i möjligaste mån undvika osäkra funktioner.
Självklart. Men som Rick81 säger. Fördelar och nackdelar.
Att ha en borderline-attityd inom ingenjörskonst är inte heller att rekommendera.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46920
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Förslag på PWM, ADC, I/O och DAC IC kretsar med SPI?

Inlägg av TomasL »

Eller också handlar det om att skriva så säker kod som möjligt, och inte förlita sig på att andra gör det.
Som mrFrenzy skrev, du vill inte att bilen accelererar när den skall bromsa, en felaktig strcpy eller liknande kan få detta att hända.
DanielM
Inlägg: 2433
Blev medlem: 5 september 2019, 14:19:58

Re: Förslag på PWM, ADC, I/O och DAC IC kretsar med SPI?

Inlägg av DanielM »

Ja. Nu börjar vi använda andra ord. "En felaktig strcat".
Jag talkar om strcat som funktion. Om den är lämplig bokstavligen, eller inte lämplig.

Jag skulle säga att det beror på hur man använder den.
Skriv svar