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
  • Path: news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
    From: Sebastian Biały <h...@p...onet.pl>
    Newsgroups: pl.misc.elektronika
    Subject: Re: [OT] Zarządzanie konfiguracją modułów kodu źródłowego
    Date: Sun, 06 May 2012 19:00:34 +0200
    Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
    Lines: 43
    Message-ID: <jo6ann$crm$1@inews.gazeta.pl>
    References: <o...@j...jedi> <jo5tgs$asd$1@inews.gazeta.pl>
    <o...@j...jedi> <jo5vi6$g9s$1@inews.gazeta.pl>
    <o...@j...jedi>
    <4fa696e8$0$1312$65785112@news.neostrada.pl>
    <jo65o7$oc$1@inews.gazeta.pl>
    <4fa6a448$0$26682$65785112@news.neostrada.pl>
    NNTP-Posting-Host: 83.142.222.167
    Mime-Version: 1.0
    Content-Type: text/plain; charset=UTF-8; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: inews.gazeta.pl 1336323639 13174 83.142.222.167 (6 May 2012 17:00:39 GMT)
    X-Complaints-To: u...@a...pl
    NNTP-Posting-Date: Sun, 6 May 2012 17:00:39 +0000 (UTC)
    X-User: sebo.bialy
    In-Reply-To: <4fa6a448$0$26682$65785112@news.neostrada.pl>
    User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.16)
    Gecko/20101125 Thunderbird/3.0.11
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:630703
    [ ukryj 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: