Skip to Content
Computers as Components, 2nd Edition
book

Computers as Components, 2nd Edition

by Marilyn Wolf
July 2008
Intermediate to advanced
544 pages
16h 52m
English
Morgan Kaufmann
Content preview from Computers as Components, 2nd Edition
6.2 Preemptive Real-Time Operating Systems 315
( void ) ulCriticalNesting;
( void ) pxCurrentTCB;
}
Here is the assembly language code for portRESTORE_CONTEXT:
LDR R0, =pxCurrentTCB
LDR R0, [R0]
LDR LR, [R0]
/* The critical nesting depth is the first item on the
stack. */
/* Load it into the ulCriticalNesting variable. */
LDR R0, =ulCriticalNesting
LDMFD LR!, {R1}
STR R1, [R0]
/* Get the SPSR from the stack. */
LDMFD LR!, {R0}
MSR SPSR, R0
/* Restore all system mode registers for the task. */
LDMFD LR, {R0-R14}ˆ
NOP
/* Restore the return address. */
LDR LR, [LR, #+60]
/* And return - correcting the offset in the LR to obtain
the */
/* correct address. */
SUBS PC,
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

Computers as Components, 3rd Edition

Computers as Components, 3rd Edition

Marilyn Wolf
Computer System Designs: System-on-Chip

Computer System Designs: System-on-Chip

Michael J. Flynn, Wayne Luk
PC Hardware in a Nutshell, 3rd Edition

PC Hardware in a Nutshell, 3rd Edition

Robert Bruce Thompson, Barbara Fritchman Thompson

Publisher Resources

ISBN: 9780123743978