Looking for advice on mixing ARM and xmos

Technical questions regarding the xTIMEcomposer, xSOFTip Explorer and Programming with XMOS.
User avatar
CousinItt
Respected Member
Posts: 265
Joined: Wed May 31, 2017 6:55 pm

Looking for advice on mixing ARM and xmos

Post by CousinItt »

Looks like I will need to use an ARM device in a new project together with xmos devices.

I'll need to provide for in-system reprogramming, and I'm planning to provide an xTAG in the product with its USB port exposed. I'm hoping the QSPI flash for the xmos subsystem to also contain an image for the ARM system. At boot, the xmos and ARM devices both boot from their respective flash devices, and then an xmos device downloads an executable image to the ARM device, which runs it from RAM.

The problems with this approach are:

1) No in-system debug for the ARM subsystem - which isn't a problem for field upgrades.
2) No in-system update of the ARM boot loader, which again shouldn't be a problem if it's simple enough.

Regarding point 2, it would be possible to download an image to the ARM system that it then uses to upgrade itself, but this has some risks - e.g. bricking due to power failure.

Have you tried doing something like this? Any pitfalls or advice?

Thanks!


mbruno
Posts: 11
Joined: Thu Aug 24, 2017 2:48 pm

Post by mbruno »

Why does this mean there would be no in-system debug for the ARM? You can still have a connector for your ARM debugger (J-Link or whatever).

I have done things like this before, with one micro only loading and running a bootloader, with the other sending it its image over a SPI or UART interface. What interface do you plan to use between the XCore and ARM to transfer its image?
I assume you will be giving the XCore control over the ARM's reset line.

Consider doing at least a CRC check on the ARM side after receiving the image and prior to executing it.

There are certainly ways to safely update the bootloader in the ARM's flash without risk of bricking it, but the extra complexity may not be worth it.