Looking for a FreeRTOS port starting point

ericlawolson wrote on Wednesday, July 20, 2016:

I’m looking for a good starting point for a FreeRTOS port for the Analog Devices ADuCM320 (intially we’ll run on the ADuCM320EBZ eval board). Our current plan is to use a Segger/GCC setup, however we could use Keil if there was an obvious advantage to it.
We’ve used FreeRTOS in the past, but we’ve never had to do a port before. Any pointers/advice would be appreciated.

westmorelandeng wrote on Wednesday, July 20, 2016:

Hello Eric,

Since that part is ARM Cortex-M3 processor based - there’s your starting point - look in the …\Demo directory for what is closest to that part and the tools you really want to use.

If you had to start from scratch; knowing all there is to know about the stack frame; how IRQ’s are handled; how pointers; pointers to structures; etc. are handled is important to how you’d do the port - but I think there’s plenty there to get started with.

Doing context switching and the main timer irq are routines that should be in assembly language; you will probably find some starting points for that.

The more AD deviated from the ARM architecture; if they did at all; usually means more work on your end to get the port 100%. The infocenter.arm.com site is your friend.

HTH,
John W.

rtel wrote on Thursday, July 21, 2016:

Since that part is ARM Cortex-M3 processor based - there’s your
starting point

More than that - as this is a Cortex-M processor no porting is
required…at all. All you need to do is create a project. The
following links might help:

http://www.freertos.org/porting-a-freertos-demo-to-different-hardware.html

http://www.freertos.org/Creating-a-new-FreeRTOS-project.html

ericlawolson wrote on Wednesday, August 03, 2016:

Thanks guys.
I had a hard time identifying a FreeRTOS port that used a processor similar to the one we are using (just no easy way to compare them), so I ended up doing it from scratch, using the default startup setup generated by a Keil Cortex-M3 project. Then just added in the FreeRTOS files into the project. Most of the missing functions specific to the M3 I dug up from our previous port.
Once I’d done a simple port, it was easy to add the RTOS to any example projects supplied by the chip vendor and across different setups (Segger/GCC). I just needed some confidence in choosing a starting point.
Thanks again for your help,