<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.

Reply via email to