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.

CortexMx GCC - Kompilacja z zabronionym odczytem pamięci flash.

tadzik85 26 Sie 2015 22:32 612 15
  • #1 26 Sie 2015 22:32
    tadzik85
    Poziom 38  

    Jak przekazać gcc by skompilował program, który nie korzysta z odczytów pamięci flash przez LDR? Możliwe jest ograniczenie się do kilku sektorów.

    0 15
  • #2 26 Sie 2015 23:12
    BlueDraco
    Specjalista - Mikrokontrolery

    A nie wystarczy nie kazać czytać tej pamięci w programie? Nie bardzo rozumiem, o co Ci chodzi.

    0
  • #3 26 Sie 2015 23:15
    tadzik85
    Poziom 38  

    BlueDraco napisał:
    A nie wystarczy nie kazać czytać tej pamięci w programie? Nie bardzo rozumiem, o co Ci chodzi.


    O literals. Sam kod czyta przecież choćby adresy czy stale bez naszej wiedzy (choćby SPI1 ta wartość jest niejawnie zapisana we FLASH i odczytywana przez LDR). Umieszcza je za ciałem funkcji....

    Teraz się rozchodzi o to by nie czytał tego za pomocą LDR a.....

    Kopiowanie danych może pozostać standardowe....

    0
  • #4 27 Sie 2015 10:27
    94075
    Użytkownik usunął konto  
  • #5 27 Sie 2015 10:54
    tadzik85
    Poziom 38  

    albertb napisał:
    Kompilator umieszcza, bo mu są potrzebne (do czytania oczywiście ;-) )
    A czy z naszą wiedzą czy nie to zależy tylko od tego jaką wiedzę posiadamy.
    Jeśli nie są mu potrzebne to nie umieści i nie będzie czytał.
    Jeśli natomiast są potrzebne Tobie to Ty je tam umieść.
    To przecież dane.

    Albert


    Umieszcza bo może i jest to optymalne. A ja chcę tego zabronić...... Naprawdę trudno to zrozumieć?

    Zmienne mogą sobie pozostać jak są nawet dostępne przez LDR. To najmniejszy problem. Chodzi o wszelkiego typu dane umieszczane za ciałem funkcji.... Jak adresy funkcji wywoływanych, skoki. adresy zmiennych....

    Inaczej mowiąć chce by kod był wykonywany jedynie przez Fetch z flasha a nie jego odczyt jako danych.

    0
  • #7 27 Sie 2015 11:39
    tadzik85
    Poziom 38  

    szczywronek napisał:
    Wydaje mi się, że w GCC nie ma takiej opcji. Tzn. jest "-mno-text-section-literals" i "-mno-auto-litpools", ale nie dla Cortexów... Dla CM jest tylko "-mslow-flash-data", ale to Cię pewnie nie satysfakcjonuje.


    Satysfakcjonuje.. Ale to rdzenie tylko powyżej M3.... :cry: ...

    Przetestuje to na jakiejś F4.... Ale wsparcia tego dla M0(+). nadal brak......

    0
  • #9 27 Sie 2015 11:49
    94075
    Użytkownik usunął konto  
  • #12 27 Sie 2015 11:51
    tadzik85
    Poziom 38  

    albertb napisał:
    tadzik85 napisał:
    Umieszcza bo może i jest to optymalne. A ja chcę tego zabronić...... Naprawdę trudno to zrozumieć?

    Naprawdę.
    Raczej nikt nie pisze programu po to, aby czegoś zabronić.
    Więc dalej brniesz w ideę, która przy Twoim tłumaczeniu wydaje się bez sensu.
    Lepiej napisz co chcesz osiągnąć, a nie co zabronić.

    Albert


    Idee.. Wow nie spiesz się tak....

    Chce kod który nie czyta z flasha przez D-bus.....

    Cel PcROP.....

    0
  • #13 27 Sie 2015 12:07
    94075
    Użytkownik usunął konto  
  • #14 27 Sie 2015 12:08
    tadzik85
    Poziom 38  

    albertb napisał:
    tadzik85 napisał:
    Cel PcROP.....

    I naprawdę tak trudno było napisać to w pierwszym poście?

    Albert


    Szukasz dziury w całym po rozwiązaniu problemu....

    0
  • #16 27 Sie 2015 14:36
    tadzik85
    Poziom 38  

    JarekC napisał:
    Witam,

    A patrzyłeś u źródła czyli na stronach ST:

    http://www.st.com/web/catalog/tools/FM147/CL1794/SC961/SS1743/LN1920/PF262417#

    Mają przykład realizacji co prawda dla Keila lub IARa ale może da się to przeportować na GCC.

    Pozdrawiam
    JarekC


    1. Gdyby się dało nie pytałbym.
    2. Sam Keil ma to zaimplementowane dla M0(+) ale jak dokumentacja twierdzi nadal nie w pelni przetestowane).
    3. ST nie wspiera GCC.

    0