-
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.
Następne wpisy z tego wątku
- 06.05.12 21:32 mk
- 06.05.12 22:05 Sebastian Biały
- 06.05.12 22:25 mk
- 06.05.12 23:02 Andrzej Ekiert
- 07.05.12 01:25 mk
- 07.05.12 02:21 Michoo
- 07.05.12 15:52 Nijak
- 07.05.12 21:23 Andrzej Ekiert
- 07.05.12 21:42 Paweł
- 07.05.12 22:46 RoMan Mandziejewicz
- 08.05.12 07:56 Paweł
- 08.05.12 08:50 RoMan Mandziejewicz
- 08.05.12 15:13 janusz_kk1
- 09.05.12 09:07 Artur M. Piwko
- 09.05.12 10:03 janusz_kk1
Najnowsze wątki z tej grupy
- Współczesne mierniki zniekształceń nieliniowych THD audio, produkują jakieś?
- Jaki silikon lub może klej?
- Smar do video
- Litowe baterie AA Li/FeS2 a alkaliczne
- "ogrodowa linia napowietrzna"
- jaki zasilacz laboratoryjny
- jaki zasilacz laboratoryjny
- Puszka w ziemię
- T-1000 was here
- Ściąganie hasła frezem
- Koszyk okrągły, walec 3x AA, na duże paluszki R6
- Brak bolca ochronnego ładowarki oznacza pożar
- AMS spalony szybkim zasilaczem USB
- stalowe bezpieczniki
- Wyświtlacz ramki cyfrowej
Najnowsze wątki
- 2025-02-10 Spalił się spaliniak
- 2025-02-10 zarowka wifi - z sensowna apka lub lepiej albo lokalnie lub przez web. I zeby harmonogram miala
- 2025-02-10 Chrzanów => Programista NodeJS <=
- 2025-02-10 Kraków => DevOps Engineer (Junior or Regular level) <=
- 2025-02-10 Dlaczego takie preferencje banków?
- 2025-02-10 Białystok => iOS Developer (Swift) <=
- 2025-02-10 Mińsk Mazowiecki => Team Lead / Tribe Lead FrontEnd <=
- 2025-02-10 Białystok => System Architect (Java background) <=
- 2025-02-10 Współczesne mierniki zniekształceń nieliniowych THD audio, produkują jakieś?
- 2025-02-10 Szczecin => Senior Field Sales (system ERP) <=
- 2025-02-10 Gliwice => Business Development Manager - Dział Sieci i Bezpieczeńst
- 2025-02-10 Chrzanów => Specjalista ds. public relations <=
- 2025-02-10 Chrzanów => NodeJS Developer <=
- 2025-02-10 Warszawa => JavaScript / Node / Fullstack Developer <=
- 2025-02-10 Gliwice => Ekspert IT (obszar systemów sieciowych) <=