Sida 6 av 6

Re: Shipping buggy code: The most critical skill for a progr

Postat: 4 oktober 2017, 18:18:54
av bearing
Kan helt klart tänka mig att det finns andra lösningar. Tror att jag skrev att det var det "normala" i det första meddelandet.

Re: Shipping buggy code: The most critical skill for a progr

Postat: 4 oktober 2017, 18:50:24
av TomasL
bearing skrev:Angående UART kan man använda en processor med dubbla UART, och läsa det man just skickat med UART2, för att dubbelkolla att det blev rätt. Så även detta kan lösas!
Om man använder ett säkert protokoll kommer detta att upptäckas.
Samt det enkla faktum att man får en massa felflaggor, eftersom start/stopp/paritetsbitar inte stämmer

Re: Shipping buggy code: The most critical skill for a progr

Postat: 4 oktober 2017, 19:15:22
av lillahuset
Är det inte jävligt ointressant att diskutera trasig hårdvara?

Re: Shipping buggy code: The most critical skill for a progr

Postat: 4 oktober 2017, 19:32:10
av Micke_s
Att duplicera hårdvara är inte alltid lösningen heller, speciellt inte i low power sammanhang eller där elektroniken ska vara liten.
bitar kan också flippas av kosmisk strålning..

T.ex. jäkligt svårt att detektera att program counter hoppar slumpartat 1-n steg 1 gång under livslängden.

Att ha bra tester där hårdvara är inblandad är väldigt svårt. Så fort du gör något mer i cpu:n så ändras timingen. Anslut jtag och du kör under andra förutsättningar..

Stm32f1 är t.ex rolig. Kan slumpartat tappa i2c interrupt flaggor...

Sedan har man kunden som inte kommer vara kund om det blir för dyrt eller ta för lång tid..

Re: Shipping buggy code: The most critical skill for a progr

Postat: 4 oktober 2017, 19:42:33
av lillahuset
I2C på STM32F103 fick jag aldrig att fungera riktigt i ett projekt för ~10 år sedan (tror jag det var). Erratan var full med I2C-relaterade buggar och work around var rena skämtet.
Det blev bitbangad I2C eftersom det vi läste av inte var minsta tidskritiskt och bara gjordes någon gång per sekund. Sedan dess har jag varit misstänksam mot I2C i STM32.