eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronika[OT] Zarządzanie konfiguracją modułów kodu źródłowegoRe: [OT] Zarządzanie konfiguracją modułów kodu źródłowego
  • Data: 2012-05-06 15:59:13
    Temat: Re: [OT] Zarządzanie konfiguracją modułów kodu źródłowego
    Od: Zbych <z...@o...pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    W dniu 06.05.2012 15:44, Andrzej Ekiert pisze:
    > Dnia 06-05-2012 o 15:23:06 Zbych <z...@o...pl> napisał(a):
    >
    >>>> A to już zwykłe makra, definy, funkcje inline, specjalizacje szablonów
    >>>> nie wystarczą do ukrycia fizycznego położenia pinów?
    >>>
    >>> Wystarczą, ale dla każdego projektu trzeba te define'y inaczej ustawić -
    >>> ta sama nazwa, inna wartość.
    >>
    >> Zgadza się i zakładam, że rzeczy specyficzne dla projektu trzymasz w
    >> osobnym pliku, który leży sobie w katalogu z projektem i jest przez
    >> bibliotekę tylko includowany. Zgadza się?
    >>
    >
    > Tak.

    No to dużo więcej już nie wymyślisz. Co najwyżej możesz w przypadku
    dokładania nowych stałych/parametrów napisać:

    #ifndef XYZ
    #define XYZ 12345
    #endif

    Wtedy biblioteka ze starym programem nie będzie krzyczała, że nie ma
    zdefiniowanych parametrów.

    >
    >> Ja jak na razie na I2c wieszałem jakieś pamięci, RTC itp. badziewie.
    >> Do jego obsługi wystarczały mi 3 funkcje typu wyślij blok danych,
    >> odbierz blok danych, sprawdź gotowość. Współdzielenie zabezpieczałem
    >> mutexami.
    >> Funkcje RTC czy obsługa pamięci wprost wołały te funkcje. W innym
    >> procku dodawałem tylko inną bibliotekę do I2c. Interface zostawał ten
    >> sam. Zero narzutu.
    >
    > Masz driver do RTC w bibliotece. Procesor ma 2 moduły sprzętowe I2C1 i
    > I2C2. Musisz przekazać driverowi RTC informację, funkcje dotyczące
    > którego modułu ma wywołać: odbierz_blok_danych_z_I2C1() czy
    > odbierz_blok_danych_z_I2C2(). Albo to robisz na poziomie #define, albo
    > definiując "driver" do I2C i przekazując modułowi I2C handle do tego
    > drivera (jest narzut). Ja chcę na poziomie #define, ale pragnę sobie
    > usprawnić zarządzanie takimi #define.

    No to użyj tego define. I tak jak podałem wyżej możesz zrobić domyślną
    definicję dla starych programów.

    >>>> Wolę zrobić kopię biblioteki z projektu x-1 i nanieść poprawki.
    >>>
    >>> Wykrywasz błąd albo robisz usprawnienie w x-1 i dopiero masz poprawianie
    >>> wszędzie gdzie ta kopia jest. Brrr...
    >>
    >> To jest niewątpliwie wada. Ale powiedzmy sobie szczerze, ile można
    >> spieprzyć w kodzie obsługi I2C, uarta itp?
    >
    > Spieprzyć zawsze można. Poza tym moduł może być czymś bardziej złożonym.
    > Np. implementacją protokołu sieciowego.

    Takie rzeczy jak protokół to już dla mnie warstwa wyższa :-) i tu nie
    mam obaw o współdzielenie.

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

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: