[elektro] ARM ugrás
Moravcsik Szilard
levlista.mszilard at gmail.com
Fri Jan 22 09:23:18 CET 2016
Szia!
Azt írod:
"...mivel mindegyik csak RAM-ból képes közvetlen és teljes sebességű
utasítás végrehajtásra..."
Ezek szerint ha teljes sebességű utasítás végrehajtást szeretnék, akkor
valahogy a lefordított és flash-ben (vagy valami háttér táron) tárolt
bináris kódot a RAM-ba kell másolni a boot során?
De a belső RAM azért ehhez sokszor nem elegendő kapacitású.
Ilyenkor teszel rá valamilyen külső RAM-ot és bootoláskor oda másolod a
kódot majd valahogy onnan indítod az utasítás végrehajtást (ez a címbeli
ARM ugrás :DDD)? Vagy hogy is van ez? :)
Egyelőre csak a kíváncsiság miatt kérdezem, mert látom, hogy nálam
sokkal többet tudsz az ARM-okról. Szóval ha majd lesz időd... :)
Üdv:
Szilárd
2016.01.22. 8:54 keltezéssel, hg12345 írta:
> Hi,
> igen, de LINKER nélkül egyik se működik, közvetlen memóriába fordítású asm-ról nem tudok.
> Minden C fordítónak GCC és a KEIL-s van önálló ASM fordítója.
>
> Ha kicsit összetettebb programot szeretnél írni, akkor inkább használj C-t!
>
> Biztos lehet tömörebb és gyorsabb kódot írni közvetlen programozással, de apró pénzért kapsz nagyobb memóriájú eszközt és hasonlóan gyorsabbat is. De a legtöbb ilyen uC 48Mhz-ről indul...
> Ha nagyon sebességre hajtasz, akkor itt ez nem olyan egyszerű. mert ugyan az az utasítás címzéstől függően 1...6 óraciklus alatt mehet végbe, arról nem is beszélve, hogy mivel mindegyik csak RAM-ból képes közvetlen és teljes sebességű utasítás végrehajtásra, FLASH-ből csak bufferen keresztül, ezért amire számítasz az akár lassabban is történhet, és még a DMA miatt busz hozzáférés megosztás miatt futási sebesség változásról nem is beszéltünk.
> Maga az ASM és az gépi kódú utasítások is elég összetettek, és nem homogének, a THUMB utasítás készlet hasonlóan a legtöbb 8 biteshez, két operandusos, míg a normál és THUMB32 bites utasítások 3 operandusossak, a legtöbb operandust még lehet indexelni, és post vagy pre-incrementálni, az növelés csökkentés szinkronban van a hozzáférés szélességével... A blokkos beolvasás és töltésnél regiszterenként lehet állítani, hogy melyik regiszterre legyen érvénye "16 univerziálisból" persze ebből 3 foglalt. A teljes méretű konstans megadás nem létezik (32bites), ezt általában PC relatív címzéssel olvassák be, a program részletek között tárolják.
>
> Szóval érdemes a C felé kacsingatni, sokkal gördülékenyebben lehet vele dolgozni.
>
> A CORTEX magokat úgy hirdetik, hogy nem kell hozzá ASM betét, és ez tényleg igaz!
>
>
>
>
> VFX <info at vfx.hu> írta:
>> Hali!
>>
>>
>> Engem meg az érdekelne, hogy ARM-re létezik-e önálló assembly fordító?
>> Van-e olyan, hogy nem kell egy halom valamit feltelepíteni csak 1 vagy 2
>> db exe és fordul is, hasonlóan, mint avr-hez az avrasm2.exe
>>
>> ÜDV. VFX.
>>
>>
>> 2016.01.21. 11:40 keltezéssel, elight írta:
>>> Sziasztok...
>>>
>>> Nemrég írtátok , hogy előbb utóbb megugranátok
>>> az arm felé.
>>>
>>
>> -----------------------------------------
>> elektro[-flame|-etc]
>>
>
> -----------------------------------------
> elektro[-flame|-etc]
>
---
A levél vírus, és rosszindulatú kód mentes, mert az avast! Antivirus védelme ellenőrizte azt.
https://www.avast.com/antivirus
More information about the Elektro
mailing list