<Guest55>
Hello guys I am new to beaglebone black can any1 help me to get started with it
Guest55 has quit [Client Quit]
starblue has quit [Ping timeout: 246 seconds]
starblue has joined #beagle
rob_w has quit [Remote host closed the connection]
<set_>
I g o t it!
<set_>
server...she be a runnin' man!
<set_>
I keep forgetting, if you use a specific kernel version, one would also need to research what was available when that kernel was around...
<set_>
Odd days! note to my future self: Wake up GenTooMan to see the quadruped!
buckket has quit [Quit: buckket]
buckket has joined #beagle
petrosky has joined #beagle
<petrosky>
Hi everybody. I am working with PRU on beaglebone green. I have some issuses when I try to use the timer on ECAP. How can I read some manual about resource table configuration?
<petrosky>
sorry, where I can found a manual about resource table configuration?
buzzmarshall has joined #beagle
<petrosky>
I had looking for information on google, but I cannot found nothing.
jfsimon1981 has joined #beagle
petrosky65 has joined #beagle
petrosky65 has quit [Client Quit]
<zmatt>
petrosky: I don't really know much about remoteproc-pru (I use uio-pruss), but why would you need any resource table configuration for ecap timer usage? isn't the resource table for declaring stuff that's shared between linux and pru?
brook has joined #beagle
petrosky has quit [Ping timeout: 260 seconds]
petrosky has joined #beagle
<zmatt>
the pru ecap isn't even declared in DT so the linux kernel can't possibly know or care about your usage of the pru ecap
chococandy has joined #beagle
<petrosky>
zmatt: You are right, eCAP is a peripheral inside PRU that doesn't share resources with linux, I readed something about it on this link:
<zmatt>
though the page does explain that the resource table is only relevant if you use RPMsg or (in kernel 5.4 or earlier) need the intc configured
<zmatt>
and they reference specific examples you can examine
chococandy has quit [Quit: Client closed]
<zmatt>
the resource table is just a data structure declared by your PRU program with information for the linux kernel
<petrosky>
I have 2 codes, one for rpmsg and works fine, second one uses a timer on eCAP and works fine, but when I put together these 2 codes, the timer doesn't work, I think is something about intc. intc is configurated into resource table, right?
<zmatt>
intc is configured in the resource table yes... typically you wouldn't use the intc for ecap but I suppose you might if you're doing rpmsg on the same pru core
<zmatt>
or maybe you're just doing something wrong with how you're combining the two programs
<zmatt>
honestly even if you're doing rpmsg on the same core, I still don't see much reason to route it via intc
ft has joined #beagle
<petrosky>
zmatt: I need to launch some processes at exactly the right time, this is why I use a eCAP timer not a delay for example. I am going to find how to use eCAP timer without intc
<zmatt>
petrosky: so, in the rpmsg examples there's a main loop (the while(1) in main()) that checks if the INTC has an event, it then assumes this event is the rpmsg kick event (it doesn't check whether this is true), clears this event, and proceeds to process rpmsgs in a loop until there are no more available
<zmatt>
if you want to use ecap as a timer you can just check whether your timer has expired in the top-level of that loop
<zmatt>
I'd also suggest making sure at most one rpmsg is processed per loop iteration to minimize jitter of your timer event handler
<zmatt>
(this rpmsg handling is of course just the echo example, you should substitute your own handling)
<zmatt>
this also means you can just have ecap be free-running and don't need to configure your timer deadline in ecap, you can just keep it in software (which also makes it easy to have multiple timers if needed)
<zmatt>
you could instead use ecap as actual timer and have it generate an event in intc, but then you'd either need to route it to the other r31 bit (there's an intc output that goes to bit 30 of r31 of both pru cores and an output that goes to bit 31 of r31 of both pru cores) or you'd need to actually check in the intc what event has been triggered and dispatch accordingly
<zmatt>
this is more complex and the time saved by not checking the time each main event loop iteration is negligible (a few cycles) and almost certainly negated by the additional time spent in the more complex interrupt dispatching (and additional work you'd need to do in the ecap registers)
brook has quit [Remote host closed the connection]
<zmatt>
note that rpmsg is slow and non-deterministic (since it involves reading from ddr3 memory) so using rpmsg will unavoidably reduce the timing accuracy of anything else you do on the same pru core
<zmatt>
oh I just noticed I fucked up the code I just pastebinned
<petrosky>
zmatt: Thanks a lot for your explanation
brook has joined #beagle
florian has quit [Quit: Ex-Chat]
<zmatt>
petrosky: https://pastebin.com/ssWyGgVZ .. something like that would be the idea... there's many ways of course to implement timers with different trade-offs
brook has quit [Remote host closed the connection]
Guest24 has joined #beagle
Guest24 has quit [Client Quit]
<zmatt>
lol I misspelled timestamp as timerstamp
brook has joined #beagle
petrosky has quit [Ping timeout: 260 seconds]
brook has quit [Remote host closed the connection]
xet7 has joined #beagle
vagrantc has joined #beagle
brook has joined #beagle
brook has quit [Ping timeout: 252 seconds]
brook has joined #beagle
shoragan has quit [Ping timeout: 246 seconds]
shoragan has joined #beagle
zjason` has joined #beagle
zjason has quit [Ping timeout: 246 seconds]
petrosky has joined #beagle
brook has quit [Remote host closed the connection]
brook has joined #beagle
ikarso has joined #beagle
brook has quit [Remote host closed the connection]
brook has joined #beagle
brook has quit [Remote host closed the connection]
brook has joined #beagle
brook has quit [Read error: Connection reset by peer]
brook_ has joined #beagle
rob_w has joined #beagle
rob_w has quit [Read error: Connection reset by peer]
set_ has left #beagle [#beagle]
petrosky has quit [Quit: Client closed]
set_ has joined #beagle
<set_>
Did anyone see my fun video?
<set_>
And by see "my fun video," I mean add salutations and/or poor remarks?
<set_>
It is not beagleboard.org worthy...
<set_>
YET!
<set_>
It will get there in time. First come, first serve.
brook_ has quit [Remote host closed the connection]