Pakiet HI-CROSS firmy Hiware

Podobne dokumenty
opracowano na podstawie: HI-WAVE Product Manual, Hiware, 1999 Marek Wnuk Wrocław, 2002

ICD Interfejs BDM dla CPU32. Marek Wnuk

Laboratorium Projektowania Systemów VLSI-ASIC Katedra Elektroniki Akademia Górniczo-Hutnicza

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

Zaawansowane funkcje Linkera. Sekcja 13

Informatyka. Wy-03 Dynamiczna alokacja pamięci, wyjątki. mgr inż. Krzysztof Kołodziejczyk

Wykład 3: Implementacja programów wbudowanych

Przedmiot : Programowanie w języku wewnętrznym. Ćwiczenie nr 4

dynamiczny przydział pamięci calloc() memset() memcpy( ) (wskaźniki!! )

Programowanie Proceduralne

Pobieranie argumentów wiersza polecenia

MIKROKONTROLERY - ŁADOWANIE KODU

Struktura mikrokontrolera MC68332

MS Visual Studio 2005 Team Suite - Performance Tool

Podstawowa konfiguracja routerów. Interfejsy sieciowe routerów. Sprawdzanie komunikacji w sieci. Podstawy routingu statycznego

Wstęp. do języka C na procesor (kompilator RC51)

Instytut Teleinformatyki

Powyższe wyrażenie alokuje 200 lub 400 w zależności od rozmiaru int w danym systemie. Wskaźnik wskazuje na adres pierwszego bajtu pamięci.

PMiK Programowanie Mikrokontrolera 8051

Tworzenie oprogramowania

Programowanie w systemie Linux. Jacek Lach Zakład Oprogramowania Instytut Informatyki Politechnika Śląska

Programowanie w C++ Wykład 1. Katarzyna Grzelak. 26 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 28

Kompilator języka C na procesor 8051 RC51 implementacja

Zaawansowane programowanie w języku C++ Biblioteka standardowa

Szkolenia specjalistyczne

Programowanie mikrokontrolerów AVR

Krótka instrukcja obsługi debuggera HI-WAVE opracowano na podstawie: HI-WAVE Product Manual, Hiware, 1999 Marek Wnuk Wrocław,

WPROWADZENIE DO INFORMATYKI

Uzupełnienie dot. przekazywania argumentów

Grzegorz Cygan. Wstęp do programowania mikrosterowników w języku C

Procesy pojęcia podstawowe. 1.1 Jak kod źródłowy przekształca się w proces

1. Pierwszy program. Kompilator ignoruje komentarze; zadaniem komentarza jest bowiem wyjaśnienie programu człowiekowi.

Ćwiczenia laboratoryjne. Oprogramowanie i badanie prostych metod sortowania w tablicach

Konfiguracja po czenia pomi dzy serwerem OPC, a sterownikiem PLC dla sieci Profibus

Jzyk C++ cz 3. Jarosław Gramacki Instytut Informatyki i Elektroniki ( $)*)+' *, - ( ' )*'.' '',*/ *, ','*0) 1 / ) %*+ 2'' 2" ( $%%) )'20 )*0) 1 / )

* konfiguracja routera Asmax V.1501 lub V.1502T do połączenia z Polpakiem-T lub inną siecią typu Frame Relay

Programowanie niskopoziomowe

LCD (Liquid Crystal Display)

KONFIGURACJA NOWEGO PROJEKTU W CODE COMPOSER STUDIO

Programowanie w C++ Wykład 1. Katarzyna Grzelak. 25 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 38

GND(VSS) i VCC - masa i zasilanie. V0 - regulacja kontrastu

Wykład 4. Środowisko programistyczne

Język programowania C51 dla mikroprocesorów rodziny MCS51

Demonstracyjna wersja systemu OS-9 dla BCC-01

1.Wstęp. 2.Generowanie systemu w EDK

Wykład 1

Jak rozpocząć pracę z mikrokontrolerami?

s FAQ: 24/PL Data: DD/MM/RRRR

Programy pomocnicze: diff, make, systemy rcs i cvs, debugger. Zarządzanie wersjami.

1. Ustanawianie ograniczeń na użycie zasobów

Programowanie. Ćwiczenie Język C. Środowisko programowania Visual Studio

