Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[STM32] Zabezpieczenie przed odczytem kodu

slawek55 20 Maj 2012 11:04 3516 8
  • #1 20 Maj 2012 11:04
    slawek55
    Poziom 23  

    Cześć.
    Tak się zastawałem, czy w STM32 istnieje możliwość zabezpieczenia wgranego programu do pamięci Flash przed odczytem a tym samym skopiowaniem?
    Jeśli tak to gdzie i jak się to robi?
    A AVR-ach były bity konfiguracyjne, które pozwalały na taki odczyt, a w STM32?

    0 8
  • #2 20 Maj 2012 11:40
    gaskoin
    Poziom 38  

    Poczytaj o MPU (memory protection unit w RM0056) i o blokadach flasha w RM0042

    0
  • #3 20 Maj 2012 15:25
    slawek55
    Poziom 23  

    Ale to by znaczyło że, że takiego prostego mechanizmu jak w AVR nie ma poprzez zablokowanie zewnętrznym programatorem?

    0
  • #4 20 Maj 2012 23:29
    kemot55
    Poziom 30  

    Ależ jest i to znacznie lepszy mechanizm bo zabezpieczyć procesor można zarówno programatorem jak i z poziomu programu a odbezpieczenie wymaga skasowania całej pamięci i odblokowanie nie nastąpi do momentu kiedy cała pamięć nie będzie wykasowana (algorytm sprawdza wszystkie komórki - zabezpieczenie przed trikiem z wyłączeniem zasilania po rozpoczęciu procedury kasowania i dobrania się w ten sposób do pozostałego kodu)

    0
  • #5 20 Maj 2012 23:59
    gaskoin
    Poziom 38  

    slawek55 napisał:
    Ale to by znaczyło że, że takiego prostego mechanizmu jak w AVR nie ma poprzez zablokowanie zewnętrznym programatorem?


    Jest lepszy jak kolega napisał wyżej, ale musisz się wczytać w to co Ci podałem bo sam szczegółów nie znam.

    0
  • #6 21 Maj 2012 08:28
    kemot55
    Poziom 30  

    Poczytaj o rejestrze FLASH_OBR (dokument PM0075 dla F10xxx)

    0
  • #7 19 Lis 2012 08:00
    andrew1987
    Poziom 9  

    Próbował ktoś z was zablokować odczyt pamięci flash z poziomu programu ?
    Według not wpisanie do bitów 15-8 (RDP) rejestru FLASH_OPTCR dowolnego bajtu poza 0xaa 0xcc powoduje włączenie blokady odczytu, poziomu 1 zabezpieczeń. Z funkcji bibliotecznych można użyć funkcji FLASH_OB_RDPConfig(OB_RDP_Level_1); dodatkowo można zresetować urządzenie. Testowałem ten mechanizm i nie zadziałał.

    0
  • #8 19 Lis 2012 08:45
    kemot55
    Poziom 30  

    A odblokowałeś FLASH? Chodzi mi o magiczne:

    Kod: c
    Zaloguj się, aby zobaczyć kod

    I oczywiście zabezpieczenie zadziała dopiero po resecie procesora. Wcześniej wszystko działa tak jakby zabezpieczeń nie było pomimo odpowiednich wartości w rejestrach.

    0
  • #9 19 Lis 2012 11:18
    damiano713
    Poziom 14  

    [STM32] Zabezpieczenie przed odczytem kodu

    Jakikolwiek ST-Link (tutaj St-LinkV2 z płytki testowej). Ustawienie tej opcji powoduje zablokowanie odczytu z FLASH aż do pełnego skasowania pamięci do 0xFF.
    Poniżej jest tabela z prawami zapisu do stron pamięci flash. Ustawienie tych opcji powoduje brak możliwości zapisu do pamięci flash z poziomu programu. (o ile sobie nie odblokujemy tego w programie).

    Pozdrawiam

    0
  Szukaj w 5mln produktów