sw sprawozdanie lab2 v4


Systemy wbudowane
Sprawozdanie laboratoryjne
Ćw. nr 2
Temat: Warsztat projektanta systemów
mikrokomputerowych  środowiska uruchomieniowe
0 Specyfikacja oprogramowania
Przygotowanie oprogramowania:
- BCC32.exe
- CSILOG.exe
Osadzanie oprogramowania:
- FLASHLDR.exe
- Soft Scope
- Typer Terminal
Przebieg zadania
1. Utworzenie dwumodułowego programu w  c
Plik a.c
#include "b.h"
int main()
{
wypisz();
return 0;
}
Plik b.c
#include "b.h"
#include
void wypisz()
{
printf("Hello\n");
}
Plik b.h
#include
extern void wypisz();
Moduł a wywołuje funkcje  wypisz() , wypisującą na standardowe wyjście ciąg
 Hello\n , z modułu b.
2. Tworzenie pliku *.hex
W wierszu poleceń wpisywaliśmy poniższe komendy, które miały wygenerować
plik a.map. Natomiast w celu automatyzacji wykonywanych czynności
utworzyliśmy plik compile.bat
bcc32 -v -O- -c -3 a.c b.c // Generuje a.obj, b.obj
bcc32 -M -3 a.obj b.obj // Generuje a.map, a.exe
csiloc a.cmd // Generuje a.hex
Powyższy skrypt kompiluje i linkuje pliki a.c, b.c tworząc plik a.exe. csiloc
generuje plik a.hex na podstawie pliku a.cmd:
Debug //tworzy debug file
HEX A.HEX //tworzy plik a.hex
cpu 386 //ustawienie pracy procesora 386 w trybie
 real mode
a.map:
Start Length Name Class
0001:00401000 0000089C0H _TEXT CODE
0002:0040A000 00000245CH _DATA DATA
0003:0040C45C 000000868H _BSS BSS
0004:00000000 00000009CH _TLS TLS
Plik *.hex należy osadzić w pamięci 386EX
Dodatkowe komendy:
locate raminit :: 4000p //alokacja pierwszego sektora pamięci
gdt sysgdt[3..64]::reserve // CSiMON wymaga slotów 3 do 64
(Global Descriptor Table)
idt sysidt[0..40]::reserve // Zarezerwowane dla Intel CPU
tss386 systss::cs:eip=_TEXT //ustawienie cs::eip dla trybu
pracy chronionej
3. Osadzanie programu #~~~~~~~~#
Wykonywane polecenia:
port=com1
init
FLASH CMD: init com1 //inicjalizuje
połączenie z płytką (EV386EX) przez port COM1
Port set to COM1
VT Port set to COM1
Establish link to target system on COM1 at 9600
baud ...
Target system on-line (board = 00010102, prog = 1,
ver = 2.00)
Flash tables OK
Initialization complete
FLASH CMD: program hello //wczytuje program
do pamięci
Program file set to .\HELLO.HEX
Program name set to HELLO
File format set to HEX
Start flash programming ...
Program name already in flash directory!
FLASH CMD: setboot hello //ustawia program
który ma się uruchomić podczas startu systemu
Program name set to HELLO
Boot program set to HELLO (start vector =
8000:0000)
FLASH CMD: shutdown //zapisuje zmiany
Start shutdown ...
Flash tables not changed
Shutdown complete
FLASH CMD: term //uruchamia sesję
Start VT session on COM1 at 9600 baud. Type ESC to
exit ...
AAAAAAAAAA... //wynik działania
programu
Proces osadzania programu na EV386EX można
zautomatyzować pisząc skrypt o rozszerzeniu .flc i
uruchomiając go w programie FLASH.
Napisany skrypt:
init com1
system=HELLO
group=
version=2.1
file=hello.hex
echo Hello world
program
setboot
shutdown
Wynik działania:
Flash tables OK
Initialization complete
System name set to HELLO
Group name set to
Program version set to 2.1
Program file set to .\HELLO.HEX
Program name set to HELLO
File format set to HEX
Hello world
Start flash programming ...
Program name already in flash directory!
Boot program set to HELLO (start vector =
8000:0000)
Start shutdown ...
Flash tables not changed
Shutdown complete


Wyszukiwarka

Podobne podstrony:
sw sprawozdanie lab2 v5
sw sprawozdanie lab2 v2
sw sprawozdanie lab2 v1
sw sprawozdanie lab2 v1
sw sprawozdanie lab2 v3
Sprawozdanie lab2 Szewczak Piotr
sprawozdanie lab2
tm sprawozdanie lab2 v2
tm sprawozdanie lab2 v1
Mechanika płynów sprawozdanie z lab2
lab2 sprawozdanie
SW LAB2 LukaszJanik
Różnice w sprawowaniu św Liturgii w prawosławnych Kościołach lokalnych
sw gimnazjum 6

więcej podobnych podstron