Neilh: Feedback via this topic is fine. Once the cookbook is closer to ready I'll announce it in it's own topic.
--Mark On Sunday, August 26, 2018 at 4:50:32 PM UTC-4, Neilh wrote: > > Just reading this now. Looks great. Trying to read through the examples - > the format is really nice - how would you like feedback? Any deadlines for > you on this?. I'm away on vacation on Tue, and then might be able to try > the examples Sept 12 onwards. > > > On Fri, Aug 17, 2018 at 7:58 AM Mark A. Yoder <mark.a...@gmail.com > <javascript:>> wrote: > >> The PRU cookbook is nearing completion (more accurately, I'm running out >> of summer). >> >> Here's a link https://markayoder.github.io/PRUCookbook/ >> >> I'm happy for any feedback you can give me. >> >> --Mark >> >> On Thursday, June 28, 2018 at 8:45:00 PM UTC-4, Neilh wrote: >>> >>> Ok thanks. I see I was think SHARED_RAM between the ARM-A8 and PRU0 and >>> its actually shared between ARM PRU0 and PRU1. Ahhhh-lightbulb---hhhhh >>> Many thanks for the evolving cookbook and detailed explanation- I have >>> got a little lost at times digging through the manual - gosh I want to read >>> all the PRU sections - I'd have paid gold 4weeks ago when I started using >>> the PRUst!. >>> If it becomes a book I'll be first in line to buy it :). >>> The PRUs are a cool part of the BBB - and now I've got it working >>> appears pretty simple. >>> >>> >>> On Thu, Jun 28, 2018 at 12:59 PM Mark A. Yoder <mark.a...@gmail.com> >>> wrote: >>> >>>> Neilh: >>>> I've worked up some examples[1] for a PRU Cookbook that might help. >>>> I'm taking a similar approach to what you did, but I'm using DRAM0. It >>>> shouldn't be hard >>>> to switch to shared RAM. >>>> >>>> --Mark >>>> >>>> [1] >>>> https://markayoder.github.io/PRUCookbook/05blocks/blocks.html#_controlling_the_pwm_frequency >>>> >>>> >>>> On Wednesday, June 27, 2018 at 5:36:13 PM UTC-4, Neilh wrote: >>>>> >>>>> Oops I got it - it was sizing a pointer and not the struct. >>>>> >>>>> I'd be interested in anybody's comments on the use of the SHAREDRAM >>>>> approach as it makes for a very simple one way api. I'm partly publishing >>>>> this as a tutorial for anybody else - but its my first try at the PRU. >>>>> >>>>> Here is the logic anlayzer output from the Saleae 8 Channels mapping >>>>> of PRU0 to GPIO P9_25 ...P8_12 >>>>> There is an increasing pulse count chn0, and then fixed 1hz, 2hz... on >>>>> subsequent channels >>>>> >>>>> >>>>> >>>>> On Wed, Jun 27, 2018 at 2:13 PM Neil Hancock <neilh...@gmail.com> >>>>> wrote: >>>>> >>>>>> Oops - you are right, I'll update my comments >>>>>> >>>>>> Here is the code that is allocating the SHAREDRAM - though I'm still >>>>>> hazy as to how mmap() works in BBB mapping the SHAREDRAM >>>>>> >>>>>> #define AM33XX_DATARAM0_PHYS_BASE 0x4a300000 >>>>>> #define AM33XX_DATARAM1_PHYS_BASE 0x4a302000 >>>>>> #define AM33XX_PRUSS_SHAREDRAM_BASE 0x4a310000 >>>>>> #define SHARED_RAM_SZ 16 /* grab 8*4 bytes or 8 words */ >>>>>> >>>>>> volatile uint16_t *shared_dataram; >>>>>> >>>>>> /* Define an API to be calleable from JS -still needs work */ >>>>>> >>>>>> void bbbio_ppm_api(struct channels_s *channels){ >>>>>> memcpy((void *)shared_dataram,(void *)channels,sizeof(channels)); >>>>>> } >>>>>> >>>>>> void bbbio_ppm_init() { >>>>>> /* Allocate shared memory pointer to PRU0 DATARAM */ >>>>>> int mem_dev = open("/dev/mem", O_RDWR | O_SYNC); >>>>>> volatile void *shared_dataram_init = mmap(NULL, >>>>>> SHARED_RAM_SZ, >>>>>> PROT_READ | PROT_WRITE, >>>>>> MAP_SHARED, >>>>>> mem_dev, >>>>>> AM33XX_PRUSS_SHAREDRAM_BASE >>>>>> ); >>>>>> shared_dataram = (uint16_t *) shared_dataram_init; >>>>>> } >>>>>> >>>>>> void bbbio_ppm_cleanup() { >>>>>> munmap((void *)shared_dataram,SHARED_RAM_SZ); //njh guess at >>>>>> releasing it. >>>>>> } >>>>>> >>>>>> #ifdef MAIN_LOCAL >>>>>> void main() { >>>>>> unsigned int sec_i, chnl_j; >>>>>> unsigned int offset; >>>>>> struct channels_s channels; >>>>>> volatile uint16_t *shared_dataram2; >>>>>> >>>>>> bbbio_ppm_init(); >>>>>> uint16_t ppm =60;//actually >>>>>> >>>>>> offset = 0; >>>>>> channels.chn[offset].sr =ppm; >>>>>> printf("shared_datara2 = %p, offset=%d At init Read:", >>>>>> shared_dataram,offset); >>>>>> shared_dataram2 = (uint16_t *) shared_dataram; >>>>>> for(chnl_j=0; chnl_j<8; chnl_j++) { >>>>>> printf(" %04d", *shared_dataram2); >>>>>> shared_dataram2++; >>>>>> if (0x3 ==(chnl_j & 0x3)){printf(" ");} >>>>>> } >>>>>> printf("\n"); >>>>>> >>>>>> ppm =0; >>>>>> for(chnl_j=0; chnl_j<8; chnl_j++) { >>>>>> channels.chn[chnl_j].sr=ppm; >>>>>> ppm += 60; >>>>>> } >>>>>> //Fut - wait for ack from PRU and then init shared ram >>>>>> >>>>>> //while (1) >>>>>> { >>>>>> ppm=60; >>>>>> for(sec_i=0; sec_i<8; sec_i++) { >>>>>> channels.chn[offset].sr +=ppm; >>>>>> //memcpy((void *)shared_dataram,(void >>>>>> *)&channels,sizeof(channels)); >>>>>> bbbio_ppm_api(&channels); >>>>>> printf("Writing %04d Read:", ppm); >>>>>> shared_dataram2 = (uint16_t *) shared_dataram; >>>>>> for(chnl_j=0; chnl_j<8; chnl_j++) { >>>>>> printf(" %04d", *shared_dataram2); >>>>>> shared_dataram2++; >>>>>> if (0x3 ==(chnl_j & 0x3)){printf(" ");} >>>>>> } >>>>>> printf("\n"); >>>>>> sleep(1); >>>>>> } >>>>>> } >>>>>> bbbio_ppm_cleanup(); >>>>>> } >>>>>> >>>>>> #endif //MAIN_LOCAL >>>>>> >>>>>> On Wed, Jun 27, 2018 at 1:33 PM Dennis Lee Bieber < >>>>>> wlf...@ix.netcom.com> wrote: >>>>>> >>>>>>> On Wed, 27 Jun 2018 12:18:27 -0700, Neil Hancock >>>>>>> <neilh...@gmail.com> declaimed the >>>>>>> following: >>>>>>> >>>>>>> > with 8*int16 (or 32bytes). >>>>>>> > >>>>>>> Pardon? >>>>>>> >>>>>>> int16 is 2-bytes, 8*2 => 16 bytes >>>>>>> >>>>>>> >Initially I tried 8*int32 (64bytes) but could only sucessfully use >>>>>>> the >>>>>>> >first 5*int32(40bytes >>>>>>> > >>>>>>> Similarly, int32 is 4-bytes, 8*4 => 32; 5*4 => 20 >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Wulfraed Dennis Lee Bieber AF6VN >>>>>>> wlf...@ix.netcom.com HTTP://wlfraed.home.netcom.com/ >>>>>>> >>>>>>> -- >>>>>>> For more options, visit http://beagleboard.org/discuss >>>>>>> --- >>>>>>> You received this message because you are subscribed to the Google >>>>>>> Groups "BeagleBoard" group. >>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>> send an email to beagleboard...@googlegroups.com. >>>>>>> To view this discussion on the web visit >>>>>>> https://groups.google.com/d/msgid/beagleboard/pvs7jdpvq34jft17pkpeljrk5p0scj487r%404ax.com >>>>>>> . >>>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>>> >>>>>> -- >>>> For more options, visit http://beagleboard.org/discuss >>>> --- >>>> You received this message because you are subscribed to the Google >>>> Groups "BeagleBoard" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to beagleboard...@googlegroups.com. >>>> To view this discussion on the web visit >>>> https://groups.google.com/d/msgid/beagleboard/a90eb811-c902-4a20-96fa-31e1b03abb5a%40googlegroups.com >>>> >>>> <https://groups.google.com/d/msgid/beagleboard/a90eb811-c902-4a20-96fa-31e1b03abb5a%40googlegroups.com?utm_medium=email&utm_source=footer> >>>> . >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> -- >> For more options, visit http://beagleboard.org/discuss >> --- >> You received this message because you are subscribed to the Google Groups >> "BeagleBoard" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to beagleboard...@googlegroups.com <javascript:>. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/beagleboard/5ef1cbae-0e43-47dc-83b1-dead26d1645d%40googlegroups.com >> >> <https://groups.google.com/d/msgid/beagleboard/5ef1cbae-0e43-47dc-83b1-dead26d1645d%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> For more options, visit https://groups.google.com/d/optout. >> > -- For more options, visit http://beagleboard.org/discuss --- You received this message because you are subscribed to the Google Groups "BeagleBoard" group. To unsubscribe from this group and stop receiving emails from it, send an email to beagleboard+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/beagleboard/063c0dcc-e59d-4c48-a22c-fe1455d04cde%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.