Just wondering if there is any advice for improving the port to work better with XCORE-200. With the XCORE-200 having so much more memory per tile than the XS1 it is a superior target to run meaningful programs in a FreeRTOS core (you can run one FreeRTOS core per tile, of course). It's great for me because I have a lot of legacy code for ARM Cortex-M targets that use FreeRTOS. And I just can write a few little .xc helper functions to interface that code to other parts of the chip (e.g. for I2C, UART, USB, Ethernet, etc).
The main challenges for XCORE-200 are discussed here: viewtopic.php?f=8&t=6370
Essentially you need to set portBYTE_ALIGNMENT to 8, and I have found that all the code that runs on the FreeRTOS core must be compiled with -mno-dual-issue, otherwise I get exceptions. Presumably related to either the clock interrupt or executing one of the assembly instructions, e.g. kcall instruction to jump to the kernel or disabling interrupts for a critical section and something screws up the issue alignment? I am honestly not a huge expert on how to deal with moving between dual issue and single issue code properly, especially with these asynchronous calls with interrupts and kcall. So I wonder if anyone has advice on where to look to get some insight on this? Of course I can continue to force the code on that core to be single issue, but it seems like it should be possible to make a few changes to the porting code so it would work with dual issue code (i.e. modify portmacro.h, port_asm.S, port.c and port_xc.xc).
Anyway, I have pulled in FreeRTOS 9 with just minor changes to the portmacro.h, so the port is by no means obsolete. I haven't tried FreeRTOS 10 yet, but I do like the MIT license.