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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

198 Chapter 15<br />

pre-compiled and stored into the Atalanta library. However, some modules<br />

have to be linked to the final executable file from the object module itself<br />

because some function names have to be the same in or<strong>de</strong>r to provi<strong>de</strong> the same<br />

API to the user. For example, if the <strong>de</strong>adlock <strong>de</strong>tection function could be<br />

implemented in the RTOS either in software or in hardware, then the function<br />

name that is called by an application should be the same even though the<br />

application could use, <strong>de</strong>pending on the particular RTOS instantiated in the<br />

<strong>SoC</strong>, either the software <strong>de</strong>adlock <strong>de</strong>tection function or a <strong>de</strong>vice driver <strong>for</strong><br />

the <strong>SoC</strong>DDU. By having the same API, the user application does not need<br />

modification whichever method – either software or hardware – is actually<br />

implemented in the RTOS and the <strong>SoC</strong>.<br />

5.2. Implementation<br />

In this section, we <strong>de</strong>scribe which configuration files are generated and how<br />

these files are used to make a custom hardware/software RTOS.<br />

To ease the user ef<strong>for</strong>t required to manually configure the hardware/<br />

software RTOS, we ma<strong>de</strong> the GUI tool shown in Figure 15-2 <strong>for</strong> user inputs.<br />

With the GUI tool, the user can select necessary RTOS components that are<br />

most suitable <strong>for</strong> his application. Currently, the user may select the following<br />

items in software: IPC methods such as semaphores, mailboxes and queues;<br />

schedulers such as priority or round-robin scheduler; and/or a <strong>de</strong>adlock <strong>de</strong>tection<br />

module. The user may also select the following items in hardware:<br />

<strong>SoC</strong>DMMU, <strong>SoC</strong>LC, <strong>SoC</strong>DDU and/or RTU. With the Framework, the<br />

hardware/software RTOS configuration process is easily scalable according<br />

to the number of PEs and IPC methods. One example of scalability is that if<br />

the user selects the number of PEs, the tool can adaptively generate an<br />

appropriate configuration that contains the given number of PE wrappers and<br />

the interfaces gluing PEs to the target system.<br />

For pre-fabrication <strong>de</strong>sign space exploration, different PEs and the number<br />

of PEs can be selected. For post-fabrication customization of a plat<strong>for</strong>m <strong>SoC</strong><br />

with reconfigurable logic (e.g., a specific fabricated version of Figure 15-1),<br />

the user can <strong>de</strong>ci<strong>de</strong> whether or not to put parts of the RTOS into the reconfigurable<br />

logic. The tool is written in the Tcl/Tk language [9].<br />

Example 5-3: Makefile generation. After the input data shown in Figure<br />

15-2 is entered by the user in the GUI, the clicks the Generate button shown<br />

on the bottom right of Figure 15-2. This causes the tool to generate a<br />

Makefile containing assignments saying software <strong>de</strong>adlock <strong>de</strong>tection object<br />

module and <strong>de</strong>vice driver <strong>for</strong> <strong>SoC</strong>LC are inclu<strong>de</strong>d.

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

Saved successfully!

Ooh no, something went wrong!