Mikrokontrollerisimulaattorin alustavat speksit
v1.0
25.10.95
Prosessoriksi on valittu 68HC11A1. Autossa käytetään
uBoardiksi
ristittyä korttia, jonka osa prosessori on. Auton ja kontrollerin välillä
vallitsee liittimen kautta kulkeva työnjako. (Tällöin kontrolleria voidaan
myöhemmässä vaiheessa vaihtaa ja saadaan lisää modulaarisuutta laitteistoon ja
simulaattoriin.) Auton osalle jää virtalähde ja anturien lähtöarvojen skaalaus
välille 0-5V. Virtalähdettä ei malliteta, vaan sen oletetaan toimivan niin
kuin pitääkin. Kontrollerin pitäisi osata lukea analogisia arvoja ja
pulssianturin lähtoä. Kontrolleri antaa ulos kaksi servon ohjauskanavaa.
Simulaattorissa on oltava seuraavat ominaisuudet:
- Koodin suorittaminen
- Suoritettavan koodin lukeminen binääritiedostosta
- Simulaattorin on osattava suorittaa kaikki 68HC11A1:n
dokumentoidut käskyt
- Ohjelma on voitava suorittaa myös määrätty määrä askelia kerrallaan
- Debuggauskäyttöliittymä
- Käyttäjä voi valita näytetäänkö rekisterien sisältö vai ei
Valittavat vaihtoehdot ovat kaikki rekisterit tai ei mitään.
- Muistin sisällön näyttäminen
Käyttäjän valittua 'näytä muisti' -tilan, näytetään ruudulla koko
muistin sisältö, 16 heksatavua rivillä ja 150 riviä
(ruutu kerrallaan, vierityspalkkien tms. avulla).
Käyttäjä voi kysyä haluamiensa N:n muistipaikan sisältöä
kirjoittamalla muistialueen alku- ja loppuosoitteet
käyttöliittymässä olevaan ikkunaan.
- Rekisterit ja muisti näytetään vasta kun ohjelman suoritus on
pysähtynyt breakpointtiin, virheeseen tai tiedoston loppuun
- Muisti tulostetaan omaan ikkunaansa, joka jää näkyviin, kunnes
käyttäjä sulkee sen. Jokainen tulostus tulee uuteen ikkunaan.
- Breakpointtien määrittäminen tietyillä ehdoilla
- Kun on suoritettu N käskyä eteenpäin
- Suoritetaan koodia data-alueelta
Käyttäjä määrittelee data-alueen tiettyjen muistipaikkojen välille.
- Käyttäjä voi määritellä tietyn rekisterin arvon, jolla ohjelman
suoritus pysäytetään
Kutakin rekisteriä varten voi määritellä yhden ehdon ( = tai < tai >).
- Breakpointin jälkeen koodin suorittamista voi jatkaa siitä, mihin
on jääty
- Lokitulostukset
Lokitulostukset menevät tekstitiedostoon. Käyttäjän valinnan mukaan
lokiin menevät seuraavat asiat:
- Kaikki rekisterit
- Haluttu muistialue
- Muistiosoitteet, joista on luettu ja joihin on kirjoitettu ja
mitä on luettu/kirjoitettu
- Koodin suorituksen pysäyttäminen (jollakin toteutuksen yhteydessä
määriteltävällä viiveellä) kun käyttäjä haluaa
Luonnos käyttöliittymästä
Mahdollisesti toteutettavia ominaisuuksia
- Muistipaikan sisällön muuttaminen, jos se onnistuu helposti.
- Symbolisten nimien käyttäminen, jos kääntäjä tuottaa niitä helposti
käsiteltävssä muodossa.
- Prosessorin toiminnan hidastaminen käyttäjän antamalla kertoimella,
mikäli simulaattorista tulee niin nopea, että hidastusta tarvitaan
- Käyttäjä voi määrätä, miten usein tulostetaan lokiin
- Lokiin tulostuksen aloitus käyttäjän määrittelemillä ehdoilla
(ehdot mahdollisesti samat kuin breakpointtien määrittelyssä)
Joka tapauksessa koodin suoritus pysähtyy, jos yritetään suorittaa käsky, jota
prosessori ei tunne tai kirjoitetaan sellaiseen muistiosoitteeseen, jossa ei
ole mitään.
Simulaattorin pysäyttäminen kesken ohjelman suorituksen voi mahdollisesti
tapahtua jostakin muualta kuin prosessorin käyttöliittymästä. Ratatiedosto
määritellään myös jossakin ennen simulaation aloittamista. Simulaattorin
käyttöliittymään tulee erikseen näkyviin auton tila ja paikka radalla.