Signals + Threads: Qt vs. Boost

Kompilacja i scalanie programów w linii poleceń gcc i make

Tablice deklaracja, reprezentacja wewnętrzna

Laboratorium Programowania Kart Elektronicznych

Laboratorium Programowania Kart Elektronicznych

Wykład 2

Programowanie w C++ Wykład 10. Katarzyna Grzelak. 21 maja K.Grzelak (Wykład 10) Programowanie w C++ 1 / 21

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Uniwersytet Zielonogórski Wydział Elektrotechniki, Informatyki i Telekomunikacji. Sieci komputerowe Laboratorium 8

Programowanie niskopoziomowe

Materiały dodatkowe. Raspberry Pi

Wstęp do programowania 1

Sieci Komputerowe 2 / Ćwiczenia 8

Metodyki i Techniki Programowania MECHANIZM POWSTAWANIA PROGRAMU W JĘZYKU C PODSTAWOWE POJĘCIA

IEEE Centronics

Główne pytania. Sieci komputerowe Router sprzętowy WAN, LAN - CISCO Co to jest? Po co nam routing? Jak go zrealizować? Czy można lepiej?

Rys. 1.Okno główne serwera Cisco TFTP Server. Rys.2.Okno opcji serwera Cisco TFTP Server

Adam Wójs <adam[shift+2]wojs.pl> git --wprowadzenie

Microsoft IT Academy kurs programowania

Środowisko Keil. Spis treści. Krzysztof Świentek. Systemy wbudowane. 1 Trochę teorii. 2 Keil

Rodzina protokołów TCP/IP. Aplikacja: ipconfig.

Programowanie Systemów Wbudowanych

Shared memory and messages. Functions. process 0. process 1. program 0. program 0. data 0. data 1. program 1. data 0. data 1.

Zaawansowane programowanie w języku C++ Zarządzanie pamięcią w C++

Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik

Programowanie mikrokontrolerów AVR z rodziny ATmega.

PODSTAWOWE ELEMENTY ASEMBLERA TRYBY ADRESOWANIA. OPERATORY ASEMBLERA

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780

Kurs programowania. Wykład 7. Wojciech Macyna. 25 kwietnia 2017

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Laboratorium Programowania Kart Elektronicznych

DANE TEKSTOWE W JĘZYKU C/C++ - TABLICE ZNAKOWE

High Speed USB 2.0 Development Board

Wstęp do Informatyki i Programowania Laboratorium: Lista 0 Środowisko programowania

INFORMATOR TECHNICZNY HORNER. Komunikacja SMS w sterownikach XLe/XLt. Konfiguracja karty GSM i komunikacji SMS

Kopie zapasowe PAWEŁ PŁAWIAK. Training and Development Manager for Microsoft Technology Compendium - Centrum Edukacyjne pawel.plawiak@compendium.

iptables/netfilter co to takiego?

Systemy wbudowane. Rysunek 1: Ilustracja procesu kompilacji oprogramowania

2. Code Composer Studio v4 zintegrowane środowisko projektowe... 41

Podstawy Programowania.

Ćwiczenie nr 6. Programowanie mieszane

Tworzenie aplikacji rozproszonej w Sun RPC

Konsolidacja (linking)

Rev Źródło:

Internet Rzeczy w przykładach (2)

Systemy wbudowane. Wprowadzenie. Struktura. Mikrokontrolery AVR. Wprowadzenie do programowania w C

Programowanie strukturalne język C - wprowadzenie

Transkrypt:

Pakiet HI-CROSS firmy Hiware HiTools Setup - konfigurowanie projektu Editor - tworzenie plików tekstowych Compiler - kompilacja programów w C Debugger - uruchamianie i testowanie programów Decoder - deasemblacja plików *.o Maker - sterowanie realizacj a projektu Inne narzedzia pakietu: Assembler Burner - programowanie pamieci stałych (EPROM, FLASH) Libmaker - tworzenie i obsługa bibliotek funkcji MW-ZPCiR-ICT-PWr 1

