From 365bddd9199e14f49b21155b6ab7b4abc58e8961 Mon Sep 17 00:00:00 2001 From: suda-morris <362953310@qq.com> Date: Thu, 6 Jun 2019 10:57:29 +0800 Subject: [PATCH] build and link hello-world for esp32s2beta * Original commit: espressif/esp-idf@84b2f9f14d16533c84db2210f13a24cd817e0b0a --- components/freemodbus/port/porttimer.c | 10 +++++++++- components/freemodbus/port/porttimer_m.c | 13 +++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/components/freemodbus/port/porttimer.c b/components/freemodbus/port/porttimer.c index 2859aa0..dc6216a 100644 --- a/components/freemodbus/port/porttimer.c +++ b/components/freemodbus/port/porttimer.c @@ -45,10 +45,10 @@ #include "port.h" /* ----------------------- Modbus includes ----------------------------------*/ +#include "sdkconfig.h" #include "mb.h" #include "mbport.h" #include "driver/timer.h" -#include "sdkconfig.h" #include "port_serial_slave.h" #ifdef CONFIG_FMB_TIMER_PORT_ENABLED @@ -71,9 +71,17 @@ static void IRAM_ATTR vTimerGroupIsr(void *param) { // Retrieve the interrupt status and the counter value // from the timer that reported the interrupt +#if CONFIG_IDF_TARGET_ESP32 uint32_t intr_status = MB_TG[usTimerGroupIndex]->int_st_timers.val; +#elif CONFIG_IDF_TARGET_ESP32S2BETA + uint32_t intr_status = MB_TG[usTimerGroupIndex]->int_st.val; +#endif if (intr_status & BIT(usTimerIndex)) { +#if CONFIG_IDF_TARGET_ESP32 MB_TG[usTimerGroupIndex]->int_clr_timers.val |= BIT(usTimerIndex); +#elif CONFIG_IDF_TARGET_ESP32S2BETA + MB_TG[usTimerGroupIndex]->int_clr.val |= BIT(usTimerIndex); +#endif (void)pxMBPortCBTimerExpired(); // Timer callback function MB_TG[usTimerGroupIndex]->hw_timer[usTimerIndex].config.alarm_en = TIMER_ALARM_EN; } diff --git a/components/freemodbus/port/porttimer_m.c b/components/freemodbus/port/porttimer_m.c index c2b5b42..0f26894 100644 --- a/components/freemodbus/port/porttimer_m.c +++ b/components/freemodbus/port/porttimer_m.c @@ -40,6 +40,7 @@ #include "mb_m.h" #include "mbport.h" #include "port_serial_master.h" +#include "sdkconfig.h" #define MB_US50_FREQ (20000) // 20kHz 1/20000 = 50mks #define MB_TICK_TIME_US (50) // 50uS = one tick for timer @@ -69,10 +70,22 @@ static void IRAM_ATTR vTimerGroupIsr(void *param) { // Retrieve the interrupt status and the counter value // from the timer that reported the interrupt +#if CONFIG_IDF_TARGET_ESP32 uint32_t intr_status = MB_TG[usTimerGroupIndex]->int_st_timers.val; +#elif CONFIG_IDF_TARGET_ESP32S2BETA + uint32_t intr_status = MB_TG[usTimerGroupIndex]->int_st.val; +#endif if (intr_status & BIT(usTimerIndex)) { +#if CONFIG_IDF_TARGET_ESP32 MB_TG[usTimerGroupIndex]->int_clr_timers.val |= BIT(usTimerIndex); +#elif CONFIG_IDF_TARGET_ESP32S2BETA + MB_TG[usTimerGroupIndex]->int_clr.val |= BIT(usTimerIndex); +#endif +#if CONFIG_IDF_TARGET_ESP32 MB_TG[usTimerGroupIndex]->hw_timer[usTimerIndex].update = 1; +#elif CONFIG_IDF_TARGET_ESP32S2BETA + MB_TG[usTimerGroupIndex]->hw_timer[usTimerIndex].update.update = 1; +#endif (void)pxMBMasterPortCBTimerExpired(); // Timer expired callback function // Enable alarm MB_TG[usTimerGroupIndex]->hw_timer[usTimerIndex].config.alarm_en = TIMER_ALARM_EN;