Kannannatesh 0 Posted July 25, 2019 Share Posted July 25, 2019 Dear Friends, Now i am working with CC3220SF evaluation kit, i wan't to add watch dog code to my base code,i was trying to create a code for CC3220SF in past 15 days but i get errors so i am trying in multiple examples likehttps://forum.43oh.com/topic/9346-cc3200-watchdog/https://forum.43oh.com/topic/11170-watchdog-in-cc3200/these examples does not work for my CC3220SF because these examples are support only CC3200 boards, i don't know how to create watchdog header's for CC3220SF, can you please help me to find the correct example for CC3220SF. Quote Link to post Share on other sites
enl 227 Posted July 25, 2019 Share Posted July 25, 2019 SInce no other responses have come along, I will get the ball rolling by asking for a bit more detail. What errors are you getting? What are you trying to do with the watchdog? As far as I know (not using the CC32XX series), Energia supports the 3220 launchpad board. See https://forum.43oh.com/topic/13311-connecting-cc3220sf-to-cayenne-mqtt-using-energia/ (Rei Vilo's msg: 6th in the thread) Quote Link to post Share on other sites
Kannannatesh 0 Posted July 26, 2019 Author Share Posted July 26, 2019 Dear friend, thanks for your reply, i just use the watch dog for reset my CC3220SF when that is struck or not working well, this is code what i am trying to compile //#include <stdlib.h> #include "inc/hw_types.h" #include "inc/hw_wdt.h" #include "driverlib/wdt.h" #include "driverlib/utils.h" #include "driverlib/prcm.h" #include "driverlib/interrupt.h" #include "inc/hw_ints.h" #include <ti/drivers/watchdog/WatchdogCC32XX.h> #include <ti/devices/cc32xx/inc/hw_types.h> #include <ti/devices/cc32xx/driverlib/rom.h> #include <ti/devices/cc32xx/driverlib/rom_map.h> #include <ti/devices/cc32xx/driverlib/wdt.h> volatile unsigned long g_ulWatchdogCycles = 0; typedef void (*fAPPWDTDevCallbk)(); #define WD_PERIOD_MS 1000 #define SYS_CLK 80000000 #define MILLISECONDS_TO_TICKS(ms) ((SYS_CLK/1000) * (ms)) void WDT_IF_Init(fAPPWDTDevCallbk fpAppWDTCB, unsigned int uiReloadVal); void setup() { boolean bRetcode; Serial.begin(115200); Serial.println("**************************************************"); Serial.println("* CC3200 Watchdog Test *"); Serial.println("**************************************************"); // // Set up the watchdog interrupt handler. // WDT_IF_Init(WatchdogIntHandler, MILLISECONDS_TO_TICKS(WD_PERIOD_MS)); bRetcode = MAP_WatchdogRunning(WDT_BASE); if (!bRetcode) { Serial.println("Watchdog failed to run. Shutting down"); WDT_IF_DeInit(); while (1); } } void loop() { Serial.print("Watchdog interrupt count: "); Serial.println(g_ulWatchdogCycles); delay(1000); } void WatchdogIntHandler(void) { // // After 10 interrupts, switch On LED6 to indicate system reset // and don't clear watchdog interrupt which causes system reset // if (g_ulWatchdogCycles >= 10) { MAP_UtilsDelay(800000); return; } // // Clear the watchdog interrupt. // MAP_WatchdogIntClear(WDT_BASE); // // Increment our interrupt counter. // g_ulWatchdogCycles++; } void WDT_IF_Init(fAPPWDTDevCallbk fpAppWDTCB, unsigned int uiReloadVal) { // // Enable the peripherals used by this example. // MAP_PRCMPeripheralClkEnable(PRCM_WDT, PRCM_RUN_MODE_CLK); // // Unlock to be able to configure the registers // MAP_WatchdogUnlock(WDT_BASE); if (fpAppWDTCB != NULL) { MAP_IntPrioritySet(INT_WDT, INT_PRIORITY_LVL_1); MAP_WatchdogIntRegister(WDT_BASE, fpAppWDTCB); } // // Set the watchdog timer reload value // MAP_WatchdogReloadSet(WDT_BASE, uiReloadVal); // // Start the timer. Once the timer is started, it cannot be disable. // MAP_WatchdogEnable(WDT_BASE); } void WDT_IF_DeInit() { // // Unlock to be able to configure the registers // MAP_WatchdogUnlock(WDT_BASE); // // Disable stalling of the watchdog timer during debug events // MAP_WatchdogStallDisable(WDT_BASE); // // Clear the interrupt // MAP_WatchdogIntClear(WDT_BASE); // // Unregister the interrupt // MAP_WatchdogIntUnregister(WDT_BASE); } if i choose board cc3200 this code compiled with out error but if i choose cc3220SF i get these errors, C:\Users\user46\Documents\Energia\CC3220_Watch_Dog\CC3220_Watch_Dog.ino: In function 'void setup3()': CC3220_Watch_Dog:36: error: 'WDT_BASE' was not declared in this scope bRetcode = MAP_WatchdogRunning(WDT_BASE); ^~~~~~~~ C:\Users\user46\Documents\Energia\CC3220_Watch_Dog\CC3220_Watch_Dog.ino: In function 'void WatchdogIntHandler()': CC3220_Watch_Dog:66: error: 'WDT_BASE' was not declared in this scope MAP_WatchdogIntClear(WDT_BASE); ^~~~~~~~ C:\Users\user46\Documents\Energia\CC3220_Watch_Dog\CC3220_Watch_Dog.ino: In function 'void WDT_IF_Init(fAPPWDTDevCallbk, unsigned int)': CC3220_Watch_Dog:85: error: 'WDT_BASE' was not declared in this scope MAP_WatchdogUnlock(WDT_BASE); ^~~~~~~~ C:\Users\user46\Documents\Energia\CC3220_Watch_Dog\CC3220_Watch_Dog.ino: In function 'void WDT_IF_DeInit()': CC3220_Watch_Dog:110: error: 'WDT_BASE' was not declared in this scope MAP_WatchdogUnlock(WDT_BASE); ^~~~~~~~ exit status 1 'WDT_BASE' was not declared in this scope Quote Link to post Share on other sites
Kannannatesh 0 Posted August 29, 2019 Author Share Posted August 29, 2019 Dear friends, this is my new code and also i get some error, anybody can help me to find the solution for this , #include <stdlib.h> #include "inc/hw_types.h" #include "inc/hw_wdt.h" #include "driverlib/wdt.h" #include "driverlib/utils.h" #include "driverlib/prcm.h" #include "driverlib/interrupt.h" #include "inc/hw_ints.h" #include <ti/devices/cc32xx/driverlib/wdt.h> #include <ti/drivers/watchdog/WatchdogCC32XX.h> #include <ti/drivers/Watchdog.h> unsigned long count; //uint_least8_t WDT_BASE; void setup() { Serial.begin(115200); Serial.println("* CC3220 Watchdog Test *"); Watchdog_Handle handle; Watchdog_Params params; uint32_t tickValue; Watchdog_init(); Watchdog_Params_init(¶ms); params.resetMode = Watchdog_RESET_ON; params.callbackFxn = watchdogCallback; //handle = Watchdog_open(Watchdog_configIndex, ¶ms); handle = Watchdog_open(Board_WATCHDOG, ¶ms); if (handle == NULL) { Serial.println("* Error opening watchdog *"); } // Set timeout period to 100 ms tickValue = Watchdog_convertMsToTicks(handle, 100); Watchdog_setReload(handle, tickValue); } void loop() { Serial.print("Watchdog interrupt count: "); Serial.println(count); delay(1000); } void watchdogCallback(UArg handle) { //Watchdog_clear(handle); Serial.print("Watchdog: "); Serial.println(count); } Errorsss C:\Users\CAS80\AppData\Local\Energia15\packages\energia\hardware\cc3220emt\5.6.2\system/source\ti/drivers/lib/drivers_cc32xx.am4g(Watchdog.om4g): In function `Watchdog_init': /db/vtree/library/trees/mcpi/mcpi-3.30.00.13/exports/coresdk_cc32xx_3_30_00_13/source/ti/drivers/Watchdog.c:100: undefined reference to `Watchdog_count' /db/vtree/library/trees/mcpi/mcpi-3.30.00.13/exports/coresdk_cc32xx_3_30_00_13/source/ti/drivers/Watchdog.c:100: undefined reference to `Watchdog_config' C:\Users\CAS80\AppData\Local\Energia15\packages\energia\hardware\cc3220emt\5.6.2\system/source\ti/drivers/lib/drivers_cc32xx.am4g(Watchdog.om4g): In function `Watchdog_open': /db/vtree/library/trees/mcpi/mcpi-3.30.00.13/exports/coresdk_cc32xx_3_30_00_13/source/ti/drivers/Watchdog.c:122: undefined reference to `Watchdog_count' /db/vtree/library/trees/mcpi/mcpi-3.30.00.13/exports/coresdk_cc32xx_3_30_00_13/source/ti/drivers/Watchdog.c:122: undefined reference to `Watchdog_config' collect2.exe: error: ld returned 1 exit status exit status 1 Error compiling for board CC3220SF-LAUNCHXL (80MHz). thanks in advance Quote Link to post Share on other sites
prabuselva 0 Posted September 10, 2019 Share Posted September 10, 2019 Dear kannan, try this code it's working fine with cc3220sf, this code reset your device when Cycles increase greater than 10, #include <stdio.h> #include <stdint.h> #include <inc/hw_types.h> #include <inc/hw_ints.h> #include <inc/hw_memmap.h> #include <driverlib/prcm.h> #include <driverlib/wdt.h> #include <driverlib/rom.h> #include <driverlib/rom_map.h> #include <driverlib/interrupt.h> volatile unsigned long Cycles; #define WD_PERIOD_MS 1000 #define MAP_SysCtlClockGet 80000000 #define MILLISECONDS_TO_TICKS(ms) ((MAP_SysCtlClockGet / 1000) * (ms)) void setup() { Serial.begin(115200); Serial.println("Watchdog Test"); MAP_PRCMPeripheralClkEnable(PRCM_WDT, PRCM_RUN_MODE_CLK); MAP_WatchdogUnlock(WDT_BASE); MAP_IntPrioritySet(INT_WDT, INT_PRIORITY_LVL_1); MAP_WatchdogIntRegister(WDT_BASE,&WatchdogIntHandler); MAP_WatchdogReloadSet(WDT_BASE,MILLISECONDS_TO_TICKS(WD_PERIOD_MS)); MAP_WatchdogEnable(WDT_BASE); } void loop() { Serial.println("Watchdog Reset test"); delay(2000); } void WatchdogIntHandler(void) { Serial.println("Watch rest"); Serial.println(Cycles); if(Cycles>=10) { Serial.println("Reseting.........."); return; } MAP_WatchdogIntClear(WDT_BASE); Cycles++; } Quote Link to post Share on other sites
Kannannatesh 0 Posted September 10, 2019 Author Share Posted September 10, 2019 Dear @prabuselva thanks for your support it's working fine Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.