Quantcast
Channel: Processors forum - Recent Threads
Viewing all articles
Browse latest Browse all 17527

SharedRegion

$
0
0

it can't write immediately to shared ram.

code list delow:

static bool server_upp_data_transfer(Server *server) { 
 if(server->ad_started == false) return true;
    while (ListMP_empty(server->list_free))  /* wait */
        Task_sleep(10000);

    DataNode *node = (DataNode *)ListMP_getTail(server->list_free); /* get free node */
    int *data = (int *)SharedRegion_getPtr(node->SR_buffer);

    server->transposeParA.WindowAddress     = (unsigned int *)data;  /* set taget */
    server->transposeParA.LineCount   = node->buffer_height;
    server->transposeParA.ByteCount   = node->buffer_pitch;
    server->transposeParA.LineOffsetAddress = node->buffer_pitch;

    upp_error_count = 0;
    upp_dmai_int_cut = 0;

    /* fill in data */
    uPPDMATransfer(SOC_UPP_0_REGS, uPP_DMA_CHI, &server->transposeParA);

    /* wait */
    while (upp_dmai_int_cut < 1 && upp_error_count == 0);

    if (upp_error_count != 0) {
        LOG_ERROR("data mismatch in buffers");
        LOG_ERROR("upp_error_count=%d",upp_error_count);
    }

    /* make data node in busy list */
    ListMP_putHead(server->list_busy, (ListMP_Elem *)node);

    return true;
}


Viewing all articles
Browse latest Browse all 17527

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>