I want to study heterogeneous systems. I must run C/C++ programs on M4, replacing to write arduino programs. How to do? Thanks
Perhaps Tim Michals can give you guidance http://allthingsembedded.blogspot.it/ http://www.udoo.org/forum/threads/mcc-shared-memory-address.3001/
I would suggest : 1. Spend some time understanding the cortex m3/m4 boot sequence (ie vector tables etc) if you are new to the subject. 2. Review chapters 2,13,52,61 im6sx reference manual as they indicate differences/features for supporting A9 + M4. 3. Understand how uboot is used to load & start an m4 program 4. You can now develop using FreeRTOS on the imx6x, more information can found in the here. Download the RTOS tar and it contain docs + samples. Some of the samples require modification to work on the NEO but that's part of the learning curve. I have built some of them of so they will work.
Hi, sorry for reopening an old thread, but I'm struggling with rpmsg on udoobuntu (udoo neo). My ultimate goal is to have udoobuntu (A9) + freertos (M4), both communicating using rpmsg. Can somebody point out all the necessary changes that have to be done on udoobuntu side? So far I have crosscompiled a few kernel modules (virtio, virtio_ring, virtio_rpmsg_bus, rpmsg-neo, imx_rpmsg_tty, imx_rpmsg_pingpong) - the last two taken from http://git.freescale.com/git/cgit.cgi/imx/linux-imx.git/tree/drivers/rpmsg?h=imx_3.14.52_1.1.0_ga. However, after loading any of the rpmsg-neo or imx_rpmsg_* modules I have no rpmsg device in /dev. So I suppose that I am still missing something - maybe dtb or kernel modification? Thanks.
@aprchal, I've been working on other platforms for the past year. I did some patches a while ago, but I think it would make more sense to use the latest kernel with patches or https://github.com/fmntf/linux_kernel/tree/4.1.15_1.x-udoo I'm checking into the status rpmsg at this time with 4.1.15 with Neo.
@aprchal I'm using the kernel mentioned by @tcmichals. The problem is, that the dtb files didn't have entries for rpmsg. Even mor frustrating was, that dmesg | grep rpmsg produced this: [ 0.147736] imx rpmsg driver is registered. 'imx6sx.dtsi' should contain a disabled entry. I added &rpmsg{ status = "okay"; }; Now I dmesg | grep rpmsg returns an additional entry: [ 0.147631] virtio_rpmsg_bus virtio0: rpmsg host is online [ 0.147736] imx rpmsg driver is registered. Now the examples are working. I hope this helps.