Hello. I have a problem with writing data to reserved memory by PRU in BeagleBone Black.
Reserving memory is done through device tree “reserved-memory” node. The memory is reserved correctly and I can see the gap in the System Ram in “/proc/iomem” file.
I want PRU to write data items to the reserved memory and an user-space C program running on Linux will read these data items.
The problem is that some of the data items have not written to the reserved memory correctly. For example, if I write 100 integer numbers to the reserved memory, the numbers between 39 and 47 will not be written correctly while the other integers are written correctly. In other words, when I read the integer numbers from the reserved memory, all the integer numbers are correct, but numbers in the rage 40 to 62 are not correct.
In the above picture, numbers in the left column are the indexes of data in the reserved memory and numbers in the right column are the values of data items stored in the reserved memory. All values are correct but values in the range 39 to 47 are not correct. The contents of reserved memory are read using “devmem2”.
Does anyone know why that chunk of data (39 to 47) is not written correctly by the PRU?