I found some example PRU projects looking around on the forums, and so I’m trying to get their code to compile. Within CCS, I finally got it to show no errors. And with a good bit of work, I got the compile pass through clpru to succeed. However it’s failing on the linker pass. It’s saying it can’t find symbols:
- pru_rpmsg_channel
- pru_rpmsg_init
- pru_rpmsg_receive
- pru_rpmsg_send
They are declared within pru_rpmsg.h that is being included in c-file as a system file (using <>, not “”). I’d already worked through issues in CCS to get the compiler to find libc.a so I was aware that there were other *.h files in ~/ti/ccs1210/ccs/tools/compiler/ti-cgt-pru_2.3.3/ directory. So I looked there and found, the implementation file pru_rpmsg.c. However this directory is part of the CCS installation, not part of my source workspace directory. So I would assume/hope it is already compiled into a lib somewhere.
And indeed, I do see some lib files along with libc.a that I suspect MIGHT be what I’m looking for named:
- rtspruv1_be.lib
- rtspruv1_le.lib
- rtspruv2_be.lib
- rtspruv2_le.lib
- rtspruv3_be.lib
- rtspruv3_le.lib
I tried manually declaring one or two them to the linker, but that didn’t seem to help.
I also found where these files are in a CCS dropdown as “Runtime Support Library” files:
Manually delcaring nor picking them from this list seemed to make any difference. It doesn’t help that I don’t know what the difference between these 6 files is. The names are not intuitive to me.
In curiosity to just try something, I copied the pru_rpmsg.c local to the project’s main C-file (in this case it’s named pru.c) and tried another build. As expected, the linker no longer complained about those functions not being declared since there’s now a declaration. But it found different functions that are now not declared. So, what did I do? I copied all that source to my working example directory just to see what would happen. LOTS of errors and warnings of various types. So at this point, I think I’m going down a tangent rabbit hole.
So all that said, can anybody clarify what lib I’m supposed to include to get the pru_rpmsg stuff linked into this project?