I'm trying to use the PRU in the AM1808 to perform some dedicated I/O functions. When I am not using SYS/BIOS as an OS on the AM1808 the PRU is able to share L3 and DDR memory with the AM1808, but when I am running under SYS/BIOS the PRU cannot always write to L3 and/or DDR memory.
In the PRU I have the following instruction;
SBBO io.data, BufPtr, 0, 0x02 // Save LSB & MSB
The expected result is that when this instruction is executed in the PRU the PRU writes 2 bytes from io.data to the address in BufPtr. If I am running my app under SYS/BIOS the above PRU instruction may or may not work. When BufPtr contains some valid memory locations (example 0x80009290) it will not write the data from io.data as expected. Changing the contents of BufPtr to some other valid memory location (example 0x8000870C) and then the byte transfer may or may not work. The success is sometimes intermittently. To verify that the data transfer took place I am using the memory view and watch feature in CCS after the PRU has completed the operation. If I perform the same PRU function without using an application that uses SYS/BIOS the PRU functions as expected all the time.
Are there special considerations in the set up of SYS/BIOS to allow the PRU to share L3 and/or DDR memory with the AM1808? Are any special MMU setups required?