<https://lh4.googleusercontent.com/-HKGIHkUbEBs/Uz0uGFT6tOI/AAAAAAAAAJ4/2RW_Vpai_p8/s1600/gg.png>
On Thursday, 3 April 2014 14:59:51 UTC+5:30, Jacek Radzikowski wrote: > > The processor's TRM has full description of the bits in the control > registers. > > j. > > > On Thu, Apr 3, 2014 at 5:24 AM, milkyway <muhamme...@gmail.com<javascript:>> > wrote: > > Thanks. In the following line it has been chosen 0x00040000 to write in > to > > the configuration register. > > pinconf[0x217c/4] = pinconf[0x217c/4] & 0x0000ffff | 0x00040000; // > > gpio_149 > > > > How to select that value? > > > > > > On Wednesday, 2 April 2014 18:19:19 UTC+5:30, Jacek Radzikowski wrote: > >> > >> The address is in bytes and pinconf is an array of integers, which are > >> 4 bytes long. > >> > >> j. > >> > >> > >> On Wed, Apr 2, 2014 at 8:02 AM, milkyway <muhamme...@gmail.com> wrote: > >> > I am new to beagle baord. I have a doubt here. Please help. > >> > > >> > In the following line > >> > > >> > pinconf[0x217c/4] = pinconf[0x217c/4] & 0x0000ffff | 0x00040000; // > >> > gpio_149 > >> > > >> > Why do you need the division inside the pinconf array for indexing? > >> > > >> > > >> > On Wednesday, 7 December 2011 20:26:08 UTC+5:30, dl4mea wrote: > >> >> > >> >> Hello, > >> >> > >> >> My self given task was to get a LED blinking on the Beagleboard. > >> >> > >> >> After getting bored from "echo 0 > brightness" and puzzling together > >> >> some pieces of code that I found on the net, I finally got a piece > of > >> >> plain C code that I can cross compile on a Linux machine and play on > >> >> the Beagleboard. The two user LEDs as well as one pin of the > extension > >> >> connect flash in a 1sec clock with it. > >> >> > >> >> No guarantee for completeness, no guarantee for functionality, but > >> >> here it works. > >> >> > >> >> Enjoy! > >> >> > >> >> Günter (dl4mea) > >> >> > >> >> /* Blinking of user LEDs USR0 and USR1 and gpio_157 on Expansion > >> >> Connector P2 > >> >> NOTE: gpio_157 is 1.8V IO, possibly not sufficient for a LED > >> >> > >> >> disconnect user LEDs from Linux > >> >> echo none > /sys/class/leds/beagleboard::usr0/trigger; echo none > / > >> >> sys/class/leds/beagleboard::usr1/trigger; > >> >> > >> >> compile using > >> >> <path_to_cross>/arm-armv6-linux-gnueabi-g++ -static blink.c -o blink > >> >> > >> >> References: OMAP35x Applications Processor, Technical Reference > Manual > >> >> spruf98u.pdf > >> >> */ > >> >> > >> >> #include <stdio.h> > >> >> #include <stdlib.h> > >> >> #include <sys/types.h> > >> >> #include <sys/stat.h> > >> >> #include <unistd.h> > >> >> #include <fcntl.h> > >> >> #include <sys/mman.h> > >> >> > >> >> int main(void) > >> >> { > >> >> > >> >> printf ("open file descriptor for PADCONFIG\n"); > >> >> int fd = open("/dev/mem", O_RDWR | O_SYNC); //O_SYNC makes the > >> >> memory uncacheable > >> >> if (fd < 0) { > >> >> printf("Could not open PADCONFIG memory fd\n"); > >> >> return 0; > >> >> } > >> >> > >> >> // Pad configuration > >> >> printf ("map PINCONFIG\n"); > >> >> volatile ulong *pinconf; > >> >> pinconf = (ulong*) mmap(NULL, 0x10000, PROT_READ | PROT_WRITE, > >> >> MAP_SHARED, fd, 0x48000000); > >> >> if (pinconf == MAP_FAILED) { > >> >> printf("Pinconf Mapping failed\n"); > >> >> close(fd); > >> >> return 0; > >> >> } > >> >> > >> >> printf ("set pinconfig GPIO\n"); > >> >> pinconf[0x217c/4] = pinconf[0x217c/4] & 0x0000ffff | > >> >> 0x00040000; // gpio_149 > >> >> pinconf[0x2180/4] = pinconf[0x2180/4] & 0xffff0000 | > >> >> 0x00000004; // gpio_150 > >> >> pinconf[0x218c/4] = pinconf[0x218c/4] & 0x0000ffff | > >> >> 0x00040000; // gpio_157 > >> >> close(fd); > >> >> > >> >> /* -------------------------------------- */ > >> >> > >> >> printf ("open file descriptor for GPIO\n"); > >> >> int gpio_fd = open("/dev/mem", O_RDWR | O_SYNC); > >> >> if (gpio_fd < 0) { > >> >> printf("Could not open GPIO memory fd\n"); > >> >> return 0; > >> >> } > >> >> > >> >> // GPIO configuration > >> >> printf ("map GPIO\n"); > >> >> volatile ulong *gpio; > >> >> gpio = (ulong*) mmap(NULL, 0x10000, PROT_READ | PROT_WRITE, > >> >> MAP_SHARED, gpio_fd, 0x49050000); > >> >> if (gpio == MAP_FAILED) { > >> >> printf ("GPIO Mapping failed\n"); > >> >> close(gpio_fd); > >> >> return 0; > >> >> } > >> >> > >> >> printf ("set GPIO config\n"); > >> >> > >> >> // Configure GPIO pins on bank 5 as output. > >> >> // GPIO 5 is at physical address 0x49056000 = 0x49050000+0x6000 > >> >> gpio[0x6034/4] &= ~0x20600000; // set low for output > >> >> // Also disable the wakeupenable and irqenable intertupts > >> >> // GPIO clear_Wakeupenable is offset by 0x80 for each bank > >> >> gpio[0x6080/4] = 0x20600000; // 0x1: Clear the > corresponding > >> >> bit in the GPIO_WAKEUPENABLE register > >> >> // GPIO clear_irqenable1 is offset by 0x60 for each bank > >> >> gpio[0x6060/4] = 0x20600000; // 0x1: Clear the > corresponding > >> >> bit in the GPIO_IRQENABLE1 register > >> >> // GPIO clear_irqenable2 is offset by 0x70 for each bank > >> >> gpio[0x6070/4] = 0x20600000; // 0x1: Clear the > corresponding > >> >> bit in the GPIO_IRQENABLE2 register > >> >> > >> >> /* -------------------------------------- */ > >> >> > >> >> printf ("Toggle Pins\n"); > >> >> > >> >> int j=0; > >> >> for (j=0; j<10; j++) > >> >> { > >> >> printf ("j=%u\n", j); > >> >> //clear_data_out has offset 0x90 > >> >> gpio[0x6090/4]=0x20600000; > >> >> usleep(500000); > >> >> //set_data_out has offset 0x94 > >> >> gpio[0x6094/4]=0x20600000; > >> >> usleep(500000); > >> >> } > >> >> > >> >> close(gpio_fd); > >> >> } > >> > > >> > -- > >> > 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. > >> > For more options, visit https://groups.google.com/d/optout. > >> > >> > >> > >> -- > >> Given a choice between two theories, take the one which is funnier > > > > -- > > 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:>. > > For more options, visit https://groups.google.com/d/optout. > > > > -- > Given a choice between two theories, take the one which is funnier > -- 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. For more options, visit https://groups.google.com/d/optout.