User Tools

Site Tools


snippets:watchdog

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
snippets:watchdog [2013/04/09 15:45] – created basnippets:watchdog [2017/11/07 22:26] (current) – external edit 127.0.0.1
Line 5: Line 5:
 Once enabled, the 32bit watchdog timer register gets decremented every clock cycle. Once enabled, the 32bit watchdog timer register gets decremented every clock cycle.
 If the Toggle Watchdog C-Node is executed, the watchdog timer register is reloaded with the value given by the Enable Watchdog C-Node.\\ If the Toggle Watchdog C-Node is executed, the watchdog timer register is reloaded with the value given by the Enable Watchdog C-Node.\\
-If the watchdog timer register reaches zero before it is toggled or stopped the processor is reseted and the flashed program is booted and executed from start.\\   +If the watchdog timer register reaches zero before it is toggled the processor is reseted and the flashed program is booted and executed from start.\\   
-{{:snippets:watchdog_init.png?direct |}}\\ +Typically the "enable watchdog" is executed at program start and "toggle watchdog" is executed in the application main loop once on every iteration.\\ 
-{{:snippets:watchdog_reset.png?direct |}}\\ + 
-{{:snippets:watchdog_stop.png?direct |}}\\+| 
 +{{:snippets:watchdog_init.png?direct|}}\\ drag and drop this [[VI snippet]] into a LabVIEW block diagram.\\ 
 +{{:snippets:watchdog_reset.png?direct|}}\\ drag and drop this [[VI snippet]] into a LabVIEW block diagram. \\ 
 + 
 +**notes:** 
 +  * This c-nodes work on any target, but only in compiled mode 
 +  * Once the watchdog is enabled, debugging gets complicated. For this reason add the watchdog only at the very end of a development cycle 
 +  * If you need to survey several parallel loops, insert the "watchdog_toggle" into one loop and survey the loop counters of the others 
 +  * A reset during a file function can corrupt a file system 
 +  * When inserting the in line C-nodes the following warnings are generated.\\ This warning can be ignored, because it is about a disabled part of the block diagram. {{:snippets:errorsnwarnings:inline_c_node_not_supported.png?direct|}}  
 + 
 +====== check if a reset was caused by the watchdog ====== 
 +The following snippet can be used to check if the last reset was caused by the watchdog.\\ 
 +{{:snippets:watchdog_check.png?|}}\\ drag and drop this [[VI snippet]] into a LabVIEW block diagram.\\ 
 + 
 +The bit 14 of the reset regiter is 1, when a watchdog reset occured. 
 + 
 +The bit is 0 when the reset was caused by other reasons. 
 + 
 +The bit is 0 when it has been read. Hence it can only be read once per reset. 
 + 
 + 
 + 
 +====== save last programm state ====== 
 +With this snippet you can write and read a memory space that is not initialized at boot time:\\ 
 +{{:snippets:non_resetted_memory.png?|}}\\ drag and drop this [[VI snippet]] into a LabVIEW block diagram.\\ 
 + 
 +The value read is undefined, when there was a power loss.  
 + 
 +When a watchdog event occured or a reset signal was applied the value ramains the same as bevore the reset. 
 + 
 +  
 + 
 +The memory space is written and read by the following functions: 
 + 
 + - Mass storage device 
 + - Format file system 
 + - Firmware update 
 + 
 +  
 + 
 +The usable memory space is 16bytes long. With U32 an I32 Values 4 values can be written at the following locations: 
 + 
 +  0xFF800000 
 +  0xFF800004 
 +  0xFF800008 
 +  0xFF80000C 
 + 
 + 
 + 
snippets/watchdog.1365515145.txt.gz · Last modified: 2017/11/07 22:26 (external edit)