170 17. Narzędzia programowania
programu od dowolnego rozkazu, podglądanie i modyfikacja rejestrów procesora oraz pamięci RAM itp. Do płytki procesora można podłączyć elementy zewnętrzne takie jak klawiatura, pole odczytowe itd.
W przypadku gotowego urządzenia, gdzie nie można skorzystać z debu-ggera płytkowego, w celu testowania programu, a zwłaszcza współpracy procesora z elementami otoczenia, można zastosować emulator. Jest to urządzenie zawierające specjalny procesor, który oprócz właściwości procesora użytego w przyrządzie, jest wyposażony w dodatkowa mechanizmy kontroli jego pracy. W trakcie testowania urządzenia w podstawię mikrokontrolera wkłada się złącze łączące urządzenie z emulatorem. Program jest wykonywany przez specjalny procesor emulatora, którego pracę można nadzorować poprzez odpowiednio oprogramowany komputer.
Po sprawdzeniu i przetestowaniu programu należy umieścić go w pamięci programu, wewnętrznej lub zewnętrznej mikrokontrolera. Odbywa się to przy pomocy programatorów, które wymagają podania programu w odpowiednim formacie. Najczęściej tym formatem jest 1NTEL-STANDARD "Hex".
Jednym z często stosowanych zestawów' narzędzi do pisania i testowania programów' dla mikrokontrolerów' rodziny '51 są narzędzia firmy Keil. Na rysu-neku 17-1. jest pokazany zestaw narzędzi dla wersji 4.0.
TEST.HEX
Rys. 17-1. Zestaw' narzędzi programowania firmy Keil.
Zestaw narzędzi firmy Keil składa się z asemblera, kompilatora języka C, linkera, konwertera, symulatora, debuggera i biblioteki z podprogramami. Zbiory wyjściowe z asemblera lub kompilatora z rozszerzeniem .obj mogą być testowane w symulatorze DS51 lub debuggerze TS51. Dcbbuger TS51 może współpracować z modułem mikroprocesorowym, a więc ma możliwości testowania programu na obiekcie rzeczywistym.
Linker służy do łączenia zbiorów wejściowych w jeden zbiór wynikowy zawierający cały program działania mikrokontrolera. Dzięki temu można łączyć zbiory otrzymane po asemblerze i kompilatorze lub dołączać zbiory biblioteczne.
Konwerter przetwarza zbiór wyjściowy z linkera na zbiór zapisany w standardzie INTEL-HEX stosowanym w programatorach pamięci EPROM lub narzędziach testujących innych firm.
Poniżej są podane podstawowe zasady wymagane przy pisaniu programów dla asemblera firmy Keil. Zasady te mogą być również obowiązujące dla innych asemblerów.
1. o podstawie liczby użytej w programie decyduje ostatni znak liczby:
- H, h - liczba szesnastkowa 0 * OFH, np. 0D3Eh -13, b - liczba binarna 0*1, np. 1101001111B
- D, d - liczba dziesiętna 0*9, np. 2245D
jeżeli ostatni znak liczby nie jest żadnym z wyżej wymienionych, to przyjmuje się, że jest to liczba dziesiętna,
2. liczby muszą zaczynać się od cyfry. Dlatego liczby w kodzie szesnastkowym zaczynające się od litery muszą być poprzedzone cyfrą 0, np. 0F3h,
3. jeżeli w rozkazie jest wpisana wartość, to musi być poprzedzona znakiem #. W przeciwnym razie asembler potraktuje tę wartość jako adres komórki pamięci wewnętrznej RAM lub rejestru specjalnego, na przykład rozkaz MOV A,#32h spowoduje wpisanie do akumulatora liczby o wartości 32 szesnastkowo, a rozkaz MOV A,32h przepisze do akumulatora zawartość komórki pamięci wewnętrznej RAM o adresie 32 szesnastkowo.
4. symbole predefiniowane, którymi są nazwy rejestrów, np. A, R0 - R7, TCON itd., elementy rozkazów, np. DIV, MOV, LCALL itd., są słowami zastrzeżonymi. Nie mogą być użyte poza rozkazami, np. jako etykiety,