[elektro] STM32f4 interrupt : volatile tombok
Móczik Gábor
pm_levlista at progzmaster.hu
Wed Dec 11 13:03:42 CET 2013
2013.12.11. 9:39 keltezéssel, hg12345 írta:
> Egy nagyméretű tömb esetén, ha nem csak egy elemét használod akkor ezt alapból nem tudja megcsinálni a forditó, nincs annyi regisztere :-)
Ez azonban feltételezés.
Ugyanis a fordítónak a tömb is csak egy ugyanolyan memóriaterület mint a
mondjuk a BSS szegmens, és egyszerre nem az egész tömbbel végzel
műveleteket, hanem egy elemmel. Ha olvasod és ugyanazzal a változóval
több műveletet végzel, valószínű hogy kiolvassa egy regiszterbe, és
onnan használja.
Ennek van is értelme akkor, ha a RAM lassabb mint a CPU, vagy több
(nagyobb opcode) utasítás kell a címzéséhez. Ez mondjuk komolyabb
hardveren és/vagy CISC utasításkészletek esetén így is van, de az
STM32-ben egy ciklus alatt olvasható a RAM, ugyanolyan mintha
regiszterből olvasnád, semmi lassulást nem fog okozni ha volatile-ként
deklarálod.
More information about the Elektro
mailing list