[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