On Fri, 30 Apr 2021 13:09:02 -0700 (PDT), in
gmane.comp.hardware.beagleboard.user Cheng Chen
<
chenc2442-Re5JQE...@public.gmane.org> wrote:
>My BBB wireless can compile pru code successfully because I installed
>PRU_CGT compiler. But it is unable to compile ARM code. I think that is
>because ARM_CCT cross-compiler toochain environment is missing, in another
>word, I need to install processor-sdk-am335x
>
The key is probably in the phrase "cross-compiler"... If you are
compiling ON the Beagle, you are using the "native" compiler, not a
cross-compiler ("cross" implies a toolchain that runs on a different
OS/architecture but which builds binary files meant for the target of the
toolchain -- but you are ON ARM, building FOR ARM).
>My first questions is can I install processor-sdk-am335x into Debian
>system I currently have (Linux beaglebone 4.19.94-ti-r62 ) ? I am a little
>confused about the relationship between this SDK and Debian system. Why is
>the tutorial asking me to compile pru_adc_userspace.c in the Beaglebone.
>I thought it is supposed to be executed in a cross-compilation environment.
>
Cross compilation is used mostly for a couple of reasons: either the
target system does not support a native compiler (you aren't going to run a
compiler on something like a Tiva C board, or an Arduino Due [both of which
run ARM M-series processors] -- though the native compiler on a
Beagle/Debian might be able to build files that can be downloaded to such
boards); the target board is not yet built -- in which case one is likely
going to be "running" the code using something like QEMU or other software
emulation of the hardware system; the target board has a compiler, but the
speed of the cross-compiler environment is much faster (consider a
hyper-threaded 64-bit processor -- which is seen as 8-cores by the OS, each
running at 2.5-3.5GHz, with 12GB of RAM, vs a single 32-bit core running at
1GB with less than 1GB of RAM).
>I ended up installing processor-sdk-am335x on my linux desktop and compiled
>successfully. Then I copied the generated file back to BBB wireless. But
>when I tried to run the program, it shows the following error.
>
>Reading voltage at ADC Channel: 5
>/dev/rpmsg_pru30 could not be opened.
>Trying to initialize PRU using sysfs interface.
>ERROR: Could not open /dev/rpmsg_pru30
>
This is a different matter, and likely means the device tree
configuration is not set correctly -- over the last few years there have
been two INCOMPATIBLE means of accessing the PRU. RemoteProc/RPMsg is the
newer system, pru_uio is older -- current images for the Beagle load
RemoteProc -- check /boot/uEnv.txt to see what version your system is
loading...
###PRUSS OPTIONS
###pru_rproc (4.14.x-ti kernel)
#uboot_overlay_pru=/lib/firmware/AM335X-PRU-RPROC-4-14-TI-00A0.dtbo
###pru_rproc (4.19.x-ti kernel)
uboot_overlay_pru=/lib/firmware/AM335X-PRU-RPROC-4-19-TI-00A0.dtbo
###pru_uio (4.14.x-ti, 4.19.x-ti & mainline/bone kernel)
#uboot_overlay_pru=/lib/firmware/AM335X-PRU-UIO-00A0.dtbo
###
... however, I don't seem to have any /dev/rpmsg* entries either.
I'm sure this have been brought up in this forum a few times in the
last year or so, but I don't recall the solution (if any). I did find that
the default firmware was not "running"... But starting it didn't add the
/dev/rpmsg*
debian@beaglebone:~$ cat /sys/class/remoteproc/remoteproc1/*
cat: /sys/class/remoteproc/remoteproc1/device: Is a directory
am335x-pru0-fw
4a334000.pru
cat: /sys/class/remoteproc/remoteproc1/power: Is a directory
offline <*****************************************
cat: /sys/class/remoteproc/remoteproc1/subsystem: Is a directory
DEVTYPE=remoteproc
debian@beaglebone:~$ echo 'start' > /sys/class/remoteproc/remoteproc1/state
debian@beaglebone:~$ cat /sys/class/remoteproc/remoteproc1/*
cat: /sys/class/remoteproc/remoteproc1/device: Is a directory
am335x-pru0-fw
4a334000.pru
cat: /sys/class/remoteproc/remoteproc1/power: Is a directory
running <*********************************************
cat: /sys/class/remoteproc/remoteproc1/subsystem: Is a directory
DEVTYPE=remoteproc
--
Dennis L Bieber