Tworzenie aplikacji EDITOR include.mak.prm.asm.c.h.h ASSEMBLER COMPILER lib.o.lib MAKER.o.o LINKER.dbg.map.abs.sx /*************************************** Demo dla HICROSS (c) MW <mw.ict.pwr.wroc.pl> **************************************/ #include <string.h> const char Napis[] = "Hello!"; void main(void) { char buf[80]; strcpy(buf, Napis); } MW-ZPCiR-ICT-PWr 2

Składnia pliku Makefile Maker (1/2) MakeFile = Entry Directive. Entry = Macro Update Rule. Macro = Name = += =+ Line NL. Update = Name : [Name [, ] Name] NL Command. Command = WhiteSpace WhiteSpace Line NL. Rule =. Suffix [. Suffix] : NL Command. Directive = INCLUDE Name NL. WhiteSpace = t. NL = n. Line = dowolny znak poza nie cytowanym końcem linii. Name = dowolna poprawna nazwa pliku. Suffix = Letter [Letter] [Letter]. Letter = dowolna litera od A do Z lub od a do z. Komendy wbudowane copy file1 file2 del file1 file2... filen cd directory echo text puts outputfile text fc file1 file2 fctext file1 file2 rehash ren file1 file2 MW-ZPCiR-ICT-PWr 3

Maker (2/2) Makra dynamiczne $* nazwa bazowa (bez rozszerzenia i kropki) pliku wynikowego $@ pełna nazwa pliku wynikowego $ pełna lista plików źródłowych $? lista plików źródłowych nowszych od pliku wynikowego Przykładowy plik hello.mak ## Makefile dla hello ## (c) MW <mw@ict.pwr.wroc.pl> FLAGS = -Cc -W2 -Ob hello.abs : hello.prm hello.o $(LINK) -B hello.prm.c.o: $(COMP) $(FLAGS) $< MW-ZPCiR-ICT-PWr 4

Plik parametrów dla Linker-a (hello.prm) /*************************************** Parametry dla linkera (c) MW <mw@ict.pwr.wroc.pl> **************************************/ LINK hello.abs NAMES hello.o start11s.o ansis.lib END SECTIONS MY_RAM = READ_WRITE 0x0000 TO 0x00FF; MY_ROM = READ_ONLY 0xF800 TO 0xFEFF; PLACEMENT DEFAULT_ROM, STRINGS, ROM_VAR INTO MY_ROM; DEFAULT_RAM INTO MY_RAM; END STACKSIZE 0x60 VECTOR 0 _Startup /* wektor restartu */ MW-ZPCiR-ICT-PWr 5

Mapa pami eci dla hello.abs (hello.map) PROGRAM "hello.abs" TARGET SECTION Processor : Motorola HC11 Memory Model: SMALL File Format : HIWARE Linker : HI-CROSS+ SmartLinker V-5.0.9, Sep 8 1999 FILE SECTION hello.o SMALL ANSI-C start11s.o SMALL ANSI-C string.o (ansis.lib ) SMALL ANSI-C STARTUP SECTION Entry point: 0xF800 Linker generated code (at 0xF800) before calling Startup: SEI JMP 0xF87D _startupdata is allocated at F804 and uses 30 Bytes MW-ZPCiR-ICT-PWr 6

extern struct _tagstartup{ unsigned flags 0 _PFunc main F824 (_main) unsigned datapage 0 long stackoffset 60 int nofzeroouts 0 _Range pzeroout -> NONE long tocopydownbeg F822 _PFunc minits -> NONE void * libinits -> NONE } _startupdata; SEGMENT-ALLOCATION SECTION Segmentname Size Type From To Name ROM_VAR 7 R F8BD F8C3 MY_ROM FUNCS 99 R F824 F8BC MY_ROM COPY 2 R F822 F823 MY_ROM STARTUP 1E R F804 F821 MY_ROM _PRESTART 4 R F800 F803 MY_ROM SSTACK 60 R/W 0 5F MY_RAM ROM size: C4 (dec: 196) RAM size: 60 (dec: 96) MW-ZPCiR-ICT-PWr 7

OBJECT-ALLOCATION SECTION Type: Name: Address: Size: VECTOR: &_Startup FFFE 2 MODULE: -- hello.o -- - PROCEDURES: main F824 1A ( 0) FUNCS - VARIABLES: Napis F8BD 7 ( 1) ROM_VAR MODULE: -- start11s.o -- - PROCEDURES: Init F83E 3F ( 1) FUNCS _Startup F87D 16 ( 1) FUNCS - VARIABLES: _startupdata F804 1E ( 6) STARTUP MODULE: -- string.o -- - PROCEDURES: strcpy F893 2A ( 1) FUNCS MW-ZPCiR-ICT-PWr 8

