#include <sys/file.h>
#include <sys/mman.h>
#include <iostream>
#define UINT unsigned long int
#define GPIO(x) *(volatile UINT *)(StartAdd + x)
#define GPIO_BASE 0x40E00000
#define MAP_SIZE 4096
#define MyGPLR3 0x00000100
...
int DeviceMem;
DeviceMem = open ("/dev/mem", O_RDWR|O_SYNC);
char *StartAdd;
StartAdd = (char *)mmap(0, MAP_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED , DeviceMem, GPIO_BASE);
GPIO(MyGPDR1)|= ((1<<0));
GPIO(MyGPSR1) = ((1<<0));
UINT GPIO_GPLR3 = GPIO(MyGPLR3);
munmap(StartAdd, MAP_SIZE);
::close(DeviceMem);
GPIO N | По схеме | Dir | Alt | Function |
GPIO 0 | SDоткл. | In | 0 | |
GPIO 9 | - | In | 0 | |
GPIO 11 | PWM2/PWR_EN | In | 2 | SSPRXD2 - а по схеме должно быть OUT2 |
GPIO 12 | PWM3 | In | 0 | |
GPIO 13 | - | Out | 1 | SSPTXD2 |
GPIO 14 | PS2_SCL1 | Out | 2 | SSPSFRM2 |
GPIO 15 | EXT_CS0 | In | 0 | |
GPIO 16 | PWM0 | Out | 2 | PWM0 |
GPIO 17 | PWM1 | In | 0 | |
GPIO 18 | RDY | In | 1 | RDY |
GPIO 19 | PS2_SDA1 | Out | 1 | SSPSCLK2 |
GPIO 20 | PS2_SCL2 | In | 0 | |
GPIO 21 | - | In | 0 | |
GPIO 22 | - | In | 0 | |
GPIO 35 | EXT_IO0 | In | 0 | |
GPIO 36 | EXT_IO2 | In | 0 | |
GPIO 37 | EXT_IO1 | In | 0 | |
GPIO 52 | - | In | 0 | |
GPIO 79 | EXT_CS1 | Out | 2 | nCS3 |
GPIO 80 | EXT_CS2 | In | 0 | |
GPIO 47 | STD_TXD | Out | 1 | STD_TXD |
GPIO 46 | STD_RXD | In | 2 | STD_RXD |