Which toolchain to use for Raspberry PI 3? - arm

I just got my all new Raspberry Pi 3 board. I was wondering which tool-chain to use for my 64-bit pi (BCM2837). In the official github page I could find tool-chain for previous model only. Please Help

In documentation at https://www.raspberrypi.org/documentation/linux/kernel/building.md you can use toolchain from https://github.com/raspberrypi/tools which works with your Raspberry Pi 3 board. You don't need any special toolchains because the kernel is still 32bit and OS (like Raspbian) is at this time only 32 bit. There won't be any other special toolchain for RPi3.

Related

Will all ARM compilers produce the same Assembly code and run on various CPUs?

I have been developing code for an older device which has an NXP i.MX28 single core CPU which is ARM-based. The device runs Embedded Linux.
I am now upgrading to a better device which has an NXP i.MX6UL quad core processor, of course ARM-based also, and also running Embedded inux.
Is it normal that the same toolchain which I was using for the for building the code for the i.MX28 will also work for the i.MX6UL, even though the i.MX6UL is more advanced with more cores etc.?
I have built my code now for a test with the same compiler and even run it on a Rasberry Pi which seems to run ok. The Rasberry Pi uses a Broadcom BCM2711 SoC with an ARM Cortex-A72 processor which again is a different CPU.
I therefore must ask, will any ARM toolchain build code and be able to run on any type of ARM device regardless?
CPUs differ by the core architecture (incl. instruction set) and set of peripherals. Difference in the peripherals is solved by drivers and HALs. Difference in core arch is solved by the toolchain.
If the toolchain "knows" new arch it will emit the corresponding assembly code, that will run on the new CPU. So, compilers will not produdce the same assembly, but the same source code will run after rebuild, that's the idea of high-level languages.
Problems emerge when old code contains an inline assembly, or uses some specific DSP instructions or libraries

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.

GPU ARM Mali and OpenCL driver

I have my TinkerBoard powered by an ARM-based Maliā„¢-T764 GPU. I am running Debian linaro v2.0.8 strech.
I am looking for an OpenCL support, how can I enable the GPU MALI with OpenCL 1.2 FP?
If you can advice me to update it I would appreciate it.
You need to install the binary ARM Mali drivers. How you do that, depends on the distro you're using. On Odroids for example, it comes installed with their Ubuntu.
Once you have it installed, it either comes with OpenCL enabled, or you can simply enable it: create a file /etc/OpenCL/vendors/mali.icd and put inside that file the path to the driver, e.g. on my Odroid it's /usr/lib/arm-linux-gnueabihf/mali-egl/libmali.so
So first i'd ask on whatever communication channels Debian Linaro has, how to install the binary drivers.

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.

Compile libcivil for ARM architecture

i coded a java applications that takes the pictures of a webcam that is attached to the pc. For that i use the lti-civil java-api. It works fine! This api uses a shared library -libcivil.so- for jni access to several native libs. The libcivil.so exists for linux 32/64bit osx and windows. But i want the application to run with raspberry pi which has arm-architecture.
My question is: is it possible to recompile the libcivil - shared lib for arm-architecture? iam not familiar with c++ so i don't know if it is possible in any way.
i found a way to obtain webcam images with java on a raspberry pi. I use the v4l4j library. It's a jni wrapper for the v4l2 api. It handles direct access to the /dev/video interface under linux. There is a way to compile it for the raspbian linux-port and it works great. But the raspberry seems to be too slow (5-8 fps and hight latency - about 300-500ms). But this is another thing. Now iam waiting for the hackberry or gooseberry... =)
compile v4l4j on raspberry pi how-to:
https://code.google.com/p/v4l4j/wiki/GettingStartedOnRPi
greez
daniel

Resources