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 19:00:34
    Temat: Re: [OT] Zarządzanie konfiguracją modułów kodu źródłowego
    Od: Sebastian Biały <h...@p...onet.pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    On 2012-05-06 18:18, mk wrote:
    >> Nie. plik lokalny dla projektu nadpisuje parametry domyślne.
    > Używając #undef???

    Uzywając def.

    Np. tak:

    default-config: #define UART_STOP_BITS 1

    project-config: #include "default.h", #define UART_STOP_BITS 2

    > IMO zdecydowanie lepsze jest jednak włączenie najpierw pliku z
    > konfiguracją użytkownika, a potem nagłówek z konfiguracją domyślną -- to
    > zresztą powszechna praktyka.

    Zdecydowana lepszośc tutaj dyskusyjna. Oba rozwiązania działają.

    > Plik nagłówkowy "defaultconfiguration.h" nie definiuje parametrów już
    > zdefiniowanych (#ifndef), a jedynie te które jeszcze nie zostały
    > zdefiniowane nadając im wartości domyślne (+ ewentualnie jakiś komunikat
    > przy pomocy #warning), obliczając je (np. na podstawie parametrów
    > podanych przez użytkownika) lub walnąć błędem (#error) jeśli parametr ma
    > być obligatoryjne określony przez użytkownika.

    W drugą stronę działa to tak samo (nie)skutecznie bez #ifndef, kwestia
    implementacji.

    IMO to nie konfiguracja powinna szukać bledów w #define i wyliczać
    pośrednie parametry tylko implementacja. Więc detekcje źle ustawionych
    parametrów robię w pliku c. To dlatego że to w pliku c wiadomo jaka
    konfiguracja jest nielegalna, np. uart avr ie obsługuje 2 bitów stopu.
    Gdyby te zależności miał wyliczać globalny plik default-config.h to
    wiedza o uart avr wyciekła by z implementacji specyficznej dla hardware
    do globalnej przestrzeni gdzie ją ciężko utrzymać.

    W moim rozwiązaniu zależności są detektowane i obliczane w c drivera bo
    nie ma innej możliwości. I dzieki temu plik default-config jest czysty o
    specyficznej wiedzy o hardware. Nie zawsze, ale zazwyczaj. Innymi słowy
    wszystko co dotyczy avr znajduje się w katalogu /avr/ i nie przecieka do
    inych plików.

    Przy czym żeby było jasno - oba podejścia są tak samo mizerne.

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: