-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.chmurka.net!.POSTED.213.192.88.68!
not-for-mail
From: Piotr Gałka <p...@c...pl>
Newsgroups: pl.misc.elektronika
Subject: Re: C++ ośla łączka
Date: Thu, 16 Feb 2023 15:33:40 +0100
Organization: news.chmurka.net
Message-ID: <tsles1$qru$1$PiotrGalka@news.chmurka.net>
References: <63da914d$0$19625$65785112@news.neostrada.pl>
<16qbnwht7z74n.8802zax2iioq$.dlg@40tude.net>
<63dad430$0$9589$65785112@news.neostrada.pl>
<trelrs$g0p$1$Janusz@news.chmurka.net>
<trgbkf$st9$1$PiotrGalka@news.chmurka.net>
<63dbd22e$0$9601$65785112@news.neostrada.pl>
<ts6rps$roo$1$PiotrGalka@news.chmurka.net>
<63e9f424$0$19625$65785112@news.neostrada.pl>
<tsg6eb$96a$1$PiotrGalka@news.chmurka.net> <tsgv8m$2kn8s$1@dont-email.me>
<tsiqth$55n$1$PiotrGalka@news.chmurka.net> <tsj9if$2v62r$1@dont-email.me>
<tsl72n$lpl$1$PiotrGalka@news.chmurka.net> <tsl934$38gns$2@dont-email.me>
NNTP-Posting-Host: 213.192.88.68
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Thu, 16 Feb 2023 14:33:37 +0000 (UTC)
Injection-Info: news.chmurka.net; posting-account="PiotrGalka";
posting-host="213.192.88.68"; logging-data="27518";
mail-complaints-to="abuse-news.(at).chmurka.net"
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.7.2
Content-Language: en-US, pl
In-Reply-To: <tsl934$38gns$2@dont-email.me>
Xref: news-archive.icm.edu.pl pl.misc.elektronika:778369
[ ukryj nagłówki ]W dniu 2023-02-16 o 13:54, heby pisze:
>> Już opanował wywoływanie funkcji po jej skopiowaniu do RAMu.
>
> Czytaj wątek z przed paru dni:
>
> "MCU - start programu z RAM"
Przesłałem bratu (on nie czyta Usenetu) wszystkie wiadomości z tamtego
wątku.
W czasie jak pisałem dalszą część tej wiadomości wstępnie powiedział, że
według niego nie ma tam tego co on szuka. Ale rozmawialiśmy tylko
zgrubnie (ja siedzę w swoim pokoju a on piętro niżej). Coś mówił o
sekcjach, ale że to... coś tam (nie dosłyszałem).
Też rzucę okiem, tylko, że tak właściwie nie mam na to czasu.
> Było to omawiane w tym wątku. Ogólnie, jesli ma to związek z
> programowaniem flasha, to boje się zapytać, czy jakoś się zabezpieczacie
> prze utratą zasilania w trakcie.
Chyba powinien się obrazić :)
Napisałeś tak, jakby przeprogramowywanie flasha było jakąś nadzwyczajną
czynnością, a to przecież chyba wszyscy robią.
Są jeszcze jakieś urządzenia bez upgrade?
Do tej pory używaliśmy AtXmega z EEROMem na pokładzie. O ile się
zorientowaliśmy to w ARM (które chyba dużo ludzi używa) EEPROM to jakaś
egzotyka. Stosowana jest emulacja EEPROM we flashu więc wszyscy, którzy
chcą EEPROMu wewnątrz procka muszą programować Flasha.
Od czasu jak tylko przenieśliśmy się z procesorów OTP na flash (jak
pojawiły się pierwsze Atmele) jesteśmy moim zdaniem dobrze zabezpieczeni.
Pierwsza linia obrony:
Nasze urządzenia zasilane są z zasilaczy z podtrzymaniem bateryjnym
(starczającym na kilka godzin). Dopóki nie ma tak długich przerw w
zasilaniu to zanik napięcia zasilania urządzenia praktycznie nie zdarza
się przez lata.
Druga linia obrony:
Jest czujnik napięcia na elektrolicie przed stabilizatorem VCC.
Od przerwania z tego czujnika do choćby drgnięcia w dół napięcia VCC
mija więcej czasu niż flash potrzebuje na dokończenie rozpoczętego
procesu programowania, czy kasowania strony - czyli (pod warunkiem, że
procesor po tym przerwaniu wyłączy wszelkie zbędne obciążenia) każda
rozpoczęta operacja na flashu zostanie dokończona w komfortowych
warunkach. Oczywiście po tym NMI następna operacja nie zostanie rozpoczęta.
To zabezpieczenie występuje tylko w urządzeniach, które przechowują we
flashu jakieś dane. Na przykład nie ma go w czytnikach RFID. Tam
uważamy, że pozostałe zabezpieczenia wystarczą bo tam chodzi tylko o
upgrade, a on się skutecznie broni sam.
Trzecia linia obrony:
Brown-out, który zadziała po tym wszystkim zabezpiecza przed zgłupieniem
procesora, który mógłby wtedy coś nabruździć we flashu.
Różne inne zabezpieczenia, którym trudno nadać kolejne numery:
- ważne informacje we flashu mają sumy kontrolne. Po resecie procesor je
sprawdza. Jak się nie zgadza to przyjmuje bezpieczne wartości default.
- informacja o każdym resecie trafia do rejestracji i serwer może po
resecie skontrolować całą zawartość urządzenia.
- produkujemy urządzenia przez 'upgrade' z programu testowego to
oznacza, że w każdym urządzeniu są praktycznie dwie kopie programu.
- po resecie bootloader sprawdza crc32 programu i jak jest błędne to
sprawdza crc32 upgrade'u i ewentualnie wykonuje upgrade.
- przesyłanie upgrade'u nie niszczy programu (on nadal normalnie działa)
więc przerwanie przesyłania upgrade'u w dowolnym momencie nie jest
problemem,
- dopiero jak przyjdą wszystkie strony upgrade'u jest sprawdzany jego
podpis i upgrade jest wykonywany - zakładamy, że jakby upgrade został
przerwany w tym trakcie to po resecie crc32 to wykryje i upgrade
rozpocznie się od nowa (nie przesyłanie a wykonywanie).
Dotychczas nie zauważyliśmy problemu, którego źródłem byłoby
niedokończenie zapisu flasha.
P.G.
Następne wpisy z tego wątku
- 16.02.23 15:37 J.F
- 16.02.23 16:05 Piotr Gałka
- 16.02.23 17:56 heby
- 16.02.23 18:01 heby
- 16.02.23 19:11 Grzegorz Niemirowski
- 16.02.23 19:22 Marek
- 16.02.23 19:27 Marek
- 16.02.23 19:56 heby
- 16.02.23 19:57 heby
- 17.02.23 02:28 JDX
- 17.02.23 02:35 JDX
- 17.02.23 07:17 Marek
- 17.02.23 09:18 heby
- 17.02.23 09:30 J.F
- 17.02.23 10:17 JDX
Najnowsze wątki z tej grupy
- Dziwne zachowanie magistrali adresowej w 8085
- Współczesne mierniki zniekształceń nieliniowych THD audio, produkują jakieś?
- Jaki silikon lub może klej?
- Smar do video
- Litowe baterie AA Li/FeS2 a alkaliczne
- "ogrodowa linia napowietrzna"
- jaki zasilacz laboratoryjny
- jaki zasilacz laboratoryjny
- Puszka w ziemię
- T-1000 was here
- Ściąganie hasła frezem
- Koszyk okrągły, walec 3x AA, na duże paluszki R6
- Brak bolca ochronnego ładowarki oznacza pożar
- AMS spalony szybkim zasilaczem USB
- stalowe bezpieczniki
Najnowsze wątki
- 2025-02-12 Warszawa => Expert Recruiter 360 <=
- 2025-02-12 Ostrów Wielkopolski => Area Sales Manager OZE <=
- 2025-02-12 Bieruń => Regionalny Kierownik Sprzedaży (OZE) <=
- 2025-02-12 Dęblin => Node.js / Fullstack Developer <=
- 2025-02-12 Kraków => PHP Full Stack Developer <=
- 2025-02-12 Karta dźwiękowa stereo
- 2025-02-12 Dęblin => JavaScript / Node / Fullstack Developer <=
- 2025-02-12 Gdańsk => Specjalista ds. Sprzedaży <=
- 2025-02-12 Łódź => NodeJS Developer <=
- 2025-02-12 Błonie => Sales Specialist <=
- 2025-02-12 Dziwne zachowanie magistrali adresowej w 8085
- 2025-02-11 Mini pecet
- 2025-02-10 Spalił się spaliniak
- 2025-02-10 zarowka wifi - z sensowna apka lub lepiej albo lokalnie lub przez web. I zeby harmonogram miala
- 2025-02-10 Chrzanów => Programista NodeJS <=