Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fcntl.h>
- #include <sys/mman.h>
- #include <unistd.h>
- #include <cstdio>
- #include <iostream>
- #include "Zedboard.h"
- Zedboard::Zedboard() {
- // Length of memory-mapped IO window
- const unsigned gpio_size = 0xff;
- // Physical base address of GPIO
- const unsigned gpio_address = 0x400d0000;
- fd = open("/dev/mem", O_RDWR);
- ptr = (char *)mmap(NULL, gpio_size,
- PROT_READ | PROT_WRITE, MAP_SHARED, fd,gpio_address);
- if (ptr == MAP_FAILED) {
- perror("Mapping I/O memory failed - Did you run with 'sudo'?\n");
- }
- }
- Zedboard::~Zedboard() {
- // Length of memory-mapped IO window
- const unsigned gpio_size = 0xff;
- munmap(ptr, gpio_size);
- close(fd);
- }
- void Zedboard::RegisterWrite(int offset, int value){
- *(int *)(ptr + offset) = value;
- }
- int Zedboard::RegisterRead(int offset){
- return *(int *)(ptr + offset);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement