28.12.2014 Views

uC/OS-II (Structure) - 경희대학교

uC/OS-II (Structure) - 경희대학교

uC/OS-II (Structure) - 경희대학교

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Kernel <strong>Structure</strong> (Cont’d)<br />

• MicroC/<strong>OS</strong>-<strong>II</strong> Interrupt<br />

MicroC/<strong>OS</strong>-<strong>II</strong> Interrupt Service Routine (ISR) <br />

C Inline C ISR <br />

.<br />

Interrupt <br />

‣ <strong>OS</strong>IntEnter(), <strong>OS</strong>IntExit(), <strong>OS</strong>IntCtxSW()<br />

YourISR:<br />

Save all CPU registers;<br />

Call <strong>OS</strong>IntEnter() or, increment <strong>OS</strong>IntNesting directly;<br />

if (<strong>OS</strong>IntNesting == 1) {<br />

<strong>OS</strong>TCBCur-><strong>OS</strong>TCBStkPtr = SP;<br />

}<br />

Clear interrupting device;<br />

Re-enable interrupts (optional)<br />

Execute user code to service ISR;<br />

Call <strong>OS</strong>IntExit();<br />

Restore all CPU registers;<br />

Execute a return from interrupt instruction;<br />

<br />

Embedded System Lab. <strong>II</strong> 30

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!