This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Encryption code using DMA and TI RTOS

Hi,

I am trying to use AES ECB using DMA in TI RTOS, but the example codes from of encryption using DMA are only for tivaware library and they don't use TI RTOS, like I am trying to do.

I was able to make an encryption code using TI RTOS, but without DMA. Can anyone help me including DMA?? Does anyone have some example code for what I want to do?

Thanks,

Paulo

  • Hello Paulo

    I believe you can call the TivaWare API's in the TI-RTOS framework. What is the trigger for the DMA?
  • I know I can, but when I tried to copy the tivaware encryption example to a TI RTOS hello world example it didn't work. After I solved all compiling issues, it still didn't work because of a over stack problem.
    So, I was wondering if if anyone already had an example putting together both tivaware encryption and RTOS.

    Thanks,
    Paulo
  • Hello Paulo

    I have asked the TI RTOS SME to look at it.
  • Hello Paulo,

    Unfortunately we don't have any working example.

    Did you create a task in your application - I could not find any task being provided by default in the "hello world" example of TI-RTOS? It would be better to use an example that already has a Task created.

    Another consideration is that TI-RTOS does not provide any (RTOS safe) driver for the AES module, like how it provides for the GPIO or UART peripherals. So managing interrupts will be vital. The "hwi" module of TI-RTOS should be used to register an interrupt function (this is different from how an interrupt is registered in TivaWare).

    Refer the implementation of the API "UARTTivaDMA_open" in "UARTTivaDMA" driver in the folder "./<TIRTOS_Installation>/products/tidrivers_tivac_x_xx_xx_xx/packages/ti/drivers/uart" for an example of how to initialize a peripheral with DMA and register Interrupts. Some parts of the implementation can be ignored as they might not be relevant for every use case.

    Thanks,
    Sai