Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA w 2025? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 25 kwi 2025, o 11:00


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 12 ] 
    Autor Wiadomość
    PostNapisane: 20 maja 2021, o 15:12 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 17 lut 2013
    Posty: 158
    Lokalizacja: KTT
    Pomógł: 1

    ... na temat zabezpieczenia programu.

    Witam,
    Ostatnio czytałem na temat lock-bitów w AVR-ach (a konkretnie w XMwega) pod kątem zabezpieczenia procka przed niepowołanym dostępem. Okazuje się, że to nie jest takie oczywiste jak się wydaje, ponieważ po zabezpieczeniu procka przed odczytem z FLASH, mogą być problemy z odwołaniem się do stałych w pamięci FLASH.
    Jednocześnie zainteresowałem się sygnaturą produkcyjną w prockach xmega i widzę po typie strukturalnym NVM_PROD_SIGNATURES_t, że zapisanych jest tam sporo danych.
    Zastanawia mnie czy każdy egzemplarz procka ma swoje unikalne informacje w tej strukturze i czy można ją wykorzystać do zabezpieczenia programu?
    Pomysł jest taki, żeby przy starcie programu odczytywać te dane i sprawdzać z danymi danego porcka zapisanymi np. w jakiejś tabeli we flash. Jeśli tak, program idzie dalej, jeśli nie to koniec (pułapka programowa). Czyli program nie pójdzie na innym procku niż ten, na który został napisany.

    Mam tylko problem z realizacją tego pomysłu w eclipse. Czy są jakieś proste sposoby na odczytanie tych informacji (z sygnatury produkcyjnej) i realizację mojego pomysłu? Czy są one unikalne dla każdego egzemplarza? Będę wdzięczny za podpowiedzi i sugestie.

    _________________
    Gordon



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 30 maja 2021, o 14:06 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 17 lut 2013
    Posty: 158
    Lokalizacja: KTT
    Pomógł: 1

    Już wiem, że informacje w sygnaturze produkcyjnej są unikalne dla każdego procka. Pozostaje kwestia ich odczytania w programie.
    Chyba nikt oprócz mnie się nad tym nie zastanawiał...

    _________________
    Gordon



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 30 maja 2021, o 14:38 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 04 paź 2013
    Posty: 495
    Lokalizacja: Siedlce
    Pomógł: 9

    gordon10 napisał(a):
    Chyba nikt oprócz mnie się nad tym nie zastanawiał...


    Kolego zastanawiał, zastanawiał... ;)
    viewtopic.php?p=224996#p224996

    _________________
    Ucz się ucz ,bo po to tutaj jesteś...



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 11 cze 2021, o 15:54 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 17 lut 2013
    Posty: 158
    Lokalizacja: KTT
    Pomógł: 1

    To już jest nas co najmniej dwóch :)
    Z mojej wiedzy w Atmel Studio są specjalne funkcje we frameworku ASF do odczytu tych informacji z Xmega. Tylko jak to zrobić w Eclipse (ja nie używam AS)???
    W Xmega dostępem do pamięci zajmuje się kontroler NVM, za jego pomocą można się dobrać do danych z sygnatur produkcyjnej i użytkownika. Jednak teoria teorią, ale praktycznie tego nie rozkminiłem.

    _________________
    Gordon



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 13 cze 2021, o 10:20 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 17 lut 2013
    Posty: 158
    Lokalizacja: KTT
    Pomógł: 1

    Grzebiąc dalej w necie i w pdf-ach stworzyłem 'szkic' funkcji odczytującej jeden bajt sygnatury xmega.

    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    Niestety nie działa. Nie wiem czy dobrze wpisuję/przekazuję adres.

    _________________
    Gordon



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 13 cze 2021, o 19:47 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 29 lis 2019
    Posty: 145
    Pomógł: 37

    Wg manuala https://ww1.microchip.com/downloads/en/ ... Manual.pdf str 416, punkt 33.11.2.14 trzeba się pobawić assemblerem.
    Nie bardzo znam inline asm więc na pewno są błędy:
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    _________________
    Think for yourself and question authority.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 17 cze 2021, o 13:38 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 17 lut 2013
    Posty: 158
    Lokalizacja: KTT
    Pomógł: 1

    Dzięki za sugestie i podpowiedzi. Poprawiłem literówki ale niestety nie działa.

    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Nie wiem czy adresu nie trzeba załadować wcześniej do rejestrów NVM.ADDR0 - NVM.ADDR2. No nic będę próbował dalej w wolnej chwili.

    _________________
    Gordon



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 17 cze 2021, o 19:39 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 29 lis 2019
    Posty: 145
    Pomógł: 37

    Wykomentowałeś instrukcję która robi robotę to jak ma działać?

    _________________
    Think for yourself and question authority.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 17 cze 2021, o 20:22 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 17 lut 2013
    Posty: 158
    Lokalizacja: KTT
    Pomógł: 1

    Sprawdzałem oczywiście niezakomentowaną. Tu mi się jakoś tak wkleiło :)
    Sprawdzałem jako: asm... i asm volatile... też nic.
    Podejrzewam trop jest dobry, tylko diabeł jak zwykle tkwi w szczegółach.

    _________________
    Gordon



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 17 cze 2021, o 22:00 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 17 lut 2013
    Posty: 158
    Lokalizacja: KTT
    Pomógł: 1

    Pogrzebałem jeszcze w pikach ASF w AS z nadzieją, że znajdę gotowca i coś tam wyszperałem, no ale cóż, assemblera nie znam więc nie powalczę.

    Moje znaleziska:
    w pliku nvm.h jest funkcja:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    a co do funkcji nvm_read_byte() znalazłem tylko coś takiego:
    w pliku nvm_asm.s

    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język asm
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    pozostaje tylko się podszkolić z asm ;)

    _________________
    Gordon



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 19 cze 2021, o 14:54 
    Offline
    Użytkownik

    Dołączył(a): 07 cze 2016
    Posty: 563
    Pomógł: 143

    Możesz spróbować tak:
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    Powinno zadziałać (sprawdzone na ATxmega128A3U).


    Autor postu otrzymał pochwałę


    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 19 cze 2021, o 16:08 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 17 lut 2013
    Posty: 158
    Lokalizacja: KTT
    Pomógł: 1

    No i śmiga jak ta lala :) Sprawdziłem na Xmega32A4U. Dzięki andrews.

    _________________
    Gordon



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    Wyświetl posty nie starsze niż:  Sortuj wg  
    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 12 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 gości


    Nie możesz rozpoczynać nowych wątków
    Nie możesz odpowiadać w wątkach
    Nie możesz edytować swoich postów
    Nie możesz usuwać swoich postów
    Nie możesz dodawać załączników

    Szukaj:
    Skocz do:  
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO