SZARP PLC HOWTO | ||
---|---|---|
Poprzedni | Rozdział 12. Kompilacja programów technologicznych sterowników z wykorzystaniem skryptu verslin | Następny |
Skrypt verslin.pl uruchamiany jest w katalogu drzewa programów technologicznych zawierającym program wykonawczy sterownika w celu jego kompilacji prowadzącej do wygenerowania plików *.nex lub *.hex, a także modyfikacji logów związanych z samym programem, platformą (eprom.log), biblioteką procedur (prog.log i ewentualnie lib.log) oraz drzewem programów technologicznych (global.log).
Każdorazowe wywołanie skryptu musi (we wcześniejszych wersjach nie było to obligatoryjne) być poprzedzone wpisem komentarza do skojarzonego z programem wykonawczym logu, zawierającego krótki opis wprowadzanych zmian w programie. Opis powinien znajdować się na końcu pliku logu i być otoczony znakami specjalnymi "#" np.:
# Zmiana szybkości przesuwu rusztu #Jeśli komentarz składa się z kilku linii tekstu, każda z nich powinna wyglądać identycznie jak linia początkowa np.:
# Zmiana szybkości przesuwu rusztu # # Zwiększenie podmuchu # # Zwiększenie wyciągu #W przypadku dokonywania zmian w bibliotece procedur, konieczny jest również wpis do pliku logu biblioteki (format taki sam, jak dla pliku logu programu technologicznego).
Składnia wywołania skryptu verslin.pl jest następująca:
verslin.pl prefix [-n] [-o <nazwa_pliku>] [-d|-D <dyrektywa>] [-x] [-c] [-v] [-wt] [-l] [-b <numer biblioteki>] [-e <ERRORLEVEL>]Znaczenie poszczególnych opcji:
prefix - nazwa (czteroliterowy początek) kompilowanego programu (parametr obowiązkowy)
-n - nie modyfikuj logów; parametr przydatny przy tworzeniu większej ilości kodu i szukaniu błędów przy kilkunastu - kilkudziesięciu kompilacjach
-o <nazwa_pliku> - nazwij plik wynikowy *.nex/*.hex inaczej niżby to wynikało z nazwy pliku źródłowego (jako argument do tej opcji podać należy nazwę pliku bez rozszerzenia); opcja przydatna w połączeniu z opcją -d
-d|-D <dyrektywa> - specyfikuje dyrektywę preprocesora (np. KOCIOL_1) używaną podczas kompilacji; w wersji -D - dyrektywa jest dodatkowo zapisywana w pliku ports; dyrektywy zapisane w pliku ports są stosowane podczas kompilacji automatycznie, zatem wystarczy jednorazowe podanie opcji -D
UWAGA - obecnie dyrektywy te nie są zapisywane w pliku *defi.h (tak jak działo się to we wcześniejszych wersjach verslin-a); jeżeli w pliku tym byłaby taka definicja (pozostałość po kompilacji starszą wersją skryptu verslin) - należy ją usunąć, gdyż najprawdopodobniej spowoduje ona błąd kompilacji lub nieprawidłowe działanie tak skompilowanego programu oraz niepoprawne wygenerowanie dokumentacji/pliku *.xml (dla draw3) przez skrypt docgen.pl.
Przykłady użycia:
"jednorazowa" definicja parametru (w starej wersji skryptu zostawiała odpowiednią definicję w pliku *defi.h, co nie ma miejsca w aktualnych wersjach):
verslin.pl pane -d KOCIOL_1 -o pane_1
definicja parametru wraz z zapisaniem jej do pliku ports:
verslin.pl pane -D KOCIOL_1 -o pane_1
po zapisaniu definicji do pliku ports można uruchamiać skrypt następująco:
verslin.pl pane -o pane_1
efekt będzie taki jak poprzednio - kompilacja ze zdefiniowaną dyrektywą KOCIOL_1
Skrypt verslin obsługuje tylko jedną (pojedynczą) definicję. Opcja -d|-D unieważnia ew. definicję występującą w pliku ports, w wersji -D - powoduje dodatkowo jej nadpisanie w tym pliku.
-x - nie generuj pliku wynikowego
-c - nie usuwaj plików przejściowych *.lst, *.m51, *.hex, ...
-v - nie modyfikuj wersji programu ani numeru kompilacji biblioteki (aktualne numery wersji są brane z pliku *ver.h)
-wt - zmiana flagi użycia narzędzia `wt' w stosunku do pliku konfiguracyjnego
-l - tworzy plik z zapisem sesji dosemu/wine; opcja przydatna, gdy kompilator/linker wygeneruje dużo komunikatów o błędach; nazwa tego pliku wyspecyfikowana jest w pliku konfiguracyjnym w parametrze DUMP_FILENAME (domyślnie verslin.log); implikuje opcję -c; nie jest możliwe jej użycie przy zastosowaniu DOSBox
-b <numer biblioteki> - skompiluj program używając innej wersji biblioteki niż by to wynikało z nazwy katalogu, w którym dany program się znajduje
-e <ERRORLEVEL> - maksymalny ERRORLEVEL zwracany przez narzędzia Keil-a, który nie spowoduje przerwania wykonywania skryptu; wg dokumentacji narzędzi Keil:
v 3.20:
0 - brak błędu
1 - wystąpił błąd
v 6.20:
0 - brak błędów i ostrzeżeń
1 - tylko ostrzeżenia
2 - błędy (i być może ostrzeżenia)
3 - błędy krytyczne (np. brak jakiegoś pliku)
Po wywołaniu skrypt generuje plik *.bat zawierający wszystkie polecenia niezbędne do kompilacji i konsolidacji programu technologicznego, jak również dodatkowe polecenia sprawdzające poprawność wykonania poleceń kompilacji/linkowania (przykłady takich plików: Sekcja 12.6). Następnie plik wsadowy jest uruchamiany w dosemu/dosbox/wine. Po zakończeniu wykonywania pliku wsadowego - o ile nie było błędów i nie podano opcji -n modyfikowane są logi: programu technologicznego (prefix.log), platformy (eprom.log), biblioteki (prog.log i ewentualnie lib.log, jeśli wykonywane były jakieś zmiany w bibliotece) oraz globalny (global.log) oraz usuwane są pliki pośrednie (*.lst, *.hex, ...) - o ile nie podano opcji -c.
UWAGA: kompilacja może zostać wstrzymana, jeśli po zmodyfikowaniu biblioteki procedur programów technologicznych nie dodano odpowiedniego wpisu do jej pliku logu (lib.log). Szerszy opis postępowania przy używaniu/modyfikowaniu biblioteki procedur można znaleźć tutaj: Sekcja 4.5.
Uruchomienie skryptu bez podania opcji powoduje wyświetlenie krótkiej pomocy.
Stosowanie wielolinijkowych komentarzy nie powoduje błędnego numerowania wersji programu technologicznego, jednak należy unikać korzystania z tej opcji (jeżeli jednocześnie inne osoby będą korzystały ze starszych wersji versmana).
Update - jeżeli wszyscy korzystają konsekwentnie z tych samych skryptów lub "przesiadają" się z versman-a na verslin-a - to nie powinno być żadnych problemów
Przy dopisywaniu komentarza do pliku logu programu można zostawić końcowy znak nowej linii - nie spowoduje to jej złamania; skrypt prawidłowo obsługuje znak nowej linii zarówno w formacie DOS (CR+LF) jak i UNIX (LF).
Przełącznik -d działa poprawnie.
Update - przełącznik -d|-D - działa trochę inaczej - patrz w opisie opcji: Sekcja 12.3
Poprzedni | Spis treści | Następny |
Pliki konfiguracyjne | Początek rozdziału | Znane błędy |