Basic ARM application in Xilinx Zynq SoC - arm

I am new to Xilinx Zynq SoC. Zynq has ARM(dual cores). I am curious if it is possible to run program C/C++ program only on ARM processors without using the FPGA fabric. My research could not helped much.
IF yes, I would like to know some basic steps that I need to follow to achieve the goal.

Yes, you can run your own application code without using the FPGA fabric.
You can download the xilinx SDK http://www.xilinx.com/tools/sdk.htm and start by trying some of the hello world projects available. Adding a FPGA bitstream is optional.

Follow the Tutorial by Xilinx.
http://www.xilinx.com/support/documentation/sw_manuals/xilinx14_3/ug873-zynq-ctt.pdf.
It is clearly stated in section 5.2.4.
Thanks.

Related

aurel32 qemu images arm vs mips

I am currently learning how to emulate both mips(el) and arm architecture using Qemu. The images which I used for both architecture is by aurel32 from this website, https://people.debian.org/%7Eaurel32/qemu/
I noticed that the mips images does not have initrd while the arm images have initrd. I am unsure why arm requires initrd when running Qemu but mips does not.
Anyone know why this is the case?
Thanks for the help!
There is no inherent reason -- you can build an Arm kernel with enough devices built-in to not need an initrd, and you can build a MIPS kernel that does require an initrd. You'd have to ask Aurelien why the two sets of images he built had different configs (assuming he even remembers 6 years later!), but I suspect it's just that for MIPS he was able to use the stock Debian kernel whereas for Arm he had to compile his own kernel, and so the configuration choices for the two weren't identical.

how to use CMUsphinx with ARM microcontrollers?

I just searched about an open-source library to use of my project to build a voice controlled robot and found CMUsphinx. but my robot will build on ARM based microcontroller and I have not Linux or Windows on it. Is it possible to use CMUsphinx on ARM based microcontrollers? How can I do it?
Is there any better options instead of using CMUsphinx on ARM uControllers?
Actually, you can use a variant of CMUSphinx, known as PocketSphinx, on ARM devices. Most resources focus on Raspberry Pi, as it's a very popular ARM target.
The instructions for installing on a Raspberry Pi are here:
http://cmusphinx.sourceforge.net/2016/06/should-you-select-raspberry-pi-3-or-raspberry-pi-b-for-cmusphinx/
There's a voice assistant for Raspberry Pi that uses CMUSphinx:
http://cmusphinx.sourceforge.net/2014/04/jasper-personal-assistant-for-raspberry-pi/comment-page-1/
And, there's a recent blog post about running on the Raspberry Pi here:
http://cmusphinx.sourceforge.net/2016/06/should-you-select-raspberry-pi-3-or-raspberry-pi-b-for-cmusphinx/
Is it possible to use CMUsphinx on ARM based microcontrollers?
No, it's not possible to use CMUSphinx on microcontrollers.
but my robot will build on ARM based microcontroller
Consider using more powerful CPU, it will help you with other tasks like navigation or network sync as well.

Atmel-ICE programming atsam4sd32c

I am having problems with the programming of a custom pcb which is using the 32-bit atsam4sd32c ARM Cortex M4. I am unable to program the microcontroller trough the JTAG/SWD interface using the ATMEL-ICE debugger. However I am able to get the device signature identifier using the atmel studio 7.0 command promt. Doing manual chip erases and resets is also possible.
When I try to program the board via the atmel studio 7.0 software the upload hangs at 14%.
We have tried a lot but not progress is being made.
Can anyone help?
Thank you all for your responses.
I was aware of the fact that this question was a little unfit for this forum.
But I hoped there might be people here who had experience with the atmel ARM series microcontrollers.
I did contact Atmel support and aventually that helped out.
The problem was in de hardware design of the JTAG lines. I was unaware of the need for pull-up resistors on all JTAG lines (TMS, TDI, TDO, NRST and TCK).
after we applied the resistors programming worked fine.
greetings,
Maarten Roozendaal

Zynq Qspi Booting

I'm using Arm DS-5 and Xilinx SDK for developing programs on Zynq board.
I'm trying to boot Zynq 702 board from Qspi Flash.
What I've done so far is generating FSBL project from Xilinx SDK, and combining it with my application using Bootgen tool in SDK, then program it into the flash.
There are several questions in my mind.
DS-5 produces an .axf file, Bootgen requires an .elf file. Can I use
the .axf file by just changing its extension to .elf or do I require
some more steps?
Is there a tool that shows the inner structure of an .axf file?
Showing what is where?
And how can I debug if I managed to boot from QSPI. For example I want to debug my application from the beginning of FSBL, is it possible? Because in Qspi Boot, When I power on the board, my application would start running and when I connect with JTAG, it would be in somewhere in my application.
An AXF might have some extra ARM-toolchain magic in it (I'm not sure off-hand), but at heart it's an ELF file - the ARM toolchain provides fromelf for poking around inside them, but other tools like readelf and objdump also work.
I'm not familiar with the Zynq platform so I don't know any specific debugger tricks, but a general one is just to put an infinite loop at the start of your code (possibly using volatile or inline asm trickery if necessary to prevent optimisation) - once the debugger's connected and broken into it, you just move the PC past the loop and continue.
You can totally halt QSPI-booted Zynq via JTAG and do whatever you want with it. However, there are some quirks. Sometimes Zynq goes into some kind of lockup, and JTAG doesn't work at all, and you need to power-cycle before retrying. Some not-so-well-written peripherial might die after starting software over JTAG, so you might need to re-load bitstream first. And there are some Vivado-related bugs (like the one where you cannot re-flash the board unless you downgrade to 2017.2 or change MIO2-6 pulls or patch the FSBL) but i'm not sure if they apply in your case.

Which ARM processor should be used for transfering data via ethernet?

The question below was related to the 8051 family as it has only the serial ports. Now when i found out that the ARM processors have inbuilt ethernet facility i decided to mov on to the ARM's. So which would be the Most easiest one to start of and as iam aware of keil environment i would like to work on anARM which supports keil .
Thnxx,
Cheers.
The TI (formerly Luminary Micro) parts are easy to use. The eval kits are cheap and there is a lot of documentation on the Luminary Micro web site, including sample code. I've been using the LM3S6965 EVK for an ethernet project. The eval kits can be ordered with Keil, IAR, Codesourcery or Code Red compilers.
Check out the AT91SAM7X.
AT91 SAM series from Atmel is really popular between hobbyists and amateurs, you will find a lot of open source examples and excessive topics regarding this CPU's. And yes, they are widely supported in Linux community.
Check this out: http://www.at91.com

Resources