ayufan-pine64 / dht22-pine64

Simple application to read DHT22 value on Pine A64
1 stars 3 forks source link

DHT22 on rockpro64 with armbian buster #3

Open 10RUPTiV opened 4 years ago

10RUPTiV commented 4 years ago

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]
 }
 ^
10RUPTiV commented 4 years ago

Just upgrade to Kernel 5.3.11 and having "Not enough bits:" error when trying!