ThomasBarth / ESP32-CAN-Driver

CAN driver project for the Espressif ESP32
284 stars 78 forks source link

DPORT issue: 'CLEAR_PERI_REG_MASK' and 'SET_PERI_REG_MASK' error #6

Closed Beck-Sisyphus closed 7 years ago

Beck-Sisyphus commented 7 years ago

OS: MacOS; toolchain: ESP-IDF; Commit: lastest from github. component.mk: empty Makefile: PROJECT_NAME := CAN_demo include $(IDF_PATH)/make/project.mk

In file included from /Users/Beck/Developer/esp/esp-idf/components/soc/esp32/include/soc/soc.h:20:0, from /Users/Beck/Developer/esp/esp-idf/components/esp32/include/rom/ets_sys.h:21, from /Users/Beck/Developer/esp/esp-idf/components/freertos/include/freertos/FreeRTOSConfig.h:108, from /Users/Beck/Developer/esp/esp-idf/components/freertos/include/freertos/FreeRTOS.h:99, from /Users/Beck/Developer/esp/can_bus_components/components/can/include/CAN_config.h:32, from /Users/Beck/Developer/esp/can_bus_components/components/can/include/CAN.h:33, from /Users/Beck/Developer/esp/can_bus_components/components/can/./CAN.c:30: /Users/Beck/Developer/esp/can_bus_components/components/can/./CAN.c: In function 'CAN_init': /Users/Beck/Developer/esp/esp-idf/components/esp32/include/esp_assert.h:23:13: error: static assertion failed: "(Cannot use SET_PERI_REG_MASK for DPORT registers use DPORT_SET_PERI_REG_MASK)" _Static_assert(builtin_choose_expr(builtin_constant_p(CONDITION), (CONDITION), 1), #MSG); \ ^ /Users/Beck/Developer/esp/esp-idf/components/soc/esp32/include/soc/soc.h:138:38: note: in expansion of macro 'TRY_STATIC_ASSERT'

define ASSERT_IF_DPORT_REG(_r, OP) TRY_STATIC_ASSERT(!IS_DPORT_REG(r), (Cannot use OP for DPORT registers use DPORT##OP));

                                  ^

/Users/Beck/Developer/esp/esp-idf/components/soc/esp32/include/soc/soc.h:229:13: note: in expansion of macro 'ASSERT_IF_DPORT_REG' ASSERT_IF_DPORT_REG((reg), SET_PERI_REG_MASK); \ ^ /Users/Beck/Developer/esp/can_bus_components/components/can/./CAN.c:182:5: note: in expansion of macro 'SET_PERI_REG_MASK' SET_PERI_REG_MASK(DPORT_PERIP_CLK_EN_REG, DPORT_CAN_CLK_EN); ^ /Users/Beck/Developer/esp/esp-idf/components/esp32/include/esp_assert.h:23:13: error: static assertion failed: "(Cannot use WRITE_PERI_REG for DPORT registers use DPORT_WRITE_PERI_REG)" _Static_assert(builtin_choose_expr(builtin_constant_p(CONDITION), (CONDITION), 1), #MSG); \ ^ /Users/Beck/Developer/esp/esp-idf/components/soc/esp32/include/soc/soc.h:138:38: note: in expansion of macro 'TRY_STATIC_ASSERT'

define ASSERT_IF_DPORT_REG(_r, OP) TRY_STATIC_ASSERT(!IS_DPORT_REG(r), (Cannot use OP for DPORT registers use DPORT##OP));

                                  ^

/Users/Beck/Developer/esp/esp-idf/components/soc/esp32/include/soc/soc.h:217:13: note: in expansion of macro 'ASSERT_IF_DPORT_REG' ASSERT_IF_DPORT_REG((addr), WRITE_PERI_REG); \ ^ /Users/Beck/Developer/esp/esp-idf/components/soc/esp32/include/soc/soc.h:230:13: note: in expansion of macro 'WRITE_PERI_REG' WRITE_PERI_REG((reg), (READ_PERI_REG(reg)|(mask))); \ ^ /Users/Beck/Developer/esp/can_bus_components/components/can/./CAN.c:182:5: note: in expansion of macro 'SET_PERI_REG_MASK' SET_PERI_REG_MASK(DPORT_PERIP_CLK_EN_REG, DPORT_CAN_CLK_EN); ^ In file included from /Users/Beck/Developer/esp/esp-idf/components/esp32/include/rom/ets_sys.h:21:0, from /Users/Beck/Developer/esp/esp-idf/components/freertos/include/freertos/FreeRTOSConfig.h:108, from /Users/Beck/Developer/esp/esp-idf/components/freertos/include/freertos/FreeRTOS.h:99, from /Users/Beck/Developer/esp/can_bus_components/components/can/include/CAN_config.h:32, from /Users/Beck/Developer/esp/can_bus_components/components/can/include/CAN.h:33, from /Users/Beck/Developer/esp/can_bus_components/components/can/./CAN.c:30: /Users/Beck/Developer/esp/esp-idf/components/esp32/include/esp_assert.h:23:13: error: static assertion failed: "(Cannot use READ_PERI_REG for DPORT registers use DPORT_READ_PERI_REG)" _Static_assert(builtin_choose_expr(builtin_constant_p(CONDITION), (CONDITION), 1), #MSG); \ ^ /Users/Beck/Developer/esp/esp-idf/components/soc/esp32/include/soc/soc.h:218:76: note: in definition of macro 'WRITE_PERI_REG' (((volatile uint32_t )ETS_UNCACHED_ADDR(addr))) = (uint32_t)(val); \ ^ /Users/Beck/Developer/esp/esp-idf/components/soc/esp32/include/soc/soc.h:138:38: note: in expansion of macro 'TRY_STATIC_ASSERT'

define ASSERT_IF_DPORT_REG(_r, OP) TRY_STATIC_ASSERT(!IS_DPORT_REG(r), (Cannot use OP for DPORT registers use DPORT##OP));

                                  ^

/Users/Beck/Developer/esp/esp-idf/components/soc/esp32/include/soc/soc.h:211:13: note: in expansion of macro 'ASSERT_IF_DPORT_REG' ASSERT_IF_DPORT_REG((addr), READ_PERI_REG); \ ^ /Users/Beck/Developer/esp/esp-idf/components/soc/esp32/include/soc/soc.h:230:36: note: in expansion of macro 'READ_PERI_REG' WRITE_PERI_REG((reg), (READ_PERI_REG(reg)|(mask))); \ ^ /Users/Beck/Developer/esp/can_bus_components/components/can/./CAN.c:182:5: note: in expansion of macro 'SET_PERI_REG_MASK' SET_PERI_REG_MASK(DPORT_PERIP_CLK_EN_REG, DPORT_CAN_CLK_EN); ^ In file included from /Users/Beck/Developer/esp/esp-idf/components/soc/esp32/include/soc/soc.h:20:0, from /Users/Beck/Developer/esp/esp-idf/components/esp32/include/rom/ets_sys.h:21, from /Users/Beck/Developer/esp/esp-idf/components/freertos/include/freertos/FreeRTOSConfig.h:108, from /Users/Beck/Developer/esp/esp-idf/components/freertos/include/freertos/FreeRTOS.h:99, from /Users/Beck/Developer/esp/can_bus_components/components/can/include/CAN_config.h:32, from /Users/Beck/Developer/esp/can_bus_components/components/can/include/CAN.h:33, from /Users/Beck/Developer/esp/can_bus_components/components/can/./CAN.c:30: /Users/Beck/Developer/esp/esp-idf/components/esp32/include/esp_assert.h:23:13: error: static assertion failed: "(Cannot use CLEAR_PERI_REG_MASK for DPORT registers use DPORT_CLEAR_PERI_REG_MASK)" _Static_assert(builtin_choose_expr(builtin_constant_p(CONDITION), (CONDITION), 1), #MSG); \ ^ /Users/Beck/Developer/esp/esp-idf/components/soc/esp32/include/soc/soc.h:138:38: note: in expansion of macro 'TRY_STATIC_ASSERT'

define ASSERT_IF_DPORT_REG(_r, OP) TRY_STATIC_ASSERT(!IS_DPORT_REG(r), (Cannot use OP for DPORT registers use DPORT##OP));

                                  ^

/Users/Beck/Developer/esp/esp-idf/components/soc/esp32/include/soc/soc.h:223:13: note: in expansion of macro 'ASSERT_IF_DPORT_REG' ASSERT_IF_DPORT_REG((reg), CLEAR_PERI_REG_MASK); \ ^ /Users/Beck/Developer/esp/can_bus_components/components/can/./CAN.c:183:5: note: in expansion of macro 'CLEAR_PERI_REG_MASK' CLEAR_PERI_REG_MASK(DPORT_PERIP_RST_EN_REG, DPORT_CAN_RST); ^ /Users/Beck/Developer/esp/esp-idf/components/esp32/include/esp_assert.h:23:13: error: static assertion failed: "(Cannot use WRITE_PERI_REG for DPORT registers use DPORT_WRITE_PERI_REG)" _Static_assert(builtin_choose_expr(builtin_constant_p(CONDITION), (CONDITION), 1), #MSG); \ ^ /Users/Beck/Developer/esp/esp-idf/components/soc/esp32/include/soc/soc.h:138:38: note: in expansion of macro 'TRY_STATIC_ASSERT'

define ASSERT_IF_DPORT_REG(_r, OP) TRY_STATIC_ASSERT(!IS_DPORT_REG(r), (Cannot use OP for DPORT registers use DPORT##OP));

                                  ^

/Users/Beck/Developer/esp/esp-idf/components/soc/esp32/include/soc/soc.h:217:13: note: in expansion of macro 'ASSERT_IF_DPORT_REG' ASSERT_IF_DPORT_REG((addr), WRITE_PERI_REG); \ ^ /Users/Beck/Developer/esp/esp-idf/components/soc/esp32/include/soc/soc.h:224:13: note: in expansion of macro 'WRITE_PERI_REG' WRITE_PERI_REG((reg), (READ_PERI_REG(reg)&(~(mask)))); \ ^ /Users/Beck/Developer/esp/can_bus_components/components/can/./CAN.c:183:5: note: in expansion of macro 'CLEAR_PERI_REG_MASK' CLEAR_PERI_REG_MASK(DPORT_PERIP_RST_EN_REG, DPORT_CAN_RST); ^ In file included from /Users/Beck/Developer/esp/esp-idf/components/esp32/include/rom/ets_sys.h:21:0, from /Users/Beck/Developer/esp/esp-idf/components/freertos/include/freertos/FreeRTOSConfig.h:108, from /Users/Beck/Developer/esp/esp-idf/components/freertos/include/freertos/FreeRTOS.h:99, from /Users/Beck/Developer/esp/can_bus_components/components/can/include/CAN_config.h:32, from /Users/Beck/Developer/esp/can_bus_components/components/can/include/CAN.h:33, from /Users/Beck/Developer/esp/can_bus_components/components/can/./CAN.c:30: /Users/Beck/Developer/esp/esp-idf/components/esp32/include/esp_assert.h:23:13: error: static assertion failed: "(Cannot use READ_PERI_REG for DPORT registers use DPORT_READ_PERI_REG)" _Static_assert(builtin_choose_expr(builtin_constant_p(CONDITION), (CONDITION), 1), #MSG); \ ^ /Users/Beck/Developer/esp/esp-idf/components/soc/esp32/include/soc/soc.h:218:76: note: in definition of macro 'WRITE_PERI_REG' (((volatile uint32_t )ETS_UNCACHED_ADDR(addr))) = (uint32_t)(val); \ ^ /Users/Beck/Developer/esp/esp-idf/components/soc/esp32/include/soc/soc.h:138:38: note: in expansion of macro 'TRY_STATIC_ASSERT'

define ASSERT_IF_DPORT_REG(_r, OP) TRY_STATIC_ASSERT(!IS_DPORT_REG(r), (Cannot use OP for DPORT registers use DPORT##OP));

                                  ^

/Users/Beck/Developer/esp/esp-idf/components/soc/esp32/include/soc/soc.h:211:13: note: in expansion of macro 'ASSERT_IF_DPORT_REG' ASSERT_IF_DPORT_REG((addr), READ_PERI_REG); \ ^ /Users/Beck/Developer/esp/esp-idf/components/soc/esp32/include/soc/soc.h:224:36: note: in expansion of macro 'READ_PERI_REG' WRITE_PERI_REG((reg), (READ_PERI_REG(reg)&(~(mask)))); \ ^ /Users/Beck/Developer/esp/can_bus_components/components/can/./CAN.c:183:5: note: in expansion of macro 'CLEAR_PERI_REG_MASK' CLEAR_PERI_REG_MASK(DPORT_PERIP_RST_EN_REG, DPORT_CAN_RST);