SEGMENT USE IN OBJECT-ALLOCATION SECTION SEGMENT " FUNCS" main F824 1A ( 0) FUNCS Init F83E 3F ( 1) FUNCS _Startup F87D 16 ( 1) FUNCS strcpy F893 2A ( 1) FUNCS SEGMENT " ROM_VAR" Napis F8BD 7 ( 1) ROM_VAR UNUSED-OBJECTFILE-OBJECTS SECTION NOT USED VARIABLES hello.o: COPYDOWN SECTION OBJECT-DEPENDENCIES SECTION main USES strcpy F893 2A FUNCS Napis F8BD 7 ROM_VAR Init USES _startupdata F804 1E STARTUP MW-ZPCiR-ICT-PWr 9

_Startup USES Init F83E 3F FUNCS _startupdata F804 1E STARTUP OBJECT LIST SORTED BY ADDRESS _startupdata F804 1E ( 6) VAR STARTUP main F824 1A ( 0) CODE FUNCS Init F83E 3F ( 1) CODE FUNCS _Startup F87D 16 ( 1) CODE FUNCS strcpy F893 2A ( 1) CODE FUNCS Napis F8BD 7 ( 1) VAR ROM_VAR STATISTICS SECTION Resources needed during link section: ------------------------------------- heap memory requested: 669871 bytes files opened and reopend: 46 ExeFile: -------- number of blocks to be downloaded: 5 total size of all blocks to be downloaded: 198 MW-ZPCiR-ICT-PWr 10

Wynik pracy Decoder-a dla hello.o (hello.lst) Decoding File: D:\hc11c\demo\hello.o 10: void main(void) { 11: char buf[80]; 12: 00000000 30 TSX 00000001 8F XGDX 00000002 C3FFAE ADDD #0xffae 00000005 8F XGDX 00000006 35 TXS 13: strcpy(buf, Napis); 00000007 8F XGDX 00000008 C30002 ADDD #0x0002 0000000B 30 TSX 0000000C ED00 STD 0,X 0000000E CC0000 LDD @Napis 00000011 BD0000 JSR strcpy 14: } 00000014 30 TSX 00000015 C652 LDAB #0x52 00000017 3A ABX 00000018 35 TXS 00000019 39 RTS MW-ZPCiR-ICT-PWr 11

Debugger HI-WAVE MW-ZPCiR-ICT-PWr 12

Interfejs ICD dla HI-WAVE ICD INTERFACE BDM connector printer port HOST TARGET MW-ZPCiR-ICT-PWr 13

Skrypt startowy dla interfejsu ICD // Ten plik zawiera komendy dla HI-WAVE wykonywane przy // uruchamianiu interfejsu ICD dla BDM. // Inicjalizuje on niektore rejestry w MC68332 aby umozliwic // dostep do pamieci. // Dodatkowo zawiera komendy pozwalajace przechwycic wszystkie // przerwania przez ustawienie w tablicy wektorow wskaznika na // instrukcje "BGND" // dla plytki WAN332 (MW) ww 0xFFFFFA20 0x0006 // SYPCR, System protection ww 0xFFFFFA04 0x7F00 // SYNCR, Synthesizer control ww 0xFFFFFA00 0x624A // MCR, Module configuration // ustawianie chip select-ow ww 0xFFFFFA44 0x3FAB // CSPAR0, Chip sel. pin assignment ww 0xFFFFFA46 0x02BE // CSPAR1, Chip sel. pin assignment ww 0xF7FFFA48 0x0806 // CSBART, Boot 256k @ 0x080000 ww 0xF7FFFA4A 0x68f0 // CSORBT, Boot options wl 0xFFFFFA6C 0x00067870 // cs8 : RAM wl 0xFFFFFA70 0xEFF8D830 // cs9 : LCD rs A6 0 // inicjal. listy stosu (0 => A6) catchtraps 2 255 // przechwycenie przerwan MW-ZPCiR-ICT-PWr 14