Hi,
We are trying to use it but having segmentation fault each time and we are having a bunch of warning while me "make" it!
g++ -fpermissive -Wno-write-strings -o dht22 .c
c_gpio.c: In function ‘int setup()’:
c_gpio.c:129:23: warning: cast from ‘volatile uint32_t’ {aka ‘volatile unsigned int*’} to ‘uint32_t’ {aka ‘unsigned int’} loses precision [-fpermissive]
if ((uint32_t)gpio_map < 0) {
^~~~~~~~
c_gpio.c:176:27: warning: invalid conversion from ‘void*’ to ‘uint8_t*’ {aka ‘unsigned char*’} [-fpermissive]
if ((gpio_mem = malloc(BLOCK_SIZE + (PAGE_SIZE-1))) == NULL)
~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
c_gpio.c:179:19: warning: cast from ‘uint8_t*’ {aka ‘unsigned char*’} to ‘uint32_t’ {aka ‘unsigned int’} loses precision [-fpermissive]
if ((uint32_t)gpio_mem % PAGE_SIZE)
^~~~~~~~
c_gpio.c:180:44: warning: cast from ‘uint8_t*’ {aka ‘unsigned char*’} to ‘uint32_t’ {aka ‘unsigned int’} loses precision [-fpermissive]
gpio_mem += PAGE_SIZE - ((uint32_t)gpio_mem % PAGE_SIZE);
^~~~~~~~
c_gpio.c:189:19: warning: cast from ‘volatile uint32_t*’ {aka ‘volatile unsigned int*’} to ‘uint32_t’ {aka ‘unsigned int’} loses precision [-fpermissive]
if ((uint32_t)gpio_map < 0)
^~~~~~~~
c_gpio.c: In function ‘uint32_t sunxi_readl(volatile uint32_t*)’:
c_gpio.c:282:36: warning: cast from ‘volatile uint32_t*’ {aka ‘volatile unsigned int*’} to ‘uint32_t’ {aka ‘unsigned int’} loses precision [-fpermissive]
uint32_t mmap_base = (uint32_t)addr & (~MAP_MASK);
^~~~
c_gpio.c:283:37: warning: cast from ‘volatile uint32_t*’ {aka ‘volatile unsigned int*’} to ‘uint32_t’ {aka ‘unsigned int’} loses precision [-fpermissive]
uint32_t mmap_seek = ((uint32_t)addr - mmap_base) >> 2;
^~~~
c_gpio.c: In function ‘void sunxi_writel(volatile uint32_t*, uint32_t)’:
c_gpio.c:290:36: warning: cast from ‘volatile uint32_t*’ {aka ‘volatile unsigned int*’} to ‘uint32_t’ {aka ‘unsigned int’} loses precision [-fpermissive]
uint32_t mmap_base = (uint32_t)addr & (~MAP_MASK);
^~~~
c_gpio.c:291:37: warning: cast from ‘volatile uint32_t*’ {aka ‘volatile unsigned int*’} to ‘uint32_t’ {aka ‘unsigned int’} loses precision [-fpermissive]
uint32_t mmap_seek =( (uint32_t)addr - mmap_base) >> 2;
^~~~
c_gpio.c: In function ‘int eventdetected(int)’:
c_gpio.c:219:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
Hi,
We are trying to use it but having segmentation fault each time and we are having a bunch of warning while me "make" it!
g++ -fpermissive -Wno-write-strings -o dht22 .c
c_gpio.c: In function ‘int setup()’:
c_gpio.c:129:23: warning: cast from ‘volatile uint32_t’ {aka ‘volatile unsigned int*’} to ‘uint32_t’ {aka ‘unsigned int’} loses precision [-fpermissive]
if ((uint32_t)gpio_map < 0) {
^~~~~~~~
c_gpio.c:176:27: warning: invalid conversion from ‘void*’ to ‘uint8_t*’ {aka ‘unsigned char*’} [-fpermissive]
if ((gpio_mem = malloc(BLOCK_SIZE + (PAGE_SIZE-1))) == NULL)
~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
c_gpio.c:179:19: warning: cast from ‘uint8_t*’ {aka ‘unsigned char*’} to ‘uint32_t’ {aka ‘unsigned int’} loses precision [-fpermissive]
if ((uint32_t)gpio_mem % PAGE_SIZE)
^~~~~~~~
c_gpio.c:180:44: warning: cast from ‘uint8_t*’ {aka ‘unsigned char*’} to ‘uint32_t’ {aka ‘unsigned int’} loses precision [-fpermissive]
gpio_mem += PAGE_SIZE - ((uint32_t)gpio_mem % PAGE_SIZE);
^~~~~~~~
c_gpio.c:189:19: warning: cast from ‘volatile uint32_t*’ {aka ‘volatile unsigned int*’} to ‘uint32_t’ {aka ‘unsigned int’} loses precision [-fpermissive]
if ((uint32_t)gpio_map < 0)
^~~~~~~~
c_gpio.c: In function ‘uint32_t sunxi_readl(volatile uint32_t*)’:
c_gpio.c:282:36: warning: cast from ‘volatile uint32_t*’ {aka ‘volatile unsigned int*’} to ‘uint32_t’ {aka ‘unsigned int’} loses precision [-fpermissive]
uint32_t mmap_base = (uint32_t)addr & (~MAP_MASK);
^~~~
c_gpio.c:283:37: warning: cast from ‘volatile uint32_t*’ {aka ‘volatile unsigned int*’} to ‘uint32_t’ {aka ‘unsigned int’} loses precision [-fpermissive]
uint32_t mmap_seek = ((uint32_t)addr - mmap_base) >> 2;
^~~~
c_gpio.c: In function ‘void sunxi_writel(volatile uint32_t*, uint32_t)’:
c_gpio.c:290:36: warning: cast from ‘volatile uint32_t*’ {aka ‘volatile unsigned int*’} to ‘uint32_t’ {aka ‘unsigned int’} loses precision [-fpermissive]
uint32_t mmap_base = (uint32_t)addr & (~MAP_MASK);
^~~~
c_gpio.c:291:37: warning: cast from ‘volatile uint32_t*’ {aka ‘volatile unsigned int*’} to ‘uint32_t’ {aka ‘unsigned int’} loses precision [-fpermissive]
uint32_t mmap_seek =( (uint32_t)addr - mmap_base) >> 2;
^~~~
c_gpio.c: In function ‘int eventdetected(int)’:
c_gpio.c:219:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^