Er ARM7 så pålidelig som enhver anden familie?

T

techie

Guest
Jeg vandrer fra 8.051 til ARM7.Jeg læste om problemet med falske afbryder på ARM7.Er det et problem.Der er så meget forvirrende dokumenter er til stede på internettet.Jeg bruger LPC2136 og ønsker at vide i enkle ord, at
1.Hvad er dette problem.
2.Er det en anledning til bekymring med hensyn til driftssikkerhed
3.Hvordan kan det håndteres simpelthen.

 
Hej,

så enkelt, som jeg kan beskrive det:
Migrere fra 8.051 til en ARM7 vil give masser af muligheder og nogle udfordringer.
Interrupt-ordningen, som den oprindelige ARM7 har nøjagtig to afbryde muligheder, en såkaldt IRQ = Interrupt request og en såkaldt FIQ = hurtigt interrupt request.Hvis din ansøgning er i stand til at beskæftige sig med kun to niveauer af interrupts, vil du ikke komme ind i nogen problemer overhovedet.Husk, at du afbryder håndterer vil være en meget hurtigere, end de var for 8051, så du kan vente på en interrupt rutine til slut i stedet for at afbryde den igen (kaldes indlejrede afbryder).
Hvis du bruger indlejrede afbryder du kontrollere anvendelsen notat på Philips 'hjemmeside:
http://www.standardics.philips.com/support/documents/microcontrollers/pdf/an10381.pdf
"AN10381 Nesting af Interrupts i LPC2000"

Den afbryder på en ARM7 er ikke en bekymring med hensyn til driftssikkerhed, som de har været brugt i mange tusinde applikationer i hele verden.

Enkel håndtering er begrænsende indlejring af afbryder og med en standard handler installeret som beskrevet i denne AN
http://www.standardics.philips.com/support/documents/microcontrollers/pdf/an10414.pdf
Titlen "Håndtering af falske afbryder i LPC2000"

Et kapitel:
"2.3 Håndtering af uægte interrupts
Som nævnt ovenfor, vil VIC bestemme værdien af VIC Standard Vector Adresse
register til pc'en, når en falsk afbryder opstår.Under VIC initialisering, sammen med
giver en ISR adresse til VIC Vector Adresse Register, skal du programmere en
fald handler i VIC Standard Vector Adresse register for servicering en falsk
afbryder.I denne handler, skal følgende gøres:
1.Finde kilden til afbryder (hvis der er flere interrupt kilder).
2.Ryd afbryde kilden (ekstraudstyr som vist i UART sagen).
3.Opdatere VIC ved at skrive til VIC Vector Adresse Register.
Betragt dette rutine som en regelmæssig IRQ ISR rutine, fordi de centrale stadig vil være i IRQ
tilstand, når det falske interrupt er serviceret.Så skal du bruge de relevante compiler
direktiver at klassificere denne funktion som en IRQ interrupt handler. "

Hope this helps, Robert

 
Tak for de præciseringer.

Kan du sende nogle standard C-koden for ISR, der tager sig af hvad du har beskrevet.Hvis man antager, at jeg ikke bruger indlejrede afbryder.

 
Hej

Her er nogle C-koden til Arm LPC213x & 214X Basic chauffør

Håber det hjælper

Alle de bedste

Bobi
Beklager, men du skal logge ind for at se denne vedhæftede fil

 

Welcome to EDABoard.com

Sponsor

Back
Top