eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikawygenerować *.eepRe: wygenerować *.eep
  • X-Received: by 2002:a25:c08b:: with SMTP id c133mr32055864ybf.286.1589275919435; Tue,
    12 May 2020 02:31:59 -0700 (PDT)
    X-Received: by 2002:a25:c08b:: with SMTP id c133mr32055864ybf.286.1589275919435; Tue,
    12 May 2020 02:31:59 -0700 (PDT)
    Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!2.eu.feeder.erj
    e.net!feeder.erje.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!n
    ews-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegrou
    ps.com!not-for-mail
    Newsgroups: pl.misc.elektronika
    Date: Tue, 12 May 2020 02:31:59 -0700 (PDT)
    In-Reply-To: <r9c94g$hki$1$Janusz@news.chmurka.net>
    Complaints-To: g...@g...com
    Injection-Info: google-groups.googlegroups.com; posting-host=46.171.220.154;
    posting-account=fcN60AoAAACGnErMsW3A8rTO2UKkGJEn
    NNTP-Posting-Host: 46.171.220.154
    References: <r9a5od$5b4$1$opajak@news.chmurka.net>
    <5eb8e9ea$0$17353$65785112@news.neostrada.pl>
    <r9b7sg$tg4$1$opajak@news.chmurka.net>
    <5eb92921$0$31100$65785112@news.neostrada.pl>
    <r9bdtf$1qv$1$opajak@news.chmurka.net>
    <r9bqma$9pk$1$Janusz@news.chmurka.net>
    <0...@g...com>
    <r9c94g$hki$1$Janusz@news.chmurka.net>
    User-Agent: G2/1.0
    MIME-Version: 1.0
    Message-ID: <0...@g...com>
    Subject: Re: wygenerować *.eep
    From: Dawid Rutkowski <d...@w...pl>
    Injection-Date: Tue, 12 May 2020 09:31:59 +0000
    Content-Type: text/plain; charset="UTF-8"
    Content-Transfer-Encoding: quoted-printable
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:753228
    [ ukryj nagłówki ]

    W dniu poniedziałek, 11 maja 2020 21:30:25 UTC+2 użytkownik Janusz napisał:
    > W dniu 2020-05-11 o 20:03, Dawid Rutkowski pisze:
    > > W dniu poniedziałek, 11 maja 2020 17:23:54 UTC+2 użytkownik Janusz napisał:
    > >> W dniu 2020-05-11 o 13:45, Pawel "O'Pajak" pisze:
    > >>> W dniu 2020-05-11 o 12:29, Grzegorz Niemirowski pisze:
    > >>>> W jakim formacie masz dane wejściowe?
    > >>>
    > >>> Mogę skonwertować dowolnie. Np. 0A,17,F0,30,00,6C itd. Mają wypełnić
    > >>> EEPROMa po kolei. Może być od addr 0. Po prostu dziwne mi się wydaje, że
    > >>> taki Notepad++, czy inne edytory hex nie maja opcji "zapisz jako", albo
    > >>> "eksportuj" do hex/eep.
    > >>> Wierzyć mi się nie chce, że ludzie nie liczą czegoś w arkuszu
    > >>> kalkulacyjnym (bo tak szybciej) i nie zapisują tego do EEPROMu, żeby
    > >>> procek nie musiał się męczyć z obliczeniami.
    > >>
    > >> Oczywiscie że robią, daja sekcję eeprom i tam dane, i tyle :)
    > >> W AS4
    > >> Sekcja __attribute_((section(".eeprom")))
    > >> lub
    > >> zmienna typu EEMEM.
    > >
    > > I co, po kompilacji dostajesz *.hex i *.eep?
    > > Ale mundre ;>

    > No do karmienia programatora wystarczy.

    Ale tak to wymyślili, że tworzą się dwa pliki?
    W sumie najprostsze, nie trzeba wymyślać sztucznych konwencji.
    A jak ktoś chce jeden plik, to będzie miał w ELFie.

    > > Można też napisać bardzo trudny program:
    > > #include <unistd.h>
    > > int main(void)
    > > {
    > > unsigned char dane={0x.., ...};
    > > write(1, dane, sizeof(dane));
    > > }
    > > i dostajemy na standardowym wyjściu plik binarny odpowiadający zawartości tablicy
    dane.
    > > Dalej avr-objcopy.

    > I wyślesz to do programatora?

    Bezpośrednio tego, co wyjdzie z powyższego programu, to akurat do mojego uisp wrzucić
    nie można - ale skonwertowane avr-objcopy (masz to zapewne też w avr studio - OIDP
    jest to gcc, binutils, avr-libc + jeszcze jakieś IDE - więc możesz sobie avr-objcopy
    w wierszu poleceń windows odpalić) na intel hex albo motorola srec już można -
    oczywiście trzeba kazać programatorowi wrzucić to do EEPROM, a nie flash, sam nie
    zgadnie.

    uisp jest fajny, jako dostępny w postaci źródłowej, więc mogę sobie do niego
    dopisywać obsługę nowszych mikrokontrolerów. Najbardziej jestem dumny z dodania
    ATmega2560/1 - jako posiadającego więcej niż 128kB (64k słów 2-bajtowych) flash. Jako
    że kompilator już nie tak łatwo przerobić, drugie 128kB póki co mogę wykorzystywać
    jedynie na dane (akurat tu jest sporo sampli mowy), kod wciąż ograniczony do
    pierwszych 64kB. Trzeba było też pouczyć się linkera, bo "normalnie" dane umieszczane
    są na początku flasha, zaraz za wektorami przerwań.

    To i tak lepsze niż numer, jaki zrobił projektant poprzedniej wersji tego urządzenia
    - podłączył 128kB pamięci kodu do 8051 w tej sposób, że A16 było podłączone do
    dodatkowego wyjścia, a w tablicy z adresami sampli było dodatkowo miejsce na
    informację, jak tą nogę ustawić przy odgrywaniu.
    Żeby jednak jednocześnie nadal mógł się wykonywać kod, był on umieszczony w tych
    128kB w dwóch kopiach - od adresu 0 i od adresu 65536 - a na sample pozostawało
    128kB-2*wielkośćKodu miejsca.

    Drugą ciekawą możliwością, jaką daje dostęp do źródeł, jest możliwość zmiany pinów
    portu równoległego, do których podłączony jest "programator" DAPA - w sytuacji
    sukcesywanego przepalania się tych pinów ;>

    Aha, i jeszcze co do danych.
    Do EEPROM warto wrzucać tylko dane, które rozróżniają poszczególne urządzenia z tym
    samym programem - np. adresy.
    Jeśli są to dane statyczne, to bez sensu wrzucać je w EEPROM.
    Jak danych jest mało i zmieszczą się w wolnym SRAMie (a SRAMu AVRy zwykle mają więcej
    niż EEPROMu), to po prostu robimy statyczną tablicę.
    Jak danych jest więcej, to robimy tablicę
    unsigned char dane[] __attribute__((progmem)) = { 0x.., ...};
    i odwołujemy się do niej zamiast:
    n=dane[x];
    to:
    n=__LPM(dane+x);
    Troszkę to wygodniejsze niż:
    n=eeprom_load(x);
    i do tego można w dość wygodny/automatyczny sposób korzystać z kilku tablic, zamiast
    samemu pamiętać, od którego miejsce w EEPROM zaczyna się dana tablica.

    Aha, i dane mogą być nawet w csv:
    unsigned char dane[] __attribute__((progmem)) = {
    #include "dane.csv"
    };

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: