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: 275
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.
User avatar
CousinItt
Respected Member
Posts: 275
Joined: Wed May 31, 2017 6:55 pm

Post by CousinItt »

Hi,

thanks for your message. I don't mean there is no in-system debug for the ARM, simply that access to the interface won't be available on the outside of the equipment (unless someone knows how to make the xTAG work with arm devices).

I need a fast-ish interface for periodic real-time data transfer between xmos and ARM, so I was planning to have a parallel interface with handshaking signals, but for managing start-up and maybe a bit of debug insurance I was going to add a simple UART style interface. There's no real penalty to providing this. Hence I could use the parallel interface for downloading the code image once things have been set up. The application does not need instant-on capability, so providing this is completed in a few seconds all is well. The ARM image won't be very large - e.g. < 200 kb.

Yes, the xmos side will be able to reset the ARM side. I'll use a CRC on the code image.

Thanks again.