-
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
- Szukam: czujnik ruchu z możliwością zaączenia na stałe
- kabelek - kynar ?
- Podnieść masę o 0.6V
- Moduł BT BLE 5.0
- Pomiar amplitudy w zegarku mechanicznym
- ale zawziętość i cierpliwość
- Chiński elektrolizer tester wody
- Dzisiaj Bentlejem czyli przybieżeli sześciu Króli do Rysia na kasie
- ciekawy układ magnetofonu
- Mikroskop 3D
- Jak być bezpiecznym z Li-Ion?
- Szukam monitora HDMI ok. 4"
- Obcinaczki z łapaczem
- termostat do lodowki
- SEP 1 kV E
Najnowsze wątki
- 2024-12-31 Szukam: czujnik ruchu z możliwością zaączenia na stałe
- 2024-12-31 Warszawa => Solution Architect (Java background) <=
- 2024-12-31 Warszawa => Starszy Konsultant AWS <=
- 2024-12-31 Warszawa => International Freight Forwarder <=
- 2024-12-31 Odpowiedzialność w spółce z oo
- 2024-12-31 Warszawa => Spedytor Międzynarodowy <=
- 2024-12-31 Błonie => Analityk Systemów Informatycznych (TMS SPEED) <=
- 2024-12-31 Warszawa => Specjalista ds. bezpieczeństwa informacji i ciągłości
- 2024-12-31 8%
- 2024-12-31 Błonie => Administrator systemów <=
- 2024-12-31 Błonie => IT System Administrator <=
- 2024-12-31 Mińsk Mazowiecki => Area Sales Manager OZE <=
- 2024-12-31 Wrocław => Specjalista ds. Sprzedaży (transport drogowy) <=
- 2024-12-31 Warszawa => Helpdesk - I linia wsparcia <=
- 2024-12-31 kabelek - kynar ?