. The FPGA is never "run," it just acts as a circuit. The LoadableDevice class was created to deal with such hardware, where LoadableDevice inherits Driver from Device. As would be expected, the only two functions that the LoadableDevice class contains are load() and unload(). Finally, there is the more complex hardware that not Specialized only has capacities that can be allocated and deallocated as well as memory that can be loaded and unloaded with binary images, but it also can execute a program from the Figure 2.4a-7 Specialized hardware controlled by programmable interface through a proxy structure. loaded binary image. Such hardware is a GPP or a DSP. CHAPTER 2.4a The software defined radio as a platform for cognitive radio Instantiate Repeat for Device- Install Devices Register Devices All HW Manager and File System DomainManager and File System with Platforms and Read DomainManager Configuration Power-up Figure 2.4a-8 Device manager boot-up sequence. For these types of processors, the SCA uses the Execu- address, but that general rule does not have to apply to tableDevice class. Much like an FPGA, a GPP or DSP every possible implementation. has capacities that can be allocated or deallocated (like ports), and memory that can hold binary images, SO the Application control ExecutableDevice class inherits from the Loada- Two classes in the framework control section of the SCA bleDevice class. As would be expected, the two functions provide application (waveform) control: Application and that ExecutableDevice supports are execute() and ApplicationFact ApplicationFactory is the entity that terminate() creates waveforms; as such, ApplicationFactory contains a single function, create() DeviceManager The different hardware controllers behave as stand-alone ApplicationFactory components, SO they need to be created and controlled The create( function in the ApplicationFactory is called by another entity. In the case of the SCA, this controller directly by the user, or the cognition engine in the case of is the Dev