im using the code from shabaz BBB - High speed data acquisition and web-based UI article and I did a rewrite of the PRU programm in C to fit it on the ADC.
I wrote and tested the program in CCS over JTAG and it works quiet well. Also the shared RAM writing seems to work.
Then I took the code onto the BBB with Ubuntu, installed the PRU C-Compiler for ARM etc…
The compiler- and linkerflags are (taken from the CCS makefile):
CLPRUFLAGS = -v3 -g -k -I"./lib" -I"./include"
CLPRULINKERFLAGS = --run_linker --define=am3359 -m"pru_code.map" --define=pru0 --diag_warning=225 --display_error_number --diag_wrap=off --heap_size=0x100 --stack_size=0x100 --reread_libs --define=PRU_CORE=1 --warn_sections --rom_model --xml_link_info=“pru_code.xml” -o pru_code.bin link.cmd
Then I modified the the adc.c host program for loading into PRU0 because of the PINs I wired the ADC to. I also did the stuff with the device tree etc.
Now, when I run the host program it stops at
prussdrv_exec_program (PRU_NUM, "./pru_code.bin");
with the buffer overflow message I mentioned in the subject.
What does that mean? Even google finds only one slightly usefull comment on a blogpost…
I attached the source of the hostprogramm.
P.S.: I discoverd that the size of the PRU programm compiled on the BBB is bigger (46kB) than the Version compiled in CCS on my Windows machine (32kB).