Example #1
0
Hint sw_crc(void * list_ptr, Huint size) {
    
    Hint *array;

    for (array = (Hint *) list_ptr; array < (Hint *) list_ptr + size; array++) {
        *array = gen_crc(*array);
    }

    return SUCCESS;
}
Hint sw_crc(void * list_ptr, Huint size) {
    
    // Set up DMA structure
    dma_t local_dma;
    dma_config_t local_dma_config;
    local_dma_config.base = ACCELERATOR_DMA_BASEADDR;
    dma_create(&local_dma, &local_dma_config);
    
    // Transfer List A to local BRAM A using local dma
    if(transfer_dma(&local_dma, (void *) list_ptr, (void *) ACC_BRAM_A, size*4))
        return FAILURE;
    
    Hint *array = (Hint *) ACC_BRAM_A;

    for (array = (Hint *) ACC_BRAM_A; array < (Hint *) ACC_BRAM_A + size; array++) {
        *array = gen_crc(*array);
    }

    // Transfer results back
    if(transfer_dma(&local_dma, (void *) ACC_BRAM_A, (void *) list_ptr, size*4))
        return FAILURE;
    else
        return SUCCESS;
}