Hi everyone!
I am working with the PRU subsystem on AM5728 EVM, and I got a question related with the size of the PRU firmware files.
Running this command "du -h *" to check the firmware file size, I have noticed that default firmware files provided by ti-processor-sdk-linux-am57xx-evm-02.00.02.11 has a size of 80 KB. The output of the command is shown below:
dgarbanzo@ridgerun-GA-890FXA-UD5:~/ti-processor-sdk-linux-am57xx-evm-02.00.02.11/targetNFS/lib/firmware/pru$ du -h *
28K PRU_Halt.out
80K PRU_RPMsg_Echo_Interrupt1_0.out
80K PRU_RPMsg_Echo_Interrupt1_1.out
80K PRU_RPMsg_Echo_Interrupt2_0.out
80K PRU_RPMsg_Echo_Interrupt2_1.out
Reading the TRM it is noted that the PRU has the following memory distribution:
-
12-KiB program RAM (Instruction RAM) per PRU CPU (signified IRAM0 for PRU0 and IRAM1 for PRU1)
-
8-KiB data RAM per PRU CPU (signified RAM0 for PRU0 and RAM1 for PRU1)
-
32-KiB general purpose memory RAM (signified RAM2) shared between PRU0 and PRU1
My questions are:
1) Why does the PRU firmware file exceeds the size of the internal instruction RAM (even exceeds the size of the sum of the three memories available)?
2) How can PRU manage and load this firmware file, if it is supposed that don´t fit in its internal memory RAM array? (I have load this firmware and run the basic example, and all seems to work fine)
3) What happen if my firmware program exceeds the 12 KB?
Thanks in advance on any guidance that you could provide.
-Daniel