3.5.1.21.2 Module Control Driver Functions

When a top-level function is configured to use AXI4 target interface for module control (see Module Control Interface), SmartHLS generates the following module control driver functions based on the target SoC platform:

Table 3-8. Module Control Driver Functions Based on Target SoC Platform
Operating SystemFunction SignatureDescription
Linuxint <TopFunc>_is_idle(void *virt_addr);This function returns 1 if the SmartHLS module is idle or has finished the latest invocation.
Baremetalint <TopFunc>_is_idle(uint32_t base_addr = <TopFunc>_BASE_ADDR);
Linuxvoid <TopFunc>_start(void *virt_addr);This function starts the SmartHLS module. Input arguments including the module's memory-mapped virtual address are expected to have been set before this function is called.
Baremetalvoid <TopFunc>_start(uint32_t base_addr = <TopFunc>_BASE_ADDR);
LinuxRETYPE <TopFunc>_join(void *virt_addr);This is a blocking function that waits for the completion of the HLS module. The function returns the return value of the SmartHLS function/module (if not void). The RETYPE is a placeholder for the return type of the function.
BaremetalRETYPE <TopFunc>_join(uint32_t base_addr = <TopFunc>_BASE_ADDR);