Hi,
i need for a new project a cortex M3 (LPC 1769) and of course a L1 for some Hardware parts.
How can i boot the L1 from the M3?
Kind regards,
Dirk
how to boot a L1 from a CORTEX M3
-
- Active Member
- Posts: 32
- Joined: Fri Oct 07, 2011 3:20 pm
-
- XCore Expert
- Posts: 754
- Joined: Thu Dec 10, 2009 6:56 pm
Mimic a flash device or implement an Xlink on the ARM processor or implement JTAG on the ARM controller. Basically every option can be done that the XMOS processor has :).
I would problably go for mimicking a flash device.
I would problably go for mimicking a flash device.
-
- XCore Expert
- Posts: 844
- Joined: Sun Jul 11, 2010 1:31 am
It depends what you want to do. Emulating a flash device is the leastBianco wrote:Mimic a flash device or implement an Xlink on the ARM processor or implement JTAG on the ARM controller. Basically every option can be done that the XMOS processor has :).
I would problably go for mimicking a flash device.
flexible, and the hardest to get working properly too, in my experience
(timing matters a lot on SPI, and the M3, being the slave side, doesn't
get to stretch clocks etc.)
With the xlink you get a nice communication channel for your M3 code
to talk to your xcore code.
With the JTAG you get much superior debugging.
There of course is a fourth option as well: boot from an actual SPI flash
chip. This is the safest choice if you're on a tight schedule.
Or a combination of any of these. Choices choices :-)
-
- XCore Legend
- Posts: 1274
- Joined: Thu Dec 10, 2009 10:20 pm
segher wrote:It depends what you want to do. Emulating a flash device is the leastBianco wrote:Mimic a flash device or implement an Xlink on the ARM processor or implement JTAG on the ARM controller. Basically every option can be done that the XMOS processor has :).
I would problably go for mimicking a flash device.
flexible, and the hardest to get working properly too, in my experience
(timing matters a lot on SPI, and the M3, being the slave side, doesn't
get to stretch clocks etc.)
With the xlink you get a nice communication channel for your M3 code
to talk to your xcore code.
With the JTAG you get much superior debugging.
There of course is a fourth option as well: boot from an actual SPI flash
chip. This is the safest choice if you're on a tight schedule.
Or a combination of any of these. Choices choices :-)
The xlink route is preferable for a several reasons if you can make it work:
1) Versus SPI flash emulation means you don't have to tie up 4 of you valuable 1 bit ports on the Xmos side
2) You can also use it to talk to ARM cortex M chips generically to perform other tasks that appear as a simple service on the Xmos dev side, I can think of several cases where this would be useful.
3) It could possibly be faster than SPI depending on chip used,
4) JTAG is an entirely different proposition and there are already solutions out there either FTDI or XS1 based.
5) It would be a useful introduction and a great way to learn about Xmos channels and boot sequencing
6) An ARM xlink implementation would be very cool, if opensourced would definitely be something I and probably others would build on.
Just my $0.02
regards
Al
-
- Active Member
- Posts: 32
- Joined: Fri Oct 07, 2011 3:20 pm
Well the reason why i will boot from the CORTEX M3 is, i have 512K Flash and i can update the System this way very easy. And i can change the Program of the L1 (switch between 2 or more Program's).
To mimic a flash device is hard?! Bad news, this was my favourite way.
To implement a JTAG would be nice, may be the easiest way!
But i need the debug system for debugging my XMOS program. So i can't use it.
If i understand you all right i should use xlink.
Can the XMOS boot over xlink? Or must i write a program on the Xmos so that he can do it?
What about the speed? Xlink is fast, can i make it slow to work with the M3?
But when i must write a boot loader program on the XMOS, than i can write everything i will (SPI / I²C/ ...). But i can't change the bootloader from the M3.
EDIT:
Ok the XMOS can boot over xlink i don't need a program!
But i didn't found how the system is working.
Kind regards,
Dirk
To mimic a flash device is hard?! Bad news, this was my favourite way.
To implement a JTAG would be nice, may be the easiest way!
But i need the debug system for debugging my XMOS program. So i can't use it.
If i understand you all right i should use xlink.
Can the XMOS boot over xlink? Or must i write a program on the Xmos so that he can do it?
What about the speed? Xlink is fast, can i make it slow to work with the M3?
But when i must write a boot loader program on the XMOS, than i can write everything i will (SPI / I²C/ ...). But i can't change the bootloader from the M3.
EDIT:
Ok the XMOS can boot over xlink i don't need a program!
But i didn't found how the system is working.
Kind regards,
Dirk
-
- XCore Legend
- Posts: 1274
- Joined: Thu Dec 10, 2009 10:20 pm
Checkout the L systems doc, it covers boot procedures etc..
http://www.xmos.com/published/xs1-l-sys ... ion=latest
(2.3 Boot from XMOS Link)
Once you implement Xmos link specification (section 3) on the Arm it should be straight forward by connecting link B to the arm link GPIO pins.
regards
Al
http://www.xmos.com/published/xs1-l-sys ... ion=latest
(2.3 Boot from XMOS Link)
Once you implement Xmos link specification (section 3) on the Arm it should be straight forward by connecting link B to the arm link GPIO pins.
regards
Al
-
Verified
- XCore Legend
- Posts: 1163
- Joined: Thu Dec 10, 2009 9:20 pm
- Location: Bristol, UK
Normally, in my experience, most people go for the SPI option. Either from the other MCU or a shared flash. The MCU typically also takes the XCore out of reset.
(Not saying this is the best/correct answer.. just one that seems the most popular in the field)
(Not saying this is the best/correct answer.. just one that seems the most popular in the field)