Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Programowanie pamieci Flash z poziomu uP przy brak EEpromu

Arusek 29 Sep 2006 10:01 1467 11
  • #1
    Arusek
    Level 14  
    Witam.
    Dowiedzilem sie ostatnio ze mozna programowac wewnetrzna pamiec Flash z poziomu programu gdy np nasz uP nie posiada pamieci EEprom.( MSP430)
    Mam kilka ksiazek z Btc ale tam ani slowa o tym nie znalazlem. Jedynie w ksiazce Bascoma jest troszke o Bootloaderze..czy to wlasnie to?
    moze zamiescilby ktos jakis przykładowy listing?
    Pozdrawiam
  • #2
    Arusek
    Level 14  
    oj widze ze tamat nie do ruszenia :(
  • #3
    markosik20
    Level 33  
    Istnieje taka mozliwośc ale nie we wszystkich uP i róźnie się do tego podchodzi zarówno od strony sprzętowej jak i programowej.
  • #4
    timo66
    Level 23  
    nie zabardzo umiem programowac :cry: ale wiem zeby flash zaprogramowac to mozna przez Bootloadera
  • #5
    markosik20
    Level 33  
    Tylko w procku musi ten Bootloader już być zaimplementowany. A tak w ogóle o jakiego uP się tutaj rozchodzi bo bec tej podstawowej inf. to mozna sobie tak gadać i gadać w niekończonośc.
  • #6
    Arusek
    Level 14  
    hej..powiem po ktorce o co chodzi..
    jest zrobiony przekaznik czasowy..programujesz czasy i zapis czasów byl zrobiony do EEpromu.
    zrobilem to na Atmedze. itd..inny koles zrobil ten sam przekaznik bo nasza Atemga8 nie przechodzila testów EMC. i uzył MSP430F122. i tak mnie zaciekawilo ze nie dołaczyl zadnego zewnetrznego EEpromu.
    uP ma bootloadera..tylko ciekawi mnie ja kon to zrobil..myslalem ze bootloader jest tylko do wgrywania przez Rs232 zewnetrznego programu..a jednak jakos mozna i stale uzyte w programie wpisywac do pamieci..
  • #7
    markosik20
    Level 33  
    Jest to do zrobienia. Trzeba skomunikować się programowo z bootloaderem (który też jest programem) i zapisać w pamięci programu to co nas interesuje. Oczywiście obszar pamięci do wykorzytsania jest ograniczony i zależny od uzytego uP. Wszystko opisane jest pdf-ch.
  • #8
    Arusek
    Level 14  
    to wiem ale jak naraize wszystkie artykuly itp to tylko przykłady jak zaladowac program do procka poprzez rs232...a chodzi o jakis konkretny przykład w c.
    no nic..trzeba bedzie sie zaglebic w temat.
  • #9
    prokopcio
    Level 29  
    jak masz przykłady jak załadować program przez rs232 to masz gotowe rozwiązanie tylko musisz wywalić wszystko z programu bootloadera co dotyczy komunikacji rs232 (odbierania danych do zapisu) i zapisać swoją wartość z programu (zmienną) co będzie zadaniem o wiele łatwiejszym co nie zmienia faktu, że tak czy inaczej w temat zgłębić się musisz :-) - ja Ci nie pomogę bezpośrednio bo nieznam "c"... Bootloader to jest poprostu podprogram umieszczony na końcu pamięci programu i ma on możliwość modyfikacji pamięci programu znajdującej się "przed nim" - możesz poprostu stworzyć króciótki bootloader jako procedurkę zapisującą daną do poamięci flesh - zajmie to kilkanaście/kilkadziesiąt bajtów. Przelicz sobie na ile czasu pracy wystarczy ci tej pamięci - nie może ona być nieskończenie wiele razy modyfikowana. powodzenia.
  • #10
    kamyczek
    Level 38  
    Może kolega wyjaśni na czym polegać ma to programowanie bo zaprogramowac mikrokontroler napewno można , czy koledze chodzi o programowanie pamięci flash np zmiennymi podczas pracy programu (używanie flasha tak jak eepromu) Nie jestem biegły w MPS430 i nie mam pojęcia czy można to zrobić w tych prockach . Moge powiedziec ze taka możliosc posiadaja mikrokontrolery atmela , pice , i motorole rodziny hc908 i hc 912 .
  • #11
    prokopcio
    Level 29  
    nie wiem jak w MPS430 ale skoro piszesz, że ma on obszar Bootloader to nic nie stoi na przeszkodzie, żeby właśnie wykorzystać pamięć flesh do przehowania (zapamiętania) danych. Wtedy należy tak jak piszesz "zaprogramować mikrokontroler" ale nie cały tylko np. obszar ze stałymi - wtedy program główny będzie odczytywał te dane z pamięci programu tak jak stałe w niej zapisane (np. dyrektywą ".db") a w momencie, kiedy tą wartość chcesz zmodyfikować to przechodzisz (skaczesz) do programu bootloadera, który ma możliwość "wgrania"/modyfikacji programu i zmieniasz nim tylko fragment pamięci programu w którym przechowujesz dane. potem wracasz do programu głównego. Nie potrafię tego lepiej wytłumaczyć.

    Dodano po 3 [minuty]:

    kamyczek wrote:
    zaprogramowac mikrokontroler napewno można

    no i przecież o to chodzi... programując mikrokontroler programujesz (zapisujesz) przecież również dane (stałe), które w programie możesz odczytywać tak jak teksty LCD, stałe itp. nie musisz przecież modyfikować programu głównego tylko właśnie same dane.
  • #12
    Arusek
    Level 14  
    Ok..to jednak trzeba samemu sie wgryzc konkretnie w temat..zobaczymy jak bedzie..jesli sie uda..to przykład zamieszcze na forum.
    Pozdrawiam