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í 

C - offset položky ve struktuře
Jdi na stránku Předchozí  1, 2, 3, 4
 
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Programování PIC, ATMEL, EEPROM a dalších obvodů
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
mtajovsky



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

PříspěvekZaslal: po leden 16 2017, 20:02    Předmět: Citovat

Longin napsal(a):
taky bych chtěl takhle rozumět embedded věcem jako lesana
To není o rozumění embedded, to je o rozumění operačním systémům.

Mimochodem, lesana87, jak tam řešíte situaci, kdy v době zpracování volání systému z úrovně úlohy přijde interrupt, a v jeho obsluze je potřeba opět volat systémovou službu? Jinak - fakt, pěkné.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
lesana87



Založen: Sep 20, 2014
Příspěvky: 3330

PříspěvekZaslal: po leden 16 2017, 20:13    Předmět: Citovat

Z obsluhy přerušení se žádné systémové služby nevolají, myšleno ty, které se dají volat z user modu.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
lesana87



Založen: Sep 20, 2014
Příspěvky: 3330

PříspěvekZaslal: út leden 17 2017, 20:19    Předmět: Citovat

Mimochodem, když jsem upravovala ten editor ue, objevila jsem po x hodninách neúspěšného ladění moc veselý bug v SDCC 3.6.0.
Podmínku
kód:
   if (buf < curp)
      --curp;

přeloží jako
kód:
;ue.c:218: if (buf < curp)
   ld   iy,#_curp
   ld   a,0 (iy)
   sub   a, #<(_buf)
   ld   a,1 (iy)
   sbc   a, #>(_buf)
   ret   NC
;ue.c:219: --curp;
   ld   hl,(_curp)
   dec   hl
   ld   (_curp),hl
   ret

tj. obráceně - chybně.
Tu samou podmínku jen napsanou v opačném pořadí
kód:
   if (curp > buf)
      --curp;

přeloží jako
kód:
;ue.c:218: if (curp > buf)
   ld   a,#<(_buf)
   ld   iy,#_curp
   sub   a, 0 (iy)
   ld   a,#>(_buf)
   sbc   a, 1 (iy)
   ret   NC
;ue.c:219: --curp;
   ld   hl,(_curp)
   dec   hl
   ld   (_curp),hl
   ret

tj. správně. Už jsem si skoro rvala vlasy, proč to nechodí, když mě napadlo, projít instrukci po instrukci výsledný kód v asm. Fakt hrozně milej překladač. Confused Sad
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Wolfik



Založen: Jul 28, 2009
Příspěvky: 1093

PříspěvekZaslal: st leden 18 2017, 14:03    Předmět: Citovat

Na něčem podobném jsem vyhnil u diplomky (ARM GCCčko), kdy mi taky obdobnou podmínku přeložil do asembleru blbě, takže pointer do paměti mi přepisoval oblast, kde neměl vůbec co dělat. Very Happy

Pár týdnů zpátky mě zas vyplísnil toolchain pro softprocesor ve FPGAčku. Ve vývojové fázi používám standartní i/o funkce C pro výpis debugovacích logů. Při nějaké konstelaci hvězd, tam docházelo k memory corruption, protože to interně používalo dynamickou zprávu paměti, která na těhle zařízeních není od výrobce dokonale vyladěna. Zkrátka to zapisovala data tam, kam nemá.
Avšak v dokumentaci k toolchainu se o tom nezmiňují...tam to zní jakože pokud chce programátor plnou funkčnost printf/scanf funkcí, tak použije ANSI verzi, pokud chce šetřit prostředkama, použije jejich osekanou verzi, která podle disassembly už malloc nepoužívá Very Happy
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Programování PIC, ATMEL, EEPROM a dalších obvodů Časy uváděny v GMT + 1 hodina
Jdi na stránku Předchozí  1, 2, 3, 4
Strana 4 z 4

 
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.13 sekund