Jeff R Posted February 3, 2019 Posted February 3, 2019 Armbianmonitor: http://ix.io/1zUo I'm trying to run the example.cpp that comes with Pine64-CPP but I am throwing segmentation faults. The man-setup() call initialzes the board with the following if statement in the setup() function in gpio.cpp if((uint64_t)gpio_mem % PAGE_SIZE) and the this->gpioMap = statement 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: regval = *(&pio->PULL[0] + index); I have a 4 GB Rock64 running the latest Armbian desktop from this site. 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.
Jeff R Posted February 7, 2019 Author Posted February 7, 2019 So, I never resolved the problems with the Pine64-CPP library but I found an alternate. First, I used bash scripts to make sure the Rock64 was working, and I had the right pin addresses. https://github.com/Leapo/Rock64-BashGPIO I used the table table from this website to correctly identify the gpio indices. https://github.com/Leapo/Rock64-R64.GPIO...GPIO-Modes I used the items from the column labeled GPIO# (ROCK) Lastly, I used the GPIO Class from the following. https://github.com/halherta/RaspberryPi-GPIOClass-v2 Even though it is was created for the Raspberry Pi, I found that it correctly manipulated the files in /sys/class/gpio on my Rock64. Note: I have only tested the GPIO read function, since that is what I'm trying to do for my project.
TonyMac32 Posted February 7, 2019 Posted February 7, 2019 I'm going to hazard a guess that https://forum.armbian.com/forum/34-hardware-hacks/ Might have the information you're looking for, there are 3 different "general-purpose" gpio libraries there, if the rock64 isn't in any of them, the documentation is relatively clear on how to add them.
Recommended Posts