Vítejte na Elektro Bastlírn?
Nuke - Elektro Bastlirna
  Vytvořit účet Hlavní · Fórum · DDump · Profil · Zprávy · Hledat na fóru · Příspěvky na provoz EB

Vlákno na téma KORONAVIRUS - nutná registrace


Nuke - Elektro Bastlirna: Diskuzní fórum

 FAQFAQ   HledatHledat   Uživatelské skupinyUživatelské skupiny   ProfilProfil   Soukromé zprávySoukromé zprávy   PřihlášeníPřihlášení 

mapa paměti

 
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Software
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
Aqarel



Založen: Feb 04, 2007
Příspěvky: 241

PříspěvekZaslal: so únor 16 2008, 20:18    Předmět: mapa paměti Citovat

zdravím, potřeboval bych software, který by dokázal z asm kódu pro 8051 vytáhnout použitá paměťova místa z celého programu. dále při symbolickém pojmenování: x equ 20h ;promená x , program vytáhne adresu(20h), název(x), komentář(proměnná x). Ušetřilo by mi to hodně času a zbytečných chyb. Ideálně kdyby program vygeneroval textovou tabulku s obsazením paměti do textového souboru. Existuje něco takového nebo mi nezbyde než si to naprogramovat sám?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
Hill
Administrátor


Založen: Sep 10, 2004
Příspěvky: 19522
Bydliště: Jičín, Český ráj

PříspěvekZaslal: so únor 16 2008, 22:41    Předmět: Citovat

Tys asi ještě s assemblerem nedělal, viď?
Jinak bys věděl, že jde o jazyk symbolických adres, který při překladu do strojového kódu ty symboly nahradí adresami skutečnými a symboly se nikam neukládají.
Ve zdrojovém kódu se při překladu vytvoří tabulka skutečných adres, ale to je také naposledy, co ji lze vidět. Do procesoru se už pálí s adresami z té tabulky. Bez symbolických názvů.
Při zpětném překladu se ti v instrukcích skoků a volání a v definicích objeví místo symbolu adresa, které byl symbol přiřazen.
Na tobě je, dát těm adresám jména - disassembler je nemá kde vyčíst.
Stejně jako komentáře, kterými si při psaní programu ulehčuješ orientaci, procesor na nic nepotřebuje a jen by tam překážely, proto se nepřekládají a neukládají.
Jednoduše - takový software neexistuje. Leda křišťálová koule.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Aqarel



Založen: Feb 04, 2007
Příspěvky: 241

PříspěvekZaslal: so únor 16 2008, 23:49    Předmět: Citovat

s asseblerem pracuji pár měsiců, asi jsem se špatně vyjádřil. Když píši program(trochu složitější) ztrácím rychle přehled, která paměťová místa jsem využil, proto se ptám na program, který by mi dokázal vypsat využití uživatelské paměti - 30h až 7Fh, bitově adresovatelného prostoru 20h - 2Fh a portů z NEzkompilovaného programu(pro mcu atmel 89s51/52...). Zatím to dělám ručně, ale až příliš mě to zdržuje a je velká šance, že se přepíšu a způsobím si zbytečné komplikace.
Ukázka výpisu paměti:
kód:

|........|...............|...................................................|
|P3.0    |-              |RXD - RS232                                        |
|P3.1    |-              |TXD - RS232                                        |
|P3.2    |PULS_C         |Pulsy z inkrementálního snímače spojky             |
|P3.3    |NC             |nezapojeno                                         |
|P3.4    |DIR_C          |Směr posunu spojky                                 |
|P3.5    |NC             |nezapojeno                                         |
|P3.6    |SEN_C2         |Pravý dorazový senzor spojky                       |
|P3.7    |SEN_C1         |Levý dorazový senzor spojky                        |
|........|...............|...................................................|
|nastavení pohoné jednotky                                          |
|20h.0   |EnMov          |0/1 - robot nejede/jede                            |
|20h.1   |DirMov         |0/1 - pohyb robota dozadu/vpýed                    |
|20h.2   |EnClu          |0/1 - spojka(clutch) - vykonej akci ne/ano         |
|20h.3   |LClu           |0/1 - nastav spojku doleva ne/ano                  |
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
Hill
Administrátor


Založen: Sep 10, 2004
Příspěvky: 19522
Bydliště: Jičín, Český ráj

PříspěvekZaslal: ne únor 17 2008, 8:42    Předmět: Citovat

Tak ti nevím: všechny kompilátory pro Z80 na konci překladu vypsaly tabulku se seznamem návěští a adres, jen vytisknout nebo uložit.
Že by to kompilátory pro 2051 neuměly, když tu tabulku stejně potřebují?
Zkus najít jiný kompilátor na www.kvetakov.net
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
mtajovsky



Založen: Sep 19, 2007
Příspěvky: 3697
Bydliště: Praha

PříspěvekZaslal: ne únor 24 2008, 23:39    Předmět: Citovat

Použijte, co radi Hill. Ta tabulka se obvykle nazývá mapa linkování a sestavuje ji linker, pokud se mu zadá příslušný přepínač. K obsazování paměti používejte direktovy kompilátoru, používejte relativní segmenty pro kód, absolutní jen tam, kde je to nezbytné - startovací rutina. Je to již docela dlouho, co jsem v asm51 dělal, ale myslím, že je možno symbolicky direktivami kompilátoru popsat obsazení veškeré paměti - i bitové a potom se to vše objeví v mapě.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
Aqarel



Založen: Feb 04, 2007
Příspěvky: 241

PříspěvekZaslal: po únor 25 2008, 13:57    Předmět: Citovat

pro editaci používám pspad a tam mám nastavený zatím cass51(zkoušel jsem i asm51 ale ani jeden to nejspíš neumí) jako kompilátor, protokol o překladu se mi vypíše dolů do logu a lze nastavit spuštění dalšího programu jehož log se automaticky otevře v další záložce, což by měla byt ta mapa paměti, začal jsem si psát proto zatím program sám, aspoň splní všechny mé pořžadavky Smile, po dopsaní dám na program odkaz třeba to pomůže i někomu jinýmu,
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
Zobrazit příspěvky z předchozích:   
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Software Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra.
Nemůžete odpovídat na témata v tomto fóru.
Nemůžete upravovat své příspěvky v tomto fóru.
Nemůžete mazat své příspěvky v tomto fóru.
Nemůžete hlasovat v tomto fóru.
Nemůžete připojovat soubory k příspěvkům
Můžete stahovat a prohlížet přiložené soubory

Powered by phpBB © 2001, 2005 phpBB Group
Forums ©
Nuke - Elektro Bastlirna

Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.


PHP-Nuke Copyright © 2005 by Francisco Burzi. This is free software, and you may redistribute it under the GPL. PHP-Nuke comes with absolutely no warranty, for details, see the license.
Čas potřebný ke zpracování stránky 0.16 sekund