29.01.2015 Views

Embedded Software for SoC - Grupo de Mecatrônica EESC/USP

Embedded Software for SoC - Grupo de Mecatrônica EESC/USP

Embedded Software for SoC - Grupo de Mecatrônica EESC/USP

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.

76 Chapter 6<br />

may share data. Event handlers are non-blocking. As a result‚ blocking behaviors<br />

are explicitly specified by states. To remove a blocking operation from<br />

an event handler‚ the specification writer can restructure the state machine<br />

by splitting the handler at the operation and inserting a new state. Thus‚ we<br />

<strong>de</strong>scribe synchronization behaviors <strong>de</strong>claratively using states‚ rather than procedurally‚<br />

which enables better checking. Specifically‚ interrupt processing is<br />

mo<strong>de</strong>led as a couple of hardware event handlers.<br />

4.3. Control function specification<br />

A core function is responsible <strong>for</strong> providing the <strong>de</strong>vice services to the upper<br />

layers of software. As illustrated in Figure 6-1‚ core functions are responsible<br />

<strong>for</strong> managing data accesses and manipulating <strong>de</strong>vice states. Data accesses<br />

follow well-<strong>de</strong>fined semantics‚ which specify‚ <strong>for</strong> example‚ that a block of<br />

data has to be transferred between the processor and <strong>de</strong>vice. Control functions<br />

are responsible <strong>for</strong> changing the control state of the <strong>de</strong>vice according to the<br />

state machines. As illustrated in the lower part of Figure 6-5‚ a core control<br />

function has an input event and a final state set. It accomplishes specific<br />

functions by triggering a sequence of transitions. Because a transition may<br />

emit multiple output events‚ multiple transitions can be enabled at one time.

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

Saved successfully!

Ooh no, something went wrong!