Cheng
I'm actually using the SDK now so be careful about generic advisethe
instructions are for Ubuntu not Debian'Since I had questions myself right now
I realized this PRU code you have just a small part of the SDKMy point was you
never read the SDK quick startPlease do so here is the doc tarball'12.
Documentation Tarball — Processor SDK RTOS Documentation
If you search the group on X15 and DSP Jeff Aused the SDK and ran the binary on
Debian(For the DSP with remore proc)
So yes you can use Debian to load the PRU firmware you need a corresponding ARM
binary for that code. Jeff used the SDK to build that
I dont know where you read to compile SDK examples on BBB its not something I
read
So use Ubuntu box as instructions tell you too
OR
wait to see if Jeff Andlich can tell you if its feasable to attempt to install
the SDK on the board itself and compile the code that doesn't sound right to me
OR
create an account on E2E ask the people who designed the SDK especially if your
confused
I can answer CCS JTAG barebone ARM questiion about SDK not interested in Linux
Please read the tarball in the link
Regard'
On Friday, April 30, 2021, 03:09:09 PM CDT, Cheng Chen
<[email protected]> wrote:
Hi all,
I am practicing PRU skills through some TI examples. I am playing with
PRU_ADC_onChip example and ran into a few questions. I wonder if you can help
me with.
The nice thing about this example is it has a README.txt with all the
procedures. The idea is to use rpmsg to communicate between arm and pru module
and read out ADC value. I am using a Beaglebone Black wireless.Here is the
basic procedures.
FILE STRUCTUREPRU_ADC | |--pru_adc_firmware.c firmware loaded into PRU0 |
|--pru_adc_userspace |--pru_adc_userspace.c userspace code that interacts
with PRU0
BUILD FIRMWARE & USERSPACE CODE$ cd
<PATH_TO_PRU_SW_SUPPORT_PACKAGE>/examples/am335x/PRU_ADC_onChip/$ make clean$
make$ cd pru_adc_userspace/$ make clean$ make
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
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.
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
Attached is the excerpt where the problem happened. Could anyone help me with
some hints of what is going on here? Much appreciated.
struct shared_struct message;
/* use character device /dev/rpmsg_pru30 */ char outputFilename[] =
"/dev/rpmsg_pru30";
/* test that /dev/rpmsg_pru30 exists */ FILE *ofp; uint16_t returnedVoltage;
ofp = fopen(outputFilename, "r");
if (ofp == NULL) {
printf("/dev/rpmsg_pru30 could not be opened. \n"); printf("Trying to
initialize PRU using sysfs interface.\n");
FILE *sysfs_node; char firmware[] =
"/sys/class/remoteproc/remoteproc1/firmware"; char firmwareName[] =
"PRU_ADC_onChip.out"; sysfs_node = fopen(firmware, "r+"); if (sysfs_node ==
NULL) { printf("cannot open firmware sysfs_node"); return EXIT_FAILURE; }
fwrite(&firmwareName, sizeof(uint8_t), sizeof(firmwareName), sysfs_node);
fclose(sysfs_node);
char pruState[] = "/sys/class/remoteproc/remoteproc1/state"; char start[] =
"start"; sysfs_node = fopen(pruState, "r+"); if (sysfs_node == NULL) {
printf("cannot open state sysfs_node"); return EXIT_FAILURE; } fwrite(&start,
sizeof(uint8_t), sizeof(start), sysfs_node); fclose(sysfs_node);
/* give RPMSG time to initialize */ sleep(3);
ofp = fopen(outputFilename, "r");
if (ofp == NULL) { printf("ERROR: Could not open /dev/rpmsg_pru30\n");
exit(EXIT_FAILURE); } }
--
For more options, visit http://beagleboard.org/discuss
---
You received this message because you are subscribed to the Google Groups
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/beagleboard/1d43aa7b-0e94-4431-9e31-13545213940bn%40googlegroups.com.
--
For more options, visit http://beagleboard.org/discuss
---
You received this message because you are subscribed to the Google Groups
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/beagleboard/1459686490.1513076.1619831165937%40mail.yahoo.com.