02-04-2019, 05:23 AM
I'm trying to run the example.cpp that comes with Pine64-CPP from https://github.com/databit/Pine64-CPP
I am throwing segmentation faults when I run.
Initializationsucceeds:
The man-setup() call initialzes the board. I traced the success path to the following if statement in the setup() function in gpio.cpp
if((uint64_t)gpio_mem % PAGE_SIZE)
And I also traced the successful "this->gpioMap =" statement to the one that uses SUNXI_GPIO_BASE
In the example code, I initialize the pin with
man->pinMode (PI_GPIO_24, OUTPUT);
The pinMode function in gpio.cpp, launches _setPullupdn with gpio=78 and pud = 1. As expected
Inside _setPullupdn, the following is set
bank= 2
index = 0
offset = 28
The segmentation fault seems to come from this line in gpio.c
regval = *(&pio->PULL[0] + index);
I have a 4 GB Rock64 running armbian bionic desktop from https://www.armbian.com/rock64/
sudo cat /sys/kernel/debug/gpio gives me
GPIOs 0-31, platform/pinctrl, gpio0:
gpio-0 ( |vcc_host_5v ) out hi
gpio-2 ( |? ) out lo
gpio-30 ( |vcc_sd ) out lo
GPIOs 32-63, platform/pinctrl, gpio1:
gpio-50 ( |mdio-reset ) out hi
GPIOs 64-95, platform/pinctrl, gpio2:
GPIOs 96-127, platform/pinctrl, gpio3:
GPIOs 510-511, platform/rk8xx-gpio, rk8xx-gpio, can sleep:
gpio-510 ( |? ) out lo
gpio-511 ( |? ) out lo
Anyone have any thoughts?
Thanks.
I am throwing segmentation faults when I run.
Initializationsucceeds:
The man-setup() call initialzes the board. I traced the success path to the following if statement in the setup() function in gpio.cpp
if((uint64_t)gpio_mem % PAGE_SIZE)
And I also traced the successful "this->gpioMap =" statement to the one that uses SUNXI_GPIO_BASE
In the example code, I initialize the pin with
man->pinMode (PI_GPIO_24, OUTPUT);
The pinMode function in gpio.cpp, launches _setPullupdn with gpio=78 and pud = 1. As expected
Inside _setPullupdn, the following is set
bank= 2
index = 0
offset = 28
The segmentation fault seems to come from this line in gpio.c
regval = *(&pio->PULL[0] + index);
I have a 4 GB Rock64 running armbian bionic desktop from https://www.armbian.com/rock64/
sudo cat /sys/kernel/debug/gpio gives me
GPIOs 0-31, platform/pinctrl, gpio0:
gpio-0 ( |vcc_host_5v ) out hi
gpio-2 ( |? ) out lo
gpio-30 ( |vcc_sd ) out lo
GPIOs 32-63, platform/pinctrl, gpio1:
gpio-50 ( |mdio-reset ) out hi
GPIOs 64-95, platform/pinctrl, gpio2:
GPIOs 96-127, platform/pinctrl, gpio3:
GPIOs 510-511, platform/rk8xx-gpio, rk8xx-gpio, can sleep:
gpio-510 ( |? ) out lo
gpio-511 ( |? ) out lo
Anyone have any thoughts?
Thanks.