Registry MCU. - univerzalni popis

Marek Pavlů marekpavlu
Středa Březen 17 14:35:16 CET 2004


Ac je to ostuda, tak jsem to zacal delat ve VB 6.0
Samotne(hole) jazyky Obj.Pascal ani C/C++ by mi nedelaly
potize, ale neni dostatek casu se vrhnout na komponenty
(TreeView a dalsi)
To jsem se pred casem naucil ve VB a tak jsem zvolil cestu nejmensiho
odporu.
Ale priznavam, ze posilhavam v tomto pripade po Visua C++ nebo
Delphi, protoze objektovy model by se v tomto velice hodil.
Sice ja vlastne castecne objektovy model vyuzil ve VB(dedicnost),
ale jen na urovni user typu.

Co se tyka toho vkladani, tak to by nebyla uz tak velka potiz.
Horsi to vidim s konfiguracemi jednotlivych modulu,
protoze i kdyz navrhnu nejaky vhodny popis, tak se jeste
jedna o to kdo to popise.
Zatim jsem se drzel pri zemi a to znamena, ze rekneme vyhledove se planuje
jen
holy popis tech registru a fiktivnich registru jako funkcnich bitovych
podmnozin registru popripade jako slucovani registru.
Ale ono se to i tak bude blizit Vasim predstavam, protoze
pri nastaveni treba skupiny tri bitu registru mate osm moznosti
a ke kazde z nich muzete priradit text.
Z toho taky leze urcita slozitost zapisu a doba psani.
Treba pro popis registru STATUS u PIC16F8x potrebuji 83 radku.
Je to spousta prace a malo casu.

// Super napad. Pokud to bude fungovat jako Delphi, budu nadseny(za rozumnou

Cena neni zrovna na poradu dne, protoze je to batole.

//     Clenil bych to podle funkcnich celku. Hlavni parametr oscilator-
// typ/kmitocet. Z toho se napriklad odviji spoustu veci. Napriklad zadam
// 20MHz, UART 9bit?, 1200Bd. Nebo PWM, CCpx atd. Vse musi pracovat

Ja jsem spise uvazoval tak, ze bude nejdrive sada MCU, ktere maji
urcite registry.
Registry:
 -moznost menit bitove
 -moznost menit inkrementalne/skokove hodnotu(pouze v pripade, ze zadny bit
  registru neni vyuzit pro fiktivni registr, ale tohle bude treba popsat
  nejak logicteji, protoze me treba zajima zmena stavu registru
  o nejakou hodnotu i kdyz se treba jedna o registrovy par)
 -moznost nacist hodnotu do registru a zobrazit stavove zmeny
 -moznost zjistit, ktere fiktivni registry ovlivnuje a zjistit stavove zmeny
 -snad vse pokud jsem nic nezapomnel
Fiktivni registry:
 -moznost zjistit, ktere registry ovlivnuje
 -moznost bitove zmeny
 -moznost menit inkrementalne/skokove hodnotu f.r.
 -moznost nacist hodnotu do f.r. a zjistit stavove zmeny

No a kdyz je tu ten napad s jednotlivymi moduly,
tak to by az tak velky problem nebyl.
Registry jsou uz vlastne definovane, tak by slo vytvorit
obecny popis modulu:
-prirazeni registru nebo fiktivnich registru
-stavove zmeny

// se souborem
// asm. Inicializacni proceduru oznacime nejakym nesmyslem:

Ano, ale je nutne definovat pro kazdy modul nevesti start/stop
A prikazy, ktere povedou ke zmene registru.
Pro jeden modul si clovek vymysli prikazy hned, ale ja to chci udelat tak,
aby se dalo popsat kterykoliv REGISTR/FIKTIVNI REGISTR/MODUL nejakeho MCU.
A to vede k neresitelnemu problemu, pri psani programu pro cilovy MCU.
Jak totiz psat pro dany MCU a soucasne mit kod svazany s databazi registru.
Zvlaste kdyz to jsou ruzne vyvojove prostredky.

Proto jsem zvolil moznost tahat to pres schranku a pokud to nejde,
tak alespon zobrazit zmeny hodnot v registrech tak, aby si je uzivatel mohl
opsat do IDE daneho MCU.

Ale ta moznost zjistit konfiguraci ze vstupniho souboru,
spise vsak z hodnot, ktere se nakopiruji do schranky a urci cilovy registr
necini zadne problemy.
Takto si muzete zjistit konfiguraci kterehokoli registru,
spravneji budete moci.

Toto je zrovna prvni problem:
//      movlw b'00000100' ;PA0,1,3 analog 8 Bit v?sledek
Totiz zjistit, jakou ma ktery vyrobce mnemoniku.
Jak definuje BIN/HEX/DEC/OCT vstup.
Ale s timto se budu potykat stejne,
ale jen na urovni vyhodnoceni vstupu hodnot,
nikoliv analyzovat, kam se hodnota prirazuje.

Druhy problem:
//      movwf ADCON1
Jak definuje prirazeni.

To by totiz pomalu znamenalo, ze musite napsat analyzator ASM/C/jine
pro ruzne vyrobce/jazyky/MCU.

Kdezto vetsina jazyku ruznych vyrobcu pouziva rozliseni velkych a malych
pismen.
Pak lze v IDE oznacit registr, ten kopirovat do schranky a
databaze registru by periodicky schranku cetla a pokud by dany registr
byl podle nazvu nalezen, tak by byl aktivovan pro vstup dat.
Pri dalsim kopirujete hodnotu a ta se rovnou priradi do registru.
Vy pak budete mit moznost zjistit stavove zmeny.

// Dulezite je aby to umel zpetne nacist. Za pul roku, kdyz se budu chtit
// podivat jak jsen to delal si velmi jednoduse podivam jak to bylo
// konfigurovany.
//
// Michal G.

To by bylo jako tresnicka na dortu, ale tahle tresnicka by znamenal
plno prace.
Navic mne ted ceka perny rok a tohle je takova zabava, ke ktere utikam,
kdyz chci chvili premyslet/delat na necem jinem.

Marek Pavlu





Další informace o konferenci Hw-list