Moving from XmegaAD256D3 to ARM Cortex D3 processor

guggech wrote on Tuesday, April 10, 2018:

I need to convert code from a xmega256d3 with FreeRTOS 6.0 to a ARM Cortex D3 processor with FreeRTOS 10.0 using ATmel Studio. Any advice on how to do it painlessly as possible?

rtel wrote on Tuesday, April 10, 2018:

What is the D3? Is that one of Atmel (now Microchip) Cortex-A5 parts,
or a Cortex-M part?

In any case, I would suggest the following steps:

  1. Get a basic project running on the D3 (whatever that is) first.
    Don’t worry about FreeRTOS or anything else, just ensure you have the
    project set up correctly for the part, can download code to the part,
    and can run into and past main() with no issues.

  2. Next add in the FreeRTOS code - if you tell me the core in the D3 I
    can tell you which port layer to include. Just get the code compiling
    for now.

  3. Once the code is compiling create a simple task that allows you to
    check the scheduler is running as expected. Just a loop that toggles an
    LED at a fixed period that enables you to check the period is as expected.

for( ;; )
{
vTaskDelay( whatever );
ToggleLED( 0 );
}

  1. Once the scheduler is running with the correct timing, go ahead and
    add in your application code too. No down the chip set stuff will need
    to be completely changed, but the rest of the code should be fairly easy
    to move across.

guggech wrote on Wednesday, April 11, 2018:

Thank you for the suggestions. Sorry, the correct part is actually ther ATSAMD51J20A wich is the Cortex M4F type family.

rtel wrote on Wednesday, April 11, 2018:

In which case use the port files from FreeRTOS/source/portable/GCC/ARM_CM4F