init commit
303
Utilities/lpm/tiny_lpm/Release_Notes.html
Normal file
@@ -0,0 +1,303 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="generator" content="pandoc" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
|
||||
<title>Release Notes for STM32 TINY low power manager</title>
|
||||
<style>
|
||||
code{white-space: pre-wrap;}
|
||||
span.smallcaps{font-variant: small-caps;}
|
||||
span.underline{text-decoration: underline;}
|
||||
div.column{display: inline-block; vertical-align: top; width: 50%;}
|
||||
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
|
||||
ul.task-list{list-style: none;}
|
||||
.display.math{display: block; text-align: center; margin: 0.5rem auto;}
|
||||
</style>
|
||||
<link rel="stylesheet" href="_htmresc/mini-st.css" />
|
||||
<!--[if lt IE 9]>
|
||||
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
|
||||
<![endif]-->
|
||||
<link rel="icon" type="image/x-icon" href="_htmresc/favicon.png" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="row">
|
||||
<div class="col-sm-12 col-lg-4">
|
||||
<center>
|
||||
<h1 id="release-notes-for-stm32-tiny-low-power-manager">Release Notes for <mark>STM32 TINY low power manager</h1>
|
||||
<p>Copyright © 2019 STMicroelectronics<br />
|
||||
</p>
|
||||
<a href="https://www.st.com" class="logo"><img src="_htmresc/st_logo_2020.png" alt="ST logo" /></a>
|
||||
</center>
|
||||
<h1 id="purpose">Purpose</h1>
|
||||
<p>The code source delivered is an utility to help customer to build a low power application.</p>
|
||||
</div>
|
||||
<section id="update-history" class="col-sm-12 col-lg-8">
|
||||
<h1>Update History</h1>
|
||||
<div class="collapse">
|
||||
<input type="checkbox" id="collapse-section7" checked aria-hidden="true"> <label for="collapse-section7" aria-hidden="true">V1.4.2 / 27-October-2022</label>
|
||||
<div>
|
||||
<h2 id="main-changes">Main Changes</h2>
|
||||
<h2 id="contents">Contents</h2>
|
||||
<p><strong>Fixed bugs list</strong></p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr class="header">
|
||||
<th>Headline</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="odd">
|
||||
<td>Ticket 137597 - [CodeSpell] Mistake in lpm module</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h2 id="known-limitations">known limitations</h2>
|
||||
<h2 id="development-toolchains-and-compilers">Development Toolchains and Compilers</h2>
|
||||
<ul>
|
||||
<li>IAR Embedded Workbench for ARM (EWARM) toolchain V8.20.2</li>
|
||||
<li>RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.25</li>
|
||||
<li>System Workbench STM32 (SW4STM32) toolchain V2.7.2</li>
|
||||
</ul>
|
||||
<h2 id="supported-devices-and-boards">Supported Devices and boards</h2>
|
||||
<h2 id="backward-compatibility">backward compatibility</h2>
|
||||
<h2 id="dependencies">Dependencies</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div class="collapse">
|
||||
<input type="checkbox" id="collapse-section7" aria-hidden="true"> <label for="collapse-section7" aria-hidden="true">V1.4.1 / 17-June-2022</label>
|
||||
<div>
|
||||
<h2 id="main-changes-1">Main Changes</h2>
|
||||
<h2 id="contents-1">Contents</h2>
|
||||
<p><strong>Fixed bugs list</strong></p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr class="header">
|
||||
<th>Headline</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="odd">
|
||||
<td>Release note format update</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h2 id="known-limitations-1">known limitations</h2>
|
||||
<h2 id="development-toolchains-and-compilers-1">Development Toolchains and Compilers</h2>
|
||||
<ul>
|
||||
<li>IAR Embedded Workbench for ARM (EWARM) toolchain V8.20.2</li>
|
||||
<li>RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.25</li>
|
||||
<li>System Workbench STM32 (SW4STM32) toolchain V2.7.2</li>
|
||||
</ul>
|
||||
<h2 id="supported-devices-and-boards-1">Supported Devices and boards</h2>
|
||||
<h2 id="backward-compatibility-1">backward compatibility</h2>
|
||||
<h2 id="dependencies-1">Dependencies</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div class="collapse">
|
||||
<input type="checkbox" id="collapse-section6" aria-hidden="true"> <label for="collapse-section6" aria-hidden="true">V1.4.0 / 09-November-2021</label>
|
||||
<div>
|
||||
<h2 id="main-changes-2">Main Changes</h2>
|
||||
<h2 id="contents-2">Contents</h2>
|
||||
<p><strong>Fixed bugs list</strong></p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr class="header">
|
||||
<th>Headline</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="odd">
|
||||
<td>Ticket 115234 - [Licensing] Update the way to declare licenses in Cube and X-CUBE components</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h2 id="known-limitations-2">known limitations</h2>
|
||||
<h2 id="development-toolchains-and-compilers-2">Development Toolchains and Compilers</h2>
|
||||
<ul>
|
||||
<li>IAR Embedded Workbench for ARM (EWARM) toolchain V8.20.2</li>
|
||||
<li>RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.25</li>
|
||||
<li>System Workbench STM32 (SW4STM32) toolchain V2.7.2</li>
|
||||
</ul>
|
||||
<h2 id="supported-devices-and-boards-2">Supported Devices and boards</h2>
|
||||
<h2 id="backward-compatibility-2">backward compatibility</h2>
|
||||
<h2 id="dependencies-2">Dependencies</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div class="collapse">
|
||||
<input type="checkbox" id="collapse-section5" aria-hidden="true"> <label for="collapse-section5" aria-hidden="true">V1.3.1 / 10-September-2020</label>
|
||||
<div>
|
||||
<h2 id="main-changes-3">Main Changes</h2>
|
||||
<h3 id="release-v1.3.1">release V1.3.1</h3>
|
||||
<h2 id="contents-3">Contents</h2>
|
||||
<p><strong>Fixed bugs list</strong></p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr class="header">
|
||||
<th>Headline</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="odd">
|
||||
<td>Ticket 86948 - CodeSpell : Correct some English words typo</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h2 id="known-limitations-3">known limitations</h2>
|
||||
<h2 id="development-toolchains-and-compilers-3">Development Toolchains and Compilers</h2>
|
||||
<ul>
|
||||
<li>IAR Embedded Workbench for ARM (EWARM) toolchain V8.20.2</li>
|
||||
<li>RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.25</li>
|
||||
<li>System Workbench STM32 (SW4STM32) toolchain V2.7.2</li>
|
||||
</ul>
|
||||
<h2 id="supported-devices-and-boards-3">Supported Devices and boards</h2>
|
||||
<h2 id="backward-compatibility-3">backward compatibility</h2>
|
||||
<h2 id="dependencies-3">Dependencies</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div class="collapse">
|
||||
<input type="checkbox" id="collapse-section4" aria-hidden="true"> <label for="collapse-section4" aria-hidden="true">V1.3.0 / 3-September-2020</label>
|
||||
<div>
|
||||
<h2 id="main-changes-4">Main Changes</h2>
|
||||
<h3 id="release-v1.3.0">release V1.3.0</h3>
|
||||
<h2 id="contents-4">Contents</h2>
|
||||
<p><strong>Fixed bugs list</strong></p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr class="header">
|
||||
<th>Headline</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="odd">
|
||||
<td>Ticket 86948 - CodeSpell : Correct some English words typo</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td>Ticket 89624 - Utilities Releases Notes improvements - Link on openorg BSD-3-Clause</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td>Ticket 91318 - need specific CRITICAL_SECTION for UTIL_LPM_EnterLowPower function</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h2 id="known-limitations-4">known limitations</h2>
|
||||
<h2 id="development-toolchains-and-compilers-4">Development Toolchains and Compilers</h2>
|
||||
<ul>
|
||||
<li>IAR Embedded Workbench for ARM (EWARM) toolchain V8.20.2</li>
|
||||
<li>RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.25</li>
|
||||
<li>System Workbench STM32 (SW4STM32) toolchain V2.7.2</li>
|
||||
</ul>
|
||||
<h2 id="supported-devices-and-boards-4">Supported Devices and boards</h2>
|
||||
<h2 id="backward-compatibility-4">backward compatibility</h2>
|
||||
<h2 id="dependencies-4">Dependencies</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div class="collapse">
|
||||
<input type="checkbox" id="collapse-section1" aria-hidden="true"> <label for="collapse-section1" aria-hidden="true">V1.2.0 / 18-Mars-2020</label>
|
||||
<div>
|
||||
<h2 id="main-changes-5">Main Changes</h2>
|
||||
<h3 id="release-v1.2.0">release V1.2.0</h3>
|
||||
<h2 id="contents-5">Contents</h2>
|
||||
<p><strong>Fixed bugs list</strong></p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr class="header">
|
||||
<th>Headline</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="odd">
|
||||
<td>Add the doxygen tag in the source code.</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td>MISRAC update.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h2 id="known-limitations-5">known limitations</h2>
|
||||
<h2 id="development-toolchains-and-compilers-5">Development Toolchains and Compilers</h2>
|
||||
<ul>
|
||||
<li>IAR Embedded Workbench for ARM (EWARM) toolchain V8.20.2</li>
|
||||
<li>RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.25</li>
|
||||
<li>System Workbench STM32 (SW4STM32) toolchain V2.7.2</li>
|
||||
</ul>
|
||||
<h2 id="supported-devices-and-boards-5">Supported Devices and boards</h2>
|
||||
<h2 id="backward-compatibility-5">backward compatibility</h2>
|
||||
<h2 id="dependencies-5">Dependencies</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div class="collapse">
|
||||
<input type="checkbox" id="collapse-section3" aria-hidden="true"> <label for="collapse-section3" aria-hidden="true">V1.1.0 / 04-June-2019</label>
|
||||
<div>
|
||||
<h2 id="main-changes-6">Main Changes</h2>
|
||||
<h3 id="release-v1.1.0">release V1.1.0</h3>
|
||||
<h2 id="contents-6">Contents</h2>
|
||||
<p><strong>Fixed bugs list</strong></p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr class="header">
|
||||
<th>Headline</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="odd">
|
||||
<td>Add CubeMx tag inside the template file.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h2 id="known-limitations-6">known limitations</h2>
|
||||
<h2 id="development-toolchains-and-compilers-6">Development Toolchains and Compilers</h2>
|
||||
<ul>
|
||||
<li>IAR Embedded Workbench for ARM (EWARM) toolchain V8.20.2</li>
|
||||
<li>RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.25</li>
|
||||
<li>System Workbench STM32 (SW4STM32) toolchain V2.7.2</li>
|
||||
</ul>
|
||||
<h2 id="supported-devices-and-boards-6">Supported Devices and boards</h2>
|
||||
<h2 id="backward-compatibility-6">backward compatibility</h2>
|
||||
<h2 id="dependencies-6">Dependencies</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div class="collapse">
|
||||
<input type="checkbox" id="collapse-section2" aria-hidden="true"> <label for="collapse-section2" aria-hidden="true">V1.0.0 / 13-May-2019</label>
|
||||
<div>
|
||||
<h2 id="main-changes-7">Main Changes</h2>
|
||||
<h3 id="first-release">First release</h3>
|
||||
<h2 id="contents-7">Contents</h2>
|
||||
<p><strong>Fixed bugs list</strong></p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr class="header">
|
||||
<th>Headline</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="odd">
|
||||
<td>first official release</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h2 id="known-limitations-7">known limitations</h2>
|
||||
<h2 id="development-toolchains-and-compilers-7">Development Toolchains and Compilers</h2>
|
||||
<ul>
|
||||
<li>IAR Embedded Workbench for ARM (EWARM) toolchain V8.20.2</li>
|
||||
<li>RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.25</li>
|
||||
<li>System Workbench STM32 (SW4STM32) toolchain V2.7.2</li>
|
||||
</ul>
|
||||
<h2 id="supported-devices-and-boards-7">Supported Devices and boards</h2>
|
||||
<h2 id="backward-compatibility-7">backward compatibility</h2>
|
||||
<h2 id="dependencies-7">Dependencies</h2>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<footer class="sticky">
|
||||
<div class="columns">
|
||||
<div class="column" style="width:95%;">
|
||||
|
||||
</div><div class="column" style="width:5%;">
|
||||
<p><abbr title="Based on template cx566953 version 2.1">Info</abbr></p>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
BIN
Utilities/lpm/tiny_lpm/_htmresc/favicon.png
Normal file
|
After Width: | Height: | Size: 4.0 KiB |
1711
Utilities/lpm/tiny_lpm/_htmresc/mini-st.css
Normal file
BIN
Utilities/lpm/tiny_lpm/_htmresc/st_logo_2020.png
Normal file
|
After Width: | Height: | Size: 7.3 KiB |
258
Utilities/lpm/tiny_lpm/stm32_lpm.c
Normal file
@@ -0,0 +1,258 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file stm32_lpm.c
|
||||
* @author MCD Application Team
|
||||
* @brief Low Power Manager
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* <h2><center>© Copyright (c) 2019 STMicroelectronics.
|
||||
* All rights reserved.</center></h2>
|
||||
*
|
||||
* This software is licensed under terms that can be found in the LICENSE file
|
||||
* in the root directory of this software component.
|
||||
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
#include "stm32_lpm.h"
|
||||
#include "utilities_conf.h"
|
||||
|
||||
/** @addtogroup TINY_LPM
|
||||
* @{
|
||||
*/
|
||||
|
||||
/* Private typedef -----------------------------------------------------------*/
|
||||
/* Private macros ------------------------------------------------------------*/
|
||||
/** @defgroup TINY_LPM_Private_macros TINY LPM private macros
|
||||
* @{
|
||||
*/
|
||||
|
||||
/**
|
||||
* @brief macro used to initialized the critical section
|
||||
*/
|
||||
#ifndef UTIL_LPM_INIT_CRITICAL_SECTION
|
||||
#define UTIL_LPM_INIT_CRITICAL_SECTION( )
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief macro used to enter the critical section
|
||||
*/
|
||||
#ifndef UTIL_LPM_ENTER_CRITICAL_SECTION
|
||||
#define UTIL_LPM_ENTER_CRITICAL_SECTION( ) UTILS_ENTER_CRITICAL_SECTION( )
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief macro used to exit the critical section
|
||||
*/
|
||||
#ifndef UTIL_LPM_EXIT_CRITICAL_SECTION
|
||||
#define UTIL_LPM_EXIT_CRITICAL_SECTION( ) UTILS_EXIT_CRITICAL_SECTION( )
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief macro used to enter the critical section when Entering Low Power
|
||||
* @note this macro is only called inside the function UTIL_LPM_EnterLowPower
|
||||
* and in a basic configuration shall be identcal to the macro
|
||||
* UTIL_LPM_EXIT_CRITICAL_SECTION. In general, the request to enter the
|
||||
* low power mode is already done under a critical section and
|
||||
* nesting it is useless (in specific implementations not even possible).
|
||||
* So the users could define their own macro)
|
||||
*/
|
||||
#ifndef UTIL_LPM_ENTER_CRITICAL_SECTION_ELP
|
||||
#define UTIL_LPM_ENTER_CRITICAL_SECTION_ELP( ) UTIL_LPM_ENTER_CRITICAL_SECTION( )
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief macro used to exit the critical section when exiting Low Power mode
|
||||
* @note the behavior of the macro shall be symmetrical with the macro
|
||||
* UTIL_LPM_ENTER_CRITICAL_SECTION_ELP
|
||||
*/
|
||||
#ifndef UTIL_LPM_EXIT_CRITICAL_SECTION_ELP
|
||||
#define UTIL_LPM_EXIT_CRITICAL_SECTION_ELP( ) UTIL_LPM_EXIT_CRITICAL_SECTION( )
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
/* Private function prototypes -----------------------------------------------*/
|
||||
/* Private variables ---------------------------------------------------------*/
|
||||
/* Private typedef -----------------------------------------------------------*/
|
||||
/* Private defines -----------------------------------------------------------*/
|
||||
/** @defgroup TINY_LPM_Private_define TINY LPM private defines
|
||||
* @{
|
||||
*/
|
||||
|
||||
/**
|
||||
* @brief value used to reset the LPM mode
|
||||
*/
|
||||
#define UTIL_LPM_NO_BIT_SET (0UL)
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
/* Private macros ------------------------------------------------------------*/
|
||||
/* Private variables ---------------------------------------------------------*/
|
||||
/** @defgroup TINY_LPM_Private_variables TINY LPM private variables
|
||||
* @{
|
||||
*/
|
||||
|
||||
/**
|
||||
* @brief value used to represent the LPM state of stop mode
|
||||
*/
|
||||
static UTIL_LPM_bm_t StopModeDisable = UTIL_LPM_NO_BIT_SET;
|
||||
|
||||
/**
|
||||
* @brief value used to represent the LPM state of off mode
|
||||
*/
|
||||
static UTIL_LPM_bm_t OffModeDisable = UTIL_LPM_NO_BIT_SET;
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
/* Global variables ----------------------------------------------------------*/
|
||||
/* Private function prototypes -----------------------------------------------*/
|
||||
/* Functions Definition ------------------------------------------------------*/
|
||||
|
||||
/** @addtogroup TINY_LPM_Exported_function
|
||||
* @{
|
||||
*/
|
||||
void UTIL_LPM_Init( void )
|
||||
{
|
||||
StopModeDisable = UTIL_LPM_NO_BIT_SET;
|
||||
OffModeDisable = UTIL_LPM_NO_BIT_SET;
|
||||
UTIL_LPM_INIT_CRITICAL_SECTION( );
|
||||
}
|
||||
|
||||
void UTIL_LPM_DeInit( void )
|
||||
{
|
||||
}
|
||||
|
||||
void UTIL_LPM_SetStopMode( UTIL_LPM_bm_t lpm_id_bm, UTIL_LPM_State_t state )
|
||||
{
|
||||
UTIL_LPM_ENTER_CRITICAL_SECTION( );
|
||||
|
||||
switch( state )
|
||||
{
|
||||
case UTIL_LPM_DISABLE:
|
||||
{
|
||||
StopModeDisable |= lpm_id_bm;
|
||||
break;
|
||||
}
|
||||
case UTIL_LPM_ENABLE:
|
||||
{
|
||||
StopModeDisable &= ( ~lpm_id_bm );
|
||||
break;
|
||||
}
|
||||
default :
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
UTIL_LPM_EXIT_CRITICAL_SECTION( );
|
||||
}
|
||||
|
||||
void UTIL_LPM_SetOffMode( UTIL_LPM_bm_t lpm_id_bm, UTIL_LPM_State_t state )
|
||||
{
|
||||
UTIL_LPM_ENTER_CRITICAL_SECTION( );
|
||||
|
||||
switch(state)
|
||||
{
|
||||
case UTIL_LPM_DISABLE:
|
||||
{
|
||||
OffModeDisable |= lpm_id_bm;
|
||||
break;
|
||||
}
|
||||
case UTIL_LPM_ENABLE:
|
||||
{
|
||||
OffModeDisable &= ( ~lpm_id_bm );
|
||||
break;
|
||||
}
|
||||
default :
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
UTIL_LPM_EXIT_CRITICAL_SECTION( );
|
||||
}
|
||||
|
||||
UTIL_LPM_Mode_t UTIL_LPM_GetMode( void )
|
||||
{
|
||||
UTIL_LPM_Mode_t mode_selected;
|
||||
|
||||
UTIL_LPM_ENTER_CRITICAL_SECTION( );
|
||||
|
||||
if( StopModeDisable != UTIL_LPM_NO_BIT_SET )
|
||||
{
|
||||
/**
|
||||
* At least one user disallows Stop Mode
|
||||
*/
|
||||
mode_selected = UTIL_LPM_SLEEPMODE;
|
||||
}
|
||||
else
|
||||
{
|
||||
if( OffModeDisable != UTIL_LPM_NO_BIT_SET )
|
||||
{
|
||||
/**
|
||||
* At least one user disallows Off Mode
|
||||
*/
|
||||
mode_selected = UTIL_LPM_STOPMODE;
|
||||
}
|
||||
else
|
||||
{
|
||||
mode_selected = UTIL_LPM_OFFMODE;
|
||||
}
|
||||
}
|
||||
|
||||
UTIL_LPM_EXIT_CRITICAL_SECTION( );
|
||||
|
||||
return mode_selected;
|
||||
}
|
||||
|
||||
void UTIL_LPM_EnterLowPower( void )
|
||||
{
|
||||
UTIL_LPM_ENTER_CRITICAL_SECTION_ELP( );
|
||||
|
||||
if( StopModeDisable != UTIL_LPM_NO_BIT_SET )
|
||||
{
|
||||
/**
|
||||
* At least one user disallows Stop Mode
|
||||
* SLEEP mode is required
|
||||
*/
|
||||
UTIL_PowerDriver.EnterSleepMode( );
|
||||
UTIL_PowerDriver.ExitSleepMode( );
|
||||
}
|
||||
else
|
||||
{
|
||||
if( OffModeDisable != UTIL_LPM_NO_BIT_SET )
|
||||
{
|
||||
/**
|
||||
* At least one user disallows Off Mode
|
||||
* STOP mode is required
|
||||
*/
|
||||
UTIL_PowerDriver.EnterStopMode( );
|
||||
UTIL_PowerDriver.ExitStopMode( );
|
||||
}
|
||||
else
|
||||
{
|
||||
/**
|
||||
* OFF mode is required
|
||||
*/
|
||||
UTIL_PowerDriver.EnterOffMode( );
|
||||
UTIL_PowerDriver.ExitOffMode( );
|
||||
}
|
||||
}
|
||||
|
||||
UTIL_LPM_EXIT_CRITICAL_SECTION_ELP( );
|
||||
}
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
167
Utilities/lpm/tiny_lpm/stm32_lpm.h
Normal file
@@ -0,0 +1,167 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file stm32_lpm.h
|
||||
* @author MCD Application Team
|
||||
* @brief Header for stm32_lpm.c module
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* <h2><center>© Copyright (c) 2019 STMicroelectronics.
|
||||
* All rights reserved.</center></h2>
|
||||
*
|
||||
* This software is licensed under terms that can be found in the LICENSE file
|
||||
* in the root directory of this software component.
|
||||
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
/* Define to prevent recursive inclusion -------------------------------------*/
|
||||
#ifndef STM32_TINY_LPM_H
|
||||
#define STM32_TINY_LPM_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
#include "stdint.h"
|
||||
|
||||
/** @defgroup TINY_LPM TINY LPM
|
||||
* @{
|
||||
*/
|
||||
|
||||
/* Exported typedef ---------------------------------------------------------*/
|
||||
/** @defgroup TINY_LPM_Exported_typedef TINY LPM exported typedef
|
||||
* @{
|
||||
*/
|
||||
|
||||
/**
|
||||
* @brief type definition to represent the bit mask of an LPM mode
|
||||
*/
|
||||
typedef uint32_t UTIL_LPM_bm_t;
|
||||
|
||||
/**
|
||||
* @brief type definition to represent value of an LPM mode
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
UTIL_LPM_ENABLE=0,
|
||||
UTIL_LPM_DISABLE,
|
||||
} UTIL_LPM_State_t;
|
||||
|
||||
/**
|
||||
* @brief type definition to represent the different type of LPM mode
|
||||
*/
|
||||
|
||||
typedef enum
|
||||
{
|
||||
UTIL_LPM_SLEEPMODE,
|
||||
UTIL_LPM_STOPMODE,
|
||||
UTIL_LPM_OFFMODE,
|
||||
} UTIL_LPM_Mode_t;
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/** @defgroup TINY_LPM_Exported_struct TINY LPM exported struct
|
||||
* @{
|
||||
*/
|
||||
|
||||
/**
|
||||
* @brief LPM driver definition
|
||||
*/
|
||||
struct UTIL_LPM_Driver_s
|
||||
{
|
||||
void (*EnterSleepMode) ( void ); /*!<function to enter the sleep mode */
|
||||
void (*ExitSleepMode) ( void ); /*!<function to exit the sleep mode */
|
||||
void (*EnterStopMode) ( void ); /*!<function to enter the stop mode */
|
||||
void (*ExitStopMode) ( void ); /*!<function to exit the stop mode */
|
||||
void (*EnterOffMode) ( void ); /*!<function to enter the off mode */
|
||||
void (*ExitOffMode) ( void ); /*!<function to exit the off mode */
|
||||
};
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/* External variables --------------------------------------------------------*/
|
||||
|
||||
/** @defgroup TINY_LPM_Exported_struct TINY LPM exported struct
|
||||
* @{
|
||||
*/
|
||||
|
||||
/**
|
||||
* @brief LPM driver
|
||||
*
|
||||
* @note This structure is defined and initialized in the specific platform
|
||||
* power implementation
|
||||
*/
|
||||
extern const struct UTIL_LPM_Driver_s UTIL_PowerDriver;
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/* Exported macros -----------------------------------------------------------*/
|
||||
/* Exported functions ------------------------------------------------------- */
|
||||
|
||||
/** @defgroup TINY_LPM_Exported_function TINY LPM exported functions
|
||||
* @{
|
||||
*/
|
||||
|
||||
/**
|
||||
* @brief This API Initializes the LPM resources.
|
||||
*/
|
||||
void UTIL_LPM_Init( void );
|
||||
|
||||
/**
|
||||
* @brief This API Un-Initializes the LPM resources.
|
||||
*/
|
||||
void UTIL_LPM_DeInit( void );
|
||||
|
||||
/**
|
||||
* @brief This API returns the Low Power Mode selected that will be applied when the system will enter low power mode
|
||||
* if there is no update between the time the mode is read with this API and the time the system enters
|
||||
* low power mode.
|
||||
* @retval the LPM mode based on @ref UTIL_LPM_Mode_t
|
||||
*/
|
||||
UTIL_LPM_Mode_t UTIL_LPM_GetMode( void );
|
||||
|
||||
/**
|
||||
* @brief This API notifies the low power manager if the specified user allows the Stop mode or not.
|
||||
* The default mode selection for all users is Stop Mode enabled
|
||||
* @param lpm_id_bm: identifier of the user ( 1 bit per user )
|
||||
* @param state: Specify whether StopMode is allowed or not by this user
|
||||
*/
|
||||
void UTIL_LPM_SetStopMode( UTIL_LPM_bm_t lpm_id_bm, UTIL_LPM_State_t state );
|
||||
|
||||
/**
|
||||
* @brief This API notifies the low power manager if the specified user allows the Off mode or not.
|
||||
* The default mode selection for all users is Off mode enabled
|
||||
* @param lpm_id_bm: identifier of the user ( 1 bit per user )
|
||||
* @param state: Specify whether OffMode is allowed or not by this user
|
||||
*/
|
||||
void UTIL_LPM_SetOffMode( UTIL_LPM_bm_t lpm_id_bm, UTIL_LPM_State_t state );
|
||||
|
||||
/**
|
||||
* @brief This API is called by the low power manager in a critical section (PRIMASK bit set) to allow the
|
||||
* application to implement dedicated code before entering Low Power Mode
|
||||
*/
|
||||
void UTIL_LPM_EnterLowPower( void );
|
||||
|
||||
/**
|
||||
*@}
|
||||
*/
|
||||
|
||||
/**
|
||||
*@}
|
||||
*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* STM32_TINY_LPM_H */
|
||||
|
||||
146
Utilities/misc/Release_Notes.html
Normal file
@@ -0,0 +1,146 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="generator" content="pandoc" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
|
||||
<title>Release Notes for STM32 miscellaneous utilities</title>
|
||||
<style>
|
||||
code{white-space: pre-wrap;}
|
||||
span.smallcaps{font-variant: small-caps;}
|
||||
span.underline{text-decoration: underline;}
|
||||
div.column{display: inline-block; vertical-align: top; width: 50%;}
|
||||
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
|
||||
ul.task-list{list-style: none;}
|
||||
.display.math{display: block; text-align: center; margin: 0.5rem auto;}
|
||||
</style>
|
||||
<link rel="stylesheet" href="_htmresc/mini-st_2020.css" />
|
||||
<!--[if lt IE 9]>
|
||||
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
|
||||
<![endif]-->
|
||||
<link rel="icon" type="image/x-icon" href="_htmresc/favicon.png" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="row">
|
||||
<div class="col-sm-12 col-lg-4">
|
||||
<center>
|
||||
<h1 id="release-notes-for">Release Notes for</h1>
|
||||
<h1 id="stm32-miscellaneous-utilities"><mark>STM32 miscellaneous utilities</mark></h1>
|
||||
<p>Copyright © 2021 STMicroelectronics<br />
|
||||
</p>
|
||||
<a href="https://www.st.com" class="logo"><img src="_htmresc/st_logo_2020.png" alt="ST logo" /></a>
|
||||
</center>
|
||||
<h1 id="purpose">Purpose</h1>
|
||||
<p>The source code delivered is a utility to help managing miscellaneous utilities within an embedded application: memory, system time and vsnprintf.</p>
|
||||
</div>
|
||||
<section id="update-history" class="col-sm-12 col-lg-8">
|
||||
<h1>Update History</h1>
|
||||
<div class="collapse">
|
||||
<input type="checkbox" id="collapse-section6" checked aria-hidden="true"> <label for="collapse-section6" aria-hidden="true"><strong>V1.1.2 / 25-Oct-2024</strong></label>
|
||||
<div>
|
||||
<h2 id="main-changes">Main Changes</h2>
|
||||
<h2 id="contents">Contents</h2>
|
||||
<ul>
|
||||
<li>Update release note name</li>
|
||||
</ul>
|
||||
<h2 id="known-limitations">Known limitations</h2>
|
||||
<h2 id="development-toolchains-and-compilers">Development Toolchains and Compilers</h2>
|
||||
<h2 id="supported-devices-and-boards">Supported Devices and boards</h2>
|
||||
<h2 id="backward-compatibility">backward compatibility</h2>
|
||||
<h2 id="dependencies">Dependencies</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div class="collapse">
|
||||
<input type="checkbox" id="collapse-section5" aria-hidden="true"> <label for="collapse-section5" aria-hidden="true"><strong>V1.1.1 / 07-Apr-2022</strong></label>
|
||||
<div>
|
||||
<h2 id="main-changes-1">Main Changes</h2>
|
||||
<h2 id="contents-1">Contents</h2>
|
||||
<ul>
|
||||
<li>Update release note format</li>
|
||||
</ul>
|
||||
<h2 id="known-limitations-1">Known limitations</h2>
|
||||
<h2 id="development-toolchains-and-compilers-1">Development Toolchains and Compilers</h2>
|
||||
<h2 id="supported-devices-and-boards-1">Supported Devices and boards</h2>
|
||||
<h2 id="backward-compatibility-1">backward compatibility</h2>
|
||||
<h2 id="dependencies-1">Dependencies</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div class="collapse">
|
||||
<input type="checkbox" id="collapse-section4" aria-hidden="true"> <label for="collapse-section4" aria-hidden="true"><strong>V1.1.0 / 23-Nov-2021</strong></label>
|
||||
<div>
|
||||
<h2 id="main-changes-2">Main Changes</h2>
|
||||
<ul>
|
||||
<li>Licensing information should be updated AND missing header user section code should be added</li>
|
||||
</ul>
|
||||
<h2 id="contents-2">Contents</h2>
|
||||
<ul>
|
||||
<li>Update release note format</li>
|
||||
</ul>
|
||||
<h2 id="known-limitations-2">Known limitations</h2>
|
||||
<h2 id="development-toolchains-and-compilers-2">Development Toolchains and Compilers</h2>
|
||||
<h2 id="supported-devices-and-boards-2">Supported Devices and boards</h2>
|
||||
<h2 id="backward-compatibility-2">backward compatibility</h2>
|
||||
<h2 id="dependencies-2">Dependencies</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div class="collapse">
|
||||
<input type="checkbox" id="collapse-section3" aria-hidden="true"> <label for="collapse-section3" aria-hidden="true"><strong>V1.0.2 / 2-Mar-2021</strong></label>
|
||||
<div>
|
||||
<h2 id="main-changes-3">Main Changes</h2>
|
||||
<ul>
|
||||
<li>release V1.0.2</li>
|
||||
</ul>
|
||||
<h2 id="contents-3">Contents</h2>
|
||||
<ul>
|
||||
<li>Update release note format</li>
|
||||
</ul>
|
||||
<h2 id="known-limitations-3">Known limitations</h2>
|
||||
<h2 id="development-toolchains-and-compilers-3">Development Toolchains and Compilers</h2>
|
||||
<h2 id="supported-devices-and-boards-3">Supported Devices and boards</h2>
|
||||
<h2 id="backward-compatibility-3">backward compatibility</h2>
|
||||
<h2 id="dependencies-3">Dependencies</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div class="collapse">
|
||||
<input type="checkbox" id="collapse-section2" aria-hidden="true"> <label for="collapse-section2" aria-hidden="true"><strong>V1.0.1 / 12-Jan-2021</strong></label>
|
||||
<div>
|
||||
<h2 id="main-changes-4">Main Changes</h2>
|
||||
<ul>
|
||||
<li>release V1.0.1</li>
|
||||
</ul>
|
||||
<h2 id="contents-4">Contents</h2>
|
||||
<ul>
|
||||
<li>add empty line at the end of stm32_mem.h</li>
|
||||
</ul>
|
||||
<h2 id="known-limitations-4">Known limitations</h2>
|
||||
<h2 id="development-toolchains-and-compilers-4">Development Toolchains and Compilers</h2>
|
||||
<h2 id="supported-devices-and-boards-4">Supported Devices and boards</h2>
|
||||
<h2 id="backward-compatibility-4">backward compatibility</h2>
|
||||
<h2 id="dependencies-4">Dependencies</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div class="collapse">
|
||||
<input type="checkbox" id="collapse-section1" aria-hidden="true"> <label for="collapse-section1" aria-hidden="true"><strong>V1.0.0 / 17-Sept-2020</strong></label>
|
||||
<div>
|
||||
<h2 id="main-changes-5">Main Changes</h2>
|
||||
<ul>
|
||||
<li>release V1.0.0</li>
|
||||
</ul>
|
||||
<h2 id="contents-5">Contents</h2>
|
||||
<ul>
|
||||
<li>First release</li>
|
||||
</ul>
|
||||
<h2 id="known-limitations-5">known limitations</h2>
|
||||
<h2 id="development-toolchains-and-compilers-5">Development Toolchains and Compilers</h2>
|
||||
<h2 id="supported-devices-and-boards-5">Supported Devices and boards</h2>
|
||||
<h2 id="backward-compatibility-5">backward compatibility</h2>
|
||||
<h2 id="dependencies-5">Dependencies</h2>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<footer class="sticky">
|
||||
For complete documentation on STM32 Microcontrollers , visit: <a href="http://www.st.com/STM32">http://www.st.com/STM32</a>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
2
Utilities/misc/_htmresc/Add button.svg
Normal file
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200"><g fill="#13254a"><path d="M100 .212C44.868.212 0 44.889 0 99.788c0 55.132 44.868 100 100 100s100-44.868 100-100C200 44.889 155.132.212 100 .212zm0 181.164c-44.974 0-81.587-36.614-81.587-81.587 0-44.762 36.614-81.164 81.587-81.164 44.995 0 81.587 36.402 81.587 81.164 0 44.973-36.592 81.587-81.587 81.587z" style="fill: #e6007e;"/><path d="M141.1 88.127h-29.439V58.688c0-6.392-5.185-11.598-11.598-11.598-6.413 0-11.619 5.206-11.619 11.598v29.439H58.476c-6.392 0-11.598 5.185-11.598 11.598 0 6.413 5.206 11.619 11.598 11.619h29.968v29.968c0 6.392 5.206 11.598 11.619 11.598 6.413 0 11.598-5.206 11.598-11.598v-29.968H141.1c6.392 0 11.598-5.206 11.598-11.619 0-6.413-5.206-11.598-11.598-11.598z" style="fill: #e6007e;"/></g></svg>
|
||||
|
After Width: | Height: | Size: 830 B |
2
Utilities/misc/_htmresc/Update.svg
Normal file
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200"><g fill="#03234b"><path d="M170.934 64.569l-.04-.055-29.049 40.038-.057.079h14.867a59.366 59.366 0 0 1-1.488 15.615c-1.158 5.318-3.807 13.448-9.848 21.977-2.766 4.118-6.375 7.726-9.208 10.408-3.426 2.857-7.461 6.095-12 8.376-8.121 4.568-17.881 7.138-28.225 7.432-10.907.248-20.201-2.61-26.072-5.052-8.283-3.479-14.111-7.807-16.85-10.078-1.254-.956-2.25-1.907-3.057-2.676a28.662 28.662 0 0 0-1.157-1.069 158.874 158.874 0 0 0-1.479-1.362l-4.435-3.956 3.569 4.81.183.243c.2.263.548.722 1.048 1.389.276.334.579.747.93 1.226l.008.01c.689.939 1.546 2.107 2.664 3.322 3 3.536 8.178 8.801 15.808 13.801 5.969 3.866 15.672 8.901 28.001 10.935a79.05 79.05 0 0 0 12.485.998c7.97 0 15.651-1.228 22.828-3.649 6.366-1.877 12.192-4.981 17.053-7.771 6.16-3.936 10.817-7.586 14.654-11.488 8.084-7.899 14.884-17.913 19.15-28.199 3.259-7.594 5.456-15.727 6.529-24.175l.055-.425.083-.641H200l-29.066-40.063zM58.159 99.232l-12.655.563c-.097-.881-.159-1.986-.227-3.474a59.184 59.184 0 0 1 1.446-16.56c1.157-5.316 3.804-13.444 9.848-21.977 2.168-3.228 5.009-6.44 9.208-10.415 3.41-2.849 7.432-6.08 12.005-8.375 8.114-4.568 17.87-7.138 28.213-7.432 10.9-.25 20.196 2.607 26.072 5.045 8.258 3.473 14.105 7.812 16.857 10.091 1.257.951 2.253 1.904 3.057 2.673l.017.016c.43.411.801.766 1.136 1.051.475.438.841.777 1.091 1.01l.138.128.248.229 4.04 3.613-3.165-4.456c-.058-.083-.312-.417-.73-.971l-.507-.67a28.922 28.922 0 0 1-.901-1.192l-.02-.027c-.69-.945-1.548-2.121-2.677-3.346-3.002-3.537-8.182-8.803-15.813-13.801-5.964-3.865-15.662-8.9-27.997-10.935-8.484-1.363-21.496-2.009-35.313 2.651-6.355 1.88-12.186 4.983-17.054 7.772-6.163 3.944-10.82 7.595-14.654 11.488-8.079 7.894-14.882 17.909-19.155 28.2-3.268 7.624-5.463 15.757-6.523 24.173-.436 3.281-.642 5.421-.664 6.926L0 101.831l30.683 38.727.042.053 27.38-41.298.054-.081z" style="fill: #e6007e;"/></g></svg>
|
||||
|
After Width: | Height: | Size: 1.9 KiB |
BIN
Utilities/misc/_htmresc/favicon.png
Normal file
|
After Width: | Height: | Size: 4.0 KiB |
1711
Utilities/misc/_htmresc/mini-st_2020.css
Normal file
BIN
Utilities/misc/_htmresc/st_logo_2020.png
Normal file
|
After Width: | Height: | Size: 7.3 KiB |
61
Utilities/misc/stm32_mem.c
Normal file
@@ -0,0 +1,61 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file stm32_mem.c
|
||||
* @author MCD Application Team
|
||||
* @brief standard memory operation
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* Copyright (c) 2019 STMicroelectronics.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This software is licensed under terms that can be found in the LICENSE file
|
||||
* in the root directory of this software component.
|
||||
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
#include "stdint.h"
|
||||
#include "stm32_mem.h"
|
||||
|
||||
/* Private typedef -----------------------------------------------------------*/
|
||||
/* Private defines -----------------------------------------------------------*/
|
||||
/* Private macros ------------------------------------------------------------*/
|
||||
/* Private variables ---------------------------------------------------------*/
|
||||
/* Global variables ----------------------------------------------------------*/
|
||||
/* Private function prototypes -----------------------------------------------*/
|
||||
/* Functions Definition ------------------------------------------------------*/
|
||||
|
||||
void UTIL_MEM_cpy_8( void *dst, const void *src, uint16_t size )
|
||||
{
|
||||
uint8_t* dst8= (uint8_t *) dst;
|
||||
uint8_t* src8= (uint8_t *) src;
|
||||
|
||||
while( size-- )
|
||||
{
|
||||
*dst8++ = *src8++;
|
||||
}
|
||||
}
|
||||
|
||||
void UTIL_MEM_cpyr_8( void *dst, const void *src, uint16_t size )
|
||||
{
|
||||
uint8_t* dst8= (uint8_t *) dst;
|
||||
uint8_t* src8= (uint8_t *) src;
|
||||
|
||||
dst8 = dst8 + ( size - 1 );
|
||||
while( size-- )
|
||||
{
|
||||
*dst8-- = *src8++;
|
||||
}
|
||||
}
|
||||
|
||||
void UTIL_MEM_set_8( void *dst, uint8_t value, uint16_t size )
|
||||
{
|
||||
uint8_t* dst8= (uint8_t *) dst;
|
||||
while( size-- )
|
||||
{
|
||||
*dst8++ = value;
|
||||
}
|
||||
}
|
||||
70
Utilities/misc/stm32_mem.h
Normal file
@@ -0,0 +1,70 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file stm32_mem.h
|
||||
* @author MCD Application Team
|
||||
* @brief standard memory operation
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* Copyright (c) 2019 STMicroelectronics.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This software is licensed under terms that can be found in the LICENSE file
|
||||
* in the root directory of this software component.
|
||||
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
/* Define to prevent recursive inclusion -------------------------------------*/
|
||||
#ifndef __STM32_MEM_H__
|
||||
#define __STM32_MEM_H__
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
#include <stdint.h>
|
||||
#include "utilities_conf.h"
|
||||
|
||||
/* Exported types ------------------------------------------------------------*/
|
||||
/* Exported constants --------------------------------------------------------*/
|
||||
/* Exported macro ------------------------------------------------------------*/
|
||||
/* ---- Memory mapping macros ----------------------------------------------- */
|
||||
#define UTIL_MEM_PLACE_IN_SECTION( __x__ ) UTIL_PLACE_IN_SECTION( __x__ )
|
||||
#define UTIL_MEM_ALIGN ALIGN
|
||||
|
||||
/* Exported functions ------------------------------------------------------- */
|
||||
/**
|
||||
* @brief This API copies one buffer to another
|
||||
* @param dst: output buffer to be filled
|
||||
* @param src: input buffer
|
||||
* @param size: size of 8b data
|
||||
* @retval None
|
||||
*/
|
||||
void UTIL_MEM_cpy_8( void *dst, const void *src, uint16_t size );
|
||||
|
||||
/**
|
||||
* @brief This API copies one buffer to another in reverse
|
||||
* @param dst: output buffer to be filled
|
||||
* @param src: input buffer
|
||||
* @param size: size of 8b data
|
||||
* @retval None
|
||||
*/
|
||||
void UTIL_MEM_cpyr_8( void *dst, const void *src, uint16_t size );
|
||||
|
||||
/**
|
||||
* @brief This API fills a buffer with value
|
||||
* @param dst: output buffer to be filled
|
||||
* @param value: value
|
||||
* @param size: size of 8b data
|
||||
* @retval None
|
||||
*/
|
||||
void UTIL_MEM_set_8( void *dst, uint8_t value, uint16_t size );
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __STM32_MEM_H__ */
|
||||
496
Utilities/misc/stm32_systime.c
Normal file
@@ -0,0 +1,496 @@
|
||||
/*!
|
||||
* \file stm32_systime.c
|
||||
*
|
||||
* \brief System time functions implementation
|
||||
*
|
||||
* \copyright Revised BSD License, see section \ref LICENSE.
|
||||
*
|
||||
* \code
|
||||
* ______ _
|
||||
* / _____) _ | |
|
||||
* ( (____ _____ ____ _| |_ _____ ____| |__
|
||||
* \____ \| ___ | (_ _) ___ |/ ___) _ \
|
||||
* _____) ) ____| | | || |_| ____( (___| | | |
|
||||
* (______/|_____)_|_|_| \__)_____)\____)_| |_|
|
||||
* (C)2013-2018 Semtech - STMicroelectronics
|
||||
*
|
||||
* \endcode
|
||||
*
|
||||
* \author Miguel Luis ( Semtech )
|
||||
*
|
||||
* \author Gregory Cristian ( Semtech )
|
||||
*
|
||||
* \author MCD Application Team ( STMicroelectronics International )
|
||||
*/
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file stm32_systime.c
|
||||
* @author MCD Application Team
|
||||
* @brief System time functions implementation
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* Copyright (c) 2019 STMicroelectronics.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This software is licensed under terms that can be found in the LICENSE file
|
||||
* in the root directory of this software component.
|
||||
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
#include <stdio.h>
|
||||
#include "stm32_systime.h"
|
||||
|
||||
/** @addtogroup SYS_TIME
|
||||
* @{
|
||||
*/
|
||||
|
||||
/* Private defines -----------------------------------------------------------*/
|
||||
/**
|
||||
* @defgroup SYS_TIME_private_defines SYS_TIME private defines
|
||||
* @{
|
||||
*/
|
||||
|
||||
/**
|
||||
* @brief number of day in leap year up to the end of February
|
||||
*
|
||||
*/
|
||||
#define END_OF_FEBRUARY_LEAP 60 //31+29
|
||||
|
||||
/**
|
||||
* @brief number of day in leap year up to the end of july
|
||||
*
|
||||
*/
|
||||
#define END_OF_JULY_LEAP 213 //31+29+...
|
||||
|
||||
/**
|
||||
* @brief number of day in normal year up to the end of February
|
||||
*
|
||||
*/
|
||||
#define END_OF_FEBRUARY_NORM 59 //31+28
|
||||
|
||||
/**
|
||||
* @brief number of day in normal year up to the end of july
|
||||
*
|
||||
*/
|
||||
#define END_OF_JULY_NORM 212 //31+28+...
|
||||
|
||||
/**
|
||||
* @brief delta is referenced to Unix time
|
||||
* @note UNIX time 0 = starts at 01:00:00, 01/01/1970
|
||||
* but calculation is easier from Monday 1st January 1968
|
||||
*
|
||||
*/
|
||||
#define CALC_REF_YEAR 68
|
||||
|
||||
/**
|
||||
* @brief delta is referenced to Unix time
|
||||
* @note UNIX time 0 = starts at 01:00:00, 01/01/1970
|
||||
* but calculation is easier from Monday 1st January 1968
|
||||
*
|
||||
*/
|
||||
#define CALC_REF_YEAR_TO_UNIX_REF_YEAR_COMPENSATION_IN_SECONDS ( ( TM_DAYS_IN_LEAP_YEAR + TM_DAYS_IN_YEAR ) * TM_SECONDS_IN_1DAY )
|
||||
|
||||
/**
|
||||
* @brief month correction table of a normal year. To calculate the day number within a year
|
||||
* @note error compensation is between 0 and 2 days. 2 bits per month
|
||||
*
|
||||
*/
|
||||
#define DAYS_IN_MONTH_CORRECTION_NORM ( (uint32_t )0x99AAA0 )
|
||||
|
||||
/**
|
||||
* @brief month correction table of a leap year. To calculate the day number within a year
|
||||
* @note error compensation is between 0 and 2 days. 2 bits per month
|
||||
*
|
||||
*/
|
||||
#define DAYS_IN_MONTH_CORRECTION_LEAP ( (uint32_t )0x445550 )
|
||||
|
||||
/**
|
||||
* @brief find X/365.25
|
||||
*
|
||||
*/
|
||||
/* 365.25 = (366 + 365 + 365 + 365)/4 */
|
||||
#define DIV_365_25( X ) ( ( ( X ) * 91867 + 22750 ) >> 25 )
|
||||
|
||||
/**
|
||||
* @brief find the nearest quotient of X/86400 (8640 number of seconds in one week)
|
||||
*
|
||||
*/
|
||||
#define DIV_APPROX_86400( X ) ( ( ( X ) >> 18 ) + ( ( X ) >> 17 ) )
|
||||
|
||||
/**
|
||||
* @brief find the nearest quotient of X/1000
|
||||
*
|
||||
*/
|
||||
#define DIV_APPROX_1000( X ) ( ( ( X ) >> 10 ) +( ( X ) >> 16 ) + ( ( X ) >> 17 ) )
|
||||
|
||||
/**
|
||||
* @brief find the nearest quotient of X/60
|
||||
*
|
||||
*/
|
||||
#define DIV_APPROX_60( X ) ( ( ( X ) * 17476 ) >> 20 )
|
||||
|
||||
/**
|
||||
* @brief find the nearest quotient of X/61
|
||||
*
|
||||
*/
|
||||
#define DIV_APPROX_61( X ) ( ( ( X ) * 68759 ) >> 22 )
|
||||
|
||||
/**
|
||||
* @brief Calculates mod(x,7)
|
||||
*
|
||||
*/
|
||||
#define MODULO_7( X ) ( ( X ) -( ( ( ( ( X ) + 1 ) * 299593 ) >> 21 ) * 7 ) )
|
||||
|
||||
/**
|
||||
* @brief Calculates ceiling( X / N )
|
||||
*
|
||||
*/
|
||||
#define DIVC( X, N ) ( ( ( X ) + ( N ) -1 ) / ( N ) )
|
||||
|
||||
/**
|
||||
* @brief Calculates ceiling( X / 4 )
|
||||
*
|
||||
*/
|
||||
#define DIVC_BY_4( X ) ( ( ( X ) + 3 ) >>2 )
|
||||
|
||||
/**
|
||||
* @brief Calculates ceiling( X / 2 )
|
||||
*
|
||||
*/
|
||||
#define DIVC_BY_2( X ) ( ( ( X ) + 1 ) >> 1 )
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/* Private constants -----------------------------------------------------------*/
|
||||
/**
|
||||
* @defgroup SYSTIME_private_variable SYSTIME private constants
|
||||
* @{
|
||||
*/
|
||||
const char *WeekDayString[]={ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" };
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/* Private function prototypes -----------------------------------------------*/
|
||||
|
||||
/**
|
||||
* @defgroup SYSTIME_private_function_prototypes SYSTIME private function prototypes
|
||||
* @{
|
||||
*/
|
||||
static uint32_t CalendarGetMonth( uint32_t days, uint32_t year );
|
||||
static void CalendarDiv86400( uint32_t in, uint32_t* out, uint32_t* remainder );
|
||||
static uint32_t CalendarDiv61( uint32_t in );
|
||||
static void CalendarDiv60( uint32_t in, uint32_t* out, uint32_t* remainder );
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/* Functions Definition ------------------------------------------------------*/
|
||||
/**
|
||||
* @addtogroup SYSTIME_exported_function
|
||||
* @{
|
||||
*/
|
||||
|
||||
SysTime_t SysTimeAdd( SysTime_t a, SysTime_t b )
|
||||
{
|
||||
SysTime_t c = { .Seconds = 0, .SubSeconds = 0 };
|
||||
|
||||
c.Seconds = a.Seconds + b.Seconds;
|
||||
c.SubSeconds = a.SubSeconds + b.SubSeconds;
|
||||
if( c.SubSeconds >= 1000 )
|
||||
{
|
||||
c.Seconds++;
|
||||
c.SubSeconds -= 1000;
|
||||
}
|
||||
return c;
|
||||
}
|
||||
|
||||
SysTime_t SysTimeSub( SysTime_t a, SysTime_t b )
|
||||
{
|
||||
SysTime_t c = { .Seconds = 0, .SubSeconds = 0 };
|
||||
|
||||
c.Seconds = a.Seconds - b.Seconds;
|
||||
c.SubSeconds = a.SubSeconds - b.SubSeconds;
|
||||
if( c.SubSeconds < 0 )
|
||||
{
|
||||
c.Seconds--;
|
||||
c.SubSeconds += 1000;
|
||||
}
|
||||
return c;
|
||||
}
|
||||
|
||||
void SysTimeSet( SysTime_t sysTime )
|
||||
{
|
||||
SysTime_t DeltaTime;
|
||||
|
||||
SysTime_t calendarTime = { .Seconds = 0, .SubSeconds = 0 };
|
||||
|
||||
calendarTime.Seconds = UTIL_SYSTIMDriver.GetCalendarTime( ( uint16_t* )&calendarTime.SubSeconds );
|
||||
|
||||
// sysTime is UNIX epoch
|
||||
DeltaTime = SysTimeSub( sysTime, calendarTime );
|
||||
|
||||
UTIL_SYSTIMDriver.BKUPWrite_Seconds( DeltaTime.Seconds );
|
||||
UTIL_SYSTIMDriver.BKUPWrite_SubSeconds( ( uint32_t ) DeltaTime.SubSeconds );
|
||||
}
|
||||
|
||||
SysTime_t SysTimeGet( void )
|
||||
{
|
||||
SysTime_t calendarTime = { .Seconds = 0, .SubSeconds = 0 };
|
||||
SysTime_t sysTime = { .Seconds = 0, .SubSeconds = 0 };
|
||||
SysTime_t DeltaTime;
|
||||
|
||||
calendarTime.Seconds = UTIL_SYSTIMDriver.GetCalendarTime( ( uint16_t* )&calendarTime.SubSeconds );
|
||||
|
||||
DeltaTime.SubSeconds = (int16_t)UTIL_SYSTIMDriver.BKUPRead_SubSeconds();
|
||||
DeltaTime.Seconds = UTIL_SYSTIMDriver.BKUPRead_Seconds();
|
||||
|
||||
sysTime = SysTimeAdd( DeltaTime, calendarTime );
|
||||
|
||||
return sysTime;
|
||||
}
|
||||
|
||||
|
||||
SysTime_t SysTimeGetMcuTime( void )
|
||||
{
|
||||
SysTime_t calendarTime = { .Seconds = 0, .SubSeconds = 0 };
|
||||
|
||||
calendarTime.Seconds = UTIL_SYSTIMDriver.GetCalendarTime( ( uint16_t* )&calendarTime.SubSeconds );
|
||||
|
||||
return calendarTime;
|
||||
}
|
||||
|
||||
uint32_t SysTimeToMs( SysTime_t sysTime )
|
||||
{
|
||||
SysTime_t DeltaTime;
|
||||
DeltaTime.SubSeconds = (int16_t)UTIL_SYSTIMDriver.BKUPRead_SubSeconds();
|
||||
DeltaTime.Seconds = UTIL_SYSTIMDriver.BKUPRead_Seconds();
|
||||
|
||||
SysTime_t calendarTime = SysTimeSub( sysTime, DeltaTime );
|
||||
return calendarTime.Seconds * 1000 + calendarTime.SubSeconds;
|
||||
}
|
||||
|
||||
SysTime_t SysTimeFromMs( uint32_t timeMs )
|
||||
{
|
||||
uint32_t seconds = timeMs / 1000;
|
||||
SysTime_t sysTime = { .Seconds = seconds, .SubSeconds = timeMs - seconds * 1000 };
|
||||
SysTime_t DeltaTime = { 0 };
|
||||
|
||||
DeltaTime.SubSeconds = (int16_t)UTIL_SYSTIMDriver.BKUPRead_SubSeconds();
|
||||
DeltaTime.Seconds = UTIL_SYSTIMDriver.BKUPRead_Seconds();
|
||||
return SysTimeAdd( sysTime, DeltaTime );
|
||||
}
|
||||
|
||||
uint32_t SysTimeMkTime( const struct tm* localtime )
|
||||
{
|
||||
uint32_t nbdays;
|
||||
uint32_t nbsecs;
|
||||
uint32_t year = localtime->tm_year - CALC_REF_YEAR;
|
||||
uint32_t correctionMonth[4] =
|
||||
{
|
||||
DAYS_IN_MONTH_CORRECTION_LEAP,
|
||||
DAYS_IN_MONTH_CORRECTION_NORM,
|
||||
DAYS_IN_MONTH_CORRECTION_NORM,
|
||||
DAYS_IN_MONTH_CORRECTION_NORM
|
||||
};
|
||||
|
||||
nbdays = DIVC( ( TM_DAYS_IN_YEAR * 3 + TM_DAYS_IN_LEAP_YEAR ) * year, 4 );
|
||||
|
||||
nbdays += ( DIVC_BY_2( ( localtime->tm_mon ) * ( 30 + 31 ) ) -
|
||||
( ( ( correctionMonth[year % 4] >> ( ( localtime->tm_mon ) * 2 ) ) & 0x03 ) ) );
|
||||
|
||||
nbdays += ( localtime->tm_mday - 1 );
|
||||
|
||||
// Convert from days to seconds
|
||||
nbsecs = nbdays * TM_SECONDS_IN_1DAY;
|
||||
|
||||
nbsecs += ( ( uint32_t )localtime->tm_sec +
|
||||
( ( uint32_t )localtime->tm_min * TM_SECONDS_IN_1MINUTE ) +
|
||||
( ( uint32_t )localtime->tm_hour * TM_SECONDS_IN_1HOUR ) );
|
||||
return nbsecs - CALC_REF_YEAR_TO_UNIX_REF_YEAR_COMPENSATION_IN_SECONDS;
|
||||
}
|
||||
|
||||
void SysTimeLocalTime( const uint32_t timestamp, struct tm *localtime )
|
||||
{
|
||||
uint32_t correctionMonth[4] =
|
||||
{
|
||||
DAYS_IN_MONTH_CORRECTION_LEAP,
|
||||
DAYS_IN_MONTH_CORRECTION_NORM,
|
||||
DAYS_IN_MONTH_CORRECTION_NORM,
|
||||
DAYS_IN_MONTH_CORRECTION_NORM
|
||||
};
|
||||
uint32_t weekDays = 1; // Monday 1st January 1968
|
||||
uint32_t seconds;
|
||||
uint32_t minutes;
|
||||
uint32_t days;
|
||||
uint32_t divOut;
|
||||
uint32_t divReminder;
|
||||
|
||||
CalendarDiv86400( timestamp + CALC_REF_YEAR_TO_UNIX_REF_YEAR_COMPENSATION_IN_SECONDS, &days, &seconds );
|
||||
|
||||
// Calculates seconds
|
||||
CalendarDiv60( seconds, &minutes, &divReminder );
|
||||
localtime->tm_sec = ( uint8_t )divReminder;
|
||||
|
||||
// Calculates minutes and hours
|
||||
CalendarDiv60( minutes, &divOut, &divReminder);
|
||||
localtime->tm_min = ( uint8_t )divReminder;
|
||||
localtime->tm_hour = ( uint8_t )divOut;
|
||||
|
||||
// Calculates year
|
||||
localtime->tm_year = DIV_365_25( days );
|
||||
days-= DIVC_BY_4( ( TM_DAYS_IN_YEAR * 3 + TM_DAYS_IN_LEAP_YEAR ) * localtime->tm_year );
|
||||
|
||||
localtime->tm_yday = days;
|
||||
|
||||
// Calculates month
|
||||
localtime->tm_mon = CalendarGetMonth( days, localtime->tm_year );
|
||||
|
||||
// calculates weekdays
|
||||
weekDays += DIVC_BY_4( ( localtime->tm_year * 5 ) );
|
||||
weekDays += days;
|
||||
localtime->tm_wday = MODULO_7( weekDays );
|
||||
|
||||
days -= ( DIVC_BY_2( ( localtime->tm_mon ) * ( 30 + 31 ) ) -
|
||||
( ( ( correctionMonth[localtime->tm_year % 4] >> ( ( localtime->tm_mon ) * 2 ) ) & 0x03 ) ) );
|
||||
|
||||
// Convert 0 to 1 indexed.
|
||||
localtime->tm_mday = days + 1;
|
||||
|
||||
localtime->tm_year += CALC_REF_YEAR;
|
||||
|
||||
localtime->tm_isdst = -1;
|
||||
}
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/**************************** Private functions *******************************/
|
||||
|
||||
/**
|
||||
* @addtogroup SYSTIME_private_function
|
||||
*
|
||||
* @{
|
||||
*/
|
||||
static uint32_t CalendarGetMonth( uint32_t days, uint32_t year )
|
||||
{
|
||||
uint32_t month;
|
||||
if( ( year % 4 ) == 0 )
|
||||
{ /*leap year*/
|
||||
if( days < END_OF_FEBRUARY_LEAP )
|
||||
{ // January or February
|
||||
// month = days * 2 / ( 30 + 31 );
|
||||
month = CalendarDiv61( days * 2 );
|
||||
}
|
||||
else if( days < END_OF_JULY_LEAP )
|
||||
{
|
||||
month = CalendarDiv61( ( days - END_OF_FEBRUARY_LEAP ) * 2 ) + 2;
|
||||
}
|
||||
else
|
||||
{
|
||||
month = CalendarDiv61( ( days - END_OF_JULY_LEAP ) * 2 ) + 7;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if( days < END_OF_FEBRUARY_NORM )
|
||||
{ // January or February
|
||||
month = CalendarDiv61( days * 2 );
|
||||
}
|
||||
else if( days < END_OF_JULY_NORM )
|
||||
{
|
||||
month = CalendarDiv61( ( days - END_OF_FEBRUARY_NORM ) * 2 ) + 2;
|
||||
}
|
||||
else
|
||||
{
|
||||
month = CalendarDiv61( ( days - END_OF_JULY_NORM ) * 2 ) + 7;
|
||||
}
|
||||
}
|
||||
return month;
|
||||
}
|
||||
|
||||
static void CalendarDiv86400( uint32_t in, uint32_t* out, uint32_t* remainder )
|
||||
{
|
||||
#if 0
|
||||
*remainder = in % SECONDS_IN_1DAY;
|
||||
*out = in / SECONDS_IN_1DAY;
|
||||
#else
|
||||
uint32_t outTemp = 0;
|
||||
uint32_t divResult = DIV_APPROX_86400( in );
|
||||
|
||||
while( divResult >=1 )
|
||||
{
|
||||
outTemp += divResult;
|
||||
in -= divResult * 86400;
|
||||
divResult= DIV_APPROX_86400( in );
|
||||
}
|
||||
if( in >= 86400 )
|
||||
{
|
||||
outTemp += 1;
|
||||
in -= 86400;
|
||||
}
|
||||
|
||||
*remainder = in;
|
||||
*out = outTemp;
|
||||
#endif
|
||||
}
|
||||
|
||||
static uint32_t CalendarDiv61( uint32_t in )
|
||||
{
|
||||
#if 0
|
||||
return( in / 61 );
|
||||
#else
|
||||
uint32_t outTemp = 0;
|
||||
uint32_t divResult = DIV_APPROX_61( in );
|
||||
while( divResult >=1 )
|
||||
{
|
||||
outTemp += divResult;
|
||||
in -= divResult * 61;
|
||||
divResult = DIV_APPROX_61( in );
|
||||
}
|
||||
if( in >= 61 )
|
||||
{
|
||||
outTemp += 1;
|
||||
in -= 61;
|
||||
}
|
||||
return outTemp;
|
||||
#endif
|
||||
}
|
||||
|
||||
static void CalendarDiv60( uint32_t in, uint32_t* out, uint32_t* remainder )
|
||||
{
|
||||
#if 0
|
||||
*remainder = in % 60;
|
||||
*out = in / 60;
|
||||
#else
|
||||
uint32_t outTemp = 0;
|
||||
uint32_t divResult = DIV_APPROX_60( in );
|
||||
|
||||
while( divResult >=1 )
|
||||
{
|
||||
outTemp += divResult;
|
||||
in -= divResult * 60;
|
||||
divResult = DIV_APPROX_60( in );
|
||||
}
|
||||
if( in >= 60 )
|
||||
{
|
||||
outTemp += 1;
|
||||
in -= 60;
|
||||
}
|
||||
*remainder = in;
|
||||
*out = outTemp;
|
||||
#endif
|
||||
}
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
252
Utilities/misc/stm32_systime.h
Normal file
@@ -0,0 +1,252 @@
|
||||
/*!
|
||||
* \file stm32_systime.h
|
||||
*
|
||||
* \brief System time functions implementation
|
||||
*
|
||||
* \copyright Revised BSD License, see section \ref LICENSE.
|
||||
*
|
||||
* \code
|
||||
* ______ _
|
||||
* / _____) _ | |
|
||||
* ( (____ _____ ____ _| |_ _____ ____| |__
|
||||
* \____ \| ___ | (_ _) ___ |/ ___) _ \
|
||||
* _____) ) ____| | | || |_| ____( (___| | | |
|
||||
* (______/|_____)_|_|_| \__)_____)\____)_| |_|
|
||||
* (C)2013-2018 Semtech - STMicroelectronics
|
||||
*
|
||||
* \endcode
|
||||
*
|
||||
* \author Miguel Luis ( Semtech )
|
||||
*
|
||||
* \author Gregory Cristian ( Semtech )
|
||||
*
|
||||
* \author MCD Application Team ( STMicroelectronics International )
|
||||
*/
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file stm32_systime.h
|
||||
* @author MCD Application Team
|
||||
* @brief System time functions implementation
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* Copyright (c) 2019 STMicroelectronics.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This software is licensed under terms that can be found in the LICENSE file
|
||||
* in the root directory of this software component.
|
||||
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
/* Define to prevent recursive inclusion -------------------------------------*/
|
||||
#ifndef __STM32_SYS_TIME_H__
|
||||
#define __STM32_SYS_TIME_H__
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
/** @defgroup SYSTIME timer server
|
||||
* @{
|
||||
*/
|
||||
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
#include <stdint.h>
|
||||
#include "time.h"
|
||||
|
||||
|
||||
/* Exported constants --------------------------------------------------------*/
|
||||
/** @defgroup SYSTIME_exported_constants SYSTIME exported constants
|
||||
* @{
|
||||
*/
|
||||
|
||||
/*!
|
||||
* @brief Days, Hours, Minutes and seconds of systime.h
|
||||
*/
|
||||
#define TM_DAYS_IN_LEAP_YEAR ( ( uint32_t ) 366U )
|
||||
#define TM_DAYS_IN_YEAR ( ( uint32_t ) 365U )
|
||||
#define TM_SECONDS_IN_1DAY ( ( uint32_t )86400U )
|
||||
#define TM_SECONDS_IN_1HOUR ( ( uint32_t ) 3600U )
|
||||
#define TM_SECONDS_IN_1MINUTE ( ( uint32_t ) 60U )
|
||||
#define TM_MINUTES_IN_1HOUR ( ( uint32_t ) 60U )
|
||||
#define TM_HOURS_IN_1DAY ( ( uint32_t ) 24U )
|
||||
|
||||
/*!
|
||||
* @brief Months of systime.h
|
||||
*/
|
||||
#define TM_MONTH_JANUARY ( ( uint8_t ) 0U )
|
||||
#define TM_MONTH_FEBRUARY ( ( uint8_t ) 1U )
|
||||
#define TM_MONTH_MARCH ( ( uint8_t ) 2U )
|
||||
#define TM_MONTH_APRIL ( ( uint8_t ) 3U )
|
||||
#define TM_MONTH_MAY ( ( uint8_t ) 4U )
|
||||
#define TM_MONTH_JUNE ( ( uint8_t ) 5U )
|
||||
#define TM_MONTH_JULY ( ( uint8_t ) 6U )
|
||||
#define TM_MONTH_AUGUST ( ( uint8_t ) 7U )
|
||||
#define TM_MONTH_SEPTEMBER ( ( uint8_t ) 8U )
|
||||
#define TM_MONTH_OCTOBER ( ( uint8_t ) 9U )
|
||||
#define TM_MONTH_NOVEMBER ( ( uint8_t )10U )
|
||||
#define TM_MONTH_DECEMBER ( ( uint8_t )11U )
|
||||
|
||||
/*!
|
||||
* @brief Week days of systime.h
|
||||
*/
|
||||
#define TM_WEEKDAY_SUNDAY ( ( uint8_t )0U )
|
||||
#define TM_WEEKDAY_MONDAY ( ( uint8_t )1U )
|
||||
#define TM_WEEKDAY_TUESDAY ( ( uint8_t )2U )
|
||||
#define TM_WEEKDAY_WEDNESDAY ( ( uint8_t )3U )
|
||||
#define TM_WEEKDAY_THURSDAY ( ( uint8_t )4U )
|
||||
#define TM_WEEKDAY_FRIDAY ( ( uint8_t )5U )
|
||||
#define TM_WEEKDAY_SATURDAY ( ( uint8_t )6U )
|
||||
|
||||
/*!
|
||||
* @brief Number of seconds elapsed between Unix epoch and GPS epoch
|
||||
*/
|
||||
#define UNIX_GPS_EPOCH_OFFSET 315964800
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/* External Typedef --------------------------------------------------------*/
|
||||
|
||||
/** @defgroup SYSTIME_exported_TypeDef SYSTIME exported Typedef
|
||||
* @{
|
||||
*/
|
||||
/**
|
||||
* @brief Structure holding the system time in seconds and milliseconds.
|
||||
*/
|
||||
typedef struct SysTime_s
|
||||
{
|
||||
uint32_t Seconds;
|
||||
int16_t SubSeconds;
|
||||
}SysTime_t;
|
||||
|
||||
/**
|
||||
* @brief SysTime driver definition
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
void (*BKUPWrite_Seconds) ( uint32_t Seconds); /*!< Set the timer differencebetween real time and rtc time */
|
||||
uint32_t (*BKUPRead_Seconds) ( void ); /*!< Get the timer differencebetween real time and rtc time */
|
||||
void (*BKUPWrite_SubSeconds) ( uint32_t SubSeconds); /*!< Set the timer differencebetween real time and rtc time */
|
||||
uint32_t (*BKUPRead_SubSeconds) ( void ); /*!< Get the timer differencebetween real time and rtc time */
|
||||
uint32_t (*GetCalendarTime)( uint16_t* SubSeconds ); /*!< Set the rtc time */
|
||||
} UTIL_SYSTIM_Driver_s;
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/* Exported macros -----------------------------------------------------------*/
|
||||
/* Exported variables ------------------------------------------------------------*/
|
||||
|
||||
/** @defgroup SYSTIME_exported_Variable SYSTIME exported Variable
|
||||
* @{
|
||||
*/
|
||||
/**
|
||||
* @brief low layer interface to handle systim
|
||||
*
|
||||
* @remark This structure is defined and initialized in the specific platform
|
||||
* timer implementation e.g rtc
|
||||
*/
|
||||
extern const UTIL_SYSTIM_Driver_s UTIL_SYSTIMDriver;
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/* Exported functions ------------------------------------------------------- */
|
||||
/** @defgroup SYSTIME_exported_function SYSTIME exported function
|
||||
* @{
|
||||
*/
|
||||
|
||||
/*!
|
||||
* @brief Adds 2 SysTime_t values
|
||||
*
|
||||
* @param a Value
|
||||
* @param b Value to added
|
||||
*
|
||||
* @retval result Addition result (SysTime_t value)
|
||||
*/
|
||||
SysTime_t SysTimeAdd( SysTime_t a, SysTime_t b );
|
||||
|
||||
/*!
|
||||
* @brief Subtracts 2 SysTime_t values
|
||||
*
|
||||
* @param a Value
|
||||
* @param b Value to be subtracted
|
||||
*
|
||||
* @retval result Subtraction result (SysTime_t value)
|
||||
*/
|
||||
SysTime_t SysTimeSub( SysTime_t a, SysTime_t b );
|
||||
|
||||
/*!
|
||||
* @brief Sets new system time
|
||||
*
|
||||
* @param sysTime New seconds/sub-seconds since UNIX epoch origin
|
||||
*/
|
||||
void SysTimeSet( SysTime_t sysTime );
|
||||
|
||||
/*!
|
||||
* @brief Gets current system time
|
||||
*
|
||||
* @retval sysTime Current seconds/sub-seconds since UNIX epoch origin
|
||||
*/
|
||||
SysTime_t SysTimeGet( void );
|
||||
|
||||
/*!
|
||||
* @brief Gets current MCU system time
|
||||
*
|
||||
* @retval sysTime Current seconds/sub-seconds since Mcu started
|
||||
*/
|
||||
SysTime_t SysTimeGetMcuTime( void );
|
||||
|
||||
/*!
|
||||
* Converts the given SysTime to the equivalent RTC value in milliseconds
|
||||
*
|
||||
* @param [IN] sysTime System time to be converted
|
||||
*
|
||||
* @retval timeMs The RTC converted time value in ms
|
||||
*/
|
||||
uint32_t SysTimeToMs( SysTime_t sysTime );
|
||||
|
||||
/*!
|
||||
* Converts the given RTC value in milliseconds to the equivalent SysTime
|
||||
*
|
||||
* \param [IN] timeMs The RTC time value in ms to be converted
|
||||
*
|
||||
* \retval sysTime Converted system time
|
||||
*/
|
||||
SysTime_t SysTimeFromMs( uint32_t timeMs );
|
||||
|
||||
/*!
|
||||
* @brief Convert a calendar time into time since UNIX epoch as a uint32_t.
|
||||
*
|
||||
* @param [IN] localtime Pointer to the object containing the calendar time
|
||||
* @retval timestamp The calendar time as seconds since UNIX epoch.
|
||||
*/
|
||||
uint32_t SysTimeMkTime( const struct tm* localtime );
|
||||
|
||||
/*!
|
||||
* @brief Converts a given time in seconds since UNIX epoch into calendar time.
|
||||
*
|
||||
* @param [IN] timestamp The time since UNIX epoch to convert into calendar time.
|
||||
* @param [OUT] localtime Pointer to the calendar time object which will contain
|
||||
the result of the conversion.
|
||||
*/
|
||||
void SysTimeLocalTime( const uint32_t timestamp, struct tm *localtime );
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __STM32_SYS_TIME_H__ */
|
||||
992
Utilities/misc/stm32_tiny_sscanf.c
Normal file
@@ -0,0 +1,992 @@
|
||||
/**
|
||||
* Copyright (c) 1990 The Regents of the University of California.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms are permitted
|
||||
* provided that the above copyright notice and this paragraph are
|
||||
* duplicated in all such forms and that any documentation,
|
||||
* advertising materials, and other materials related to such
|
||||
* distribution and use acknowledge that the software was developed
|
||||
* by the University of California, Berkeley. The name of the
|
||||
* University may not be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
|
||||
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
*/
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file stm32_tiny_sscanf.c
|
||||
* @author MCD Application Team
|
||||
* @brief Tiny implementation of sscanf
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* Copyright (c) 2019 STMicroelectronics.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This software is licensed under terms that can be found in the LICENSE file
|
||||
* in the root directory of this software component.
|
||||
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
* This code is derived from
|
||||
* https://github.com/rapid7/metasploit-payloads/, in c/meterpreter/source/bionic/libc/stdio/sscanf.c
|
||||
* It has been derived in order to optimize code size. In this context
|
||||
* all the formats are not supported. Current supported formats are
|
||||
* %hx, %hhx, %ul, %d,...
|
||||
* when TINY_SSCANF is defined
|
||||
*
|
||||
* When TINY_NO_OX is defined, this is not possible to sscanf("%x") of "0xab",
|
||||
* only "ab" is possible
|
||||
*
|
||||
* When TINY_SPACE_NOT_SPECIALCASE is defined, "space" is not a special character.
|
||||
* That means that we expect a single space, and not any of ispace() character
|
||||
* (space, tabs,...)
|
||||
*/
|
||||
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdarg.h>
|
||||
#include <stdint.h>
|
||||
#include <stdlib.h>
|
||||
#include <inttypes.h>
|
||||
#include "stm32_tiny_sscanf.h"
|
||||
|
||||
/* Private typedef -----------------------------------------------------------*/
|
||||
/* Private defines -----------------------------------------------------------*/
|
||||
#define TINY_SSCANF
|
||||
#define TINY_NO_OX
|
||||
#define TINY_SPACE_NOT_SPECIALCASE
|
||||
|
||||
/* Private macros ------------------------------------------------------------*/
|
||||
/* Private variables ---------------------------------------------------------*/
|
||||
/* Functions Definition ------------------------------------------------------*/
|
||||
|
||||
#ifdef FLOATING_POINT
|
||||
#include "floatio.h"
|
||||
#endif
|
||||
|
||||
|
||||
#define BUF 513 /* Maximum length of numeric string. */
|
||||
|
||||
/*
|
||||
* Flags used during conversion.
|
||||
*/
|
||||
#define LONG 0x00001 /* l: long or double */
|
||||
#define SHORT 0x00004 /* h: short */
|
||||
#define SHORTSHORT 0x00008 /* hh: 8 bit integer */
|
||||
#define UNSIGNED 0x00800 /* %[oupxX] conversions */
|
||||
#ifdef TINY_SSCANF
|
||||
#else
|
||||
#define LONGDBL 0x00002 /* L: long double; unimplemented */
|
||||
#define LLONG 0x00010 /* ll: long long (+ deprecated q: quad) */
|
||||
#define POINTER 0x00020 /* p: void * (as hex) */
|
||||
#define SIZEINT 0x00040 /* z: (signed) size_t */
|
||||
#define MAXINT 0x00080 /* j: intmax_t */
|
||||
#define PTRINT 0x00100 /* t: ptrdiff_t */
|
||||
#define NOSKIP 0x00200 /* [ or c: do not skip blanks */
|
||||
#define SUPPRESS 0x00400 /* *: suppress assignment */
|
||||
#endif
|
||||
|
||||
/*
|
||||
* The following are used in numeric conversions only:
|
||||
* SIGNOK, HAVESIGN, NDIGITS, DPTOK, and EXPOK are for floating point;
|
||||
* SIGNOK, HAVESIGN, NDIGITS, PFXOK, and NZDIGITS are for integral.
|
||||
*/
|
||||
#define SIGNOK 0x01000 /* +/- is (still) legal */
|
||||
#define HAVESIGN 0x02000 /* sign detected */
|
||||
#define NDIGITS 0x04000 /* no digits detected */
|
||||
|
||||
#define DPTOK 0x08000 /* (float) decimal point is still legal */
|
||||
#define EXPOK 0x10000 /* (float) exponent (e+3, etc) still legal */
|
||||
|
||||
#ifdef TINY_NO_OX
|
||||
#else
|
||||
#define PFXOK 0x08000 /* 0x prefix is (still) legal */
|
||||
#define NZDIGITS 0x10000 /* no zero digits detected */
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Conversion types.
|
||||
*/
|
||||
#define CT_INT 3 /* integer, i.e., strtoimax or strtoumax */
|
||||
#define CT_FLOAT 4 /* floating, i.e., strtod */
|
||||
|
||||
#ifdef TINY_SSCANF
|
||||
#else
|
||||
#define CT_CHAR 0 /* %c conversion */
|
||||
#define CT_CCL 1 /* %[...] conversion */
|
||||
#define CT_STRING 2 /* %s conversion */
|
||||
#endif
|
||||
|
||||
#define u_char unsigned char
|
||||
#define u_long unsigned long
|
||||
|
||||
#ifdef TINY_SSCANF
|
||||
#else
|
||||
static u_char *__sccl(char *, u_char *);
|
||||
#endif
|
||||
|
||||
#define VFSCANF tiny_vfscanf
|
||||
|
||||
#if !defined(VFSCANF)
|
||||
#define VFSCANF vfscanf
|
||||
#endif
|
||||
|
||||
|
||||
#define __srefill(_x) 1
|
||||
#define ungetc(_c, _fp) do { (_c), fp_p--; fp_r++; } while (0)
|
||||
|
||||
|
||||
/*
|
||||
* vfscanf
|
||||
*/
|
||||
|
||||
static inline int
|
||||
VFSCANF(const char *str, const char *fmt0, va_list ap)
|
||||
{
|
||||
u_char *fmt = (u_char *)fmt0;
|
||||
int c; /* character from format, or conversion */
|
||||
size_t width; /* field width, or 0 */
|
||||
char *p; /* points into all kinds of strings */
|
||||
int flags; /* flags as defined above */
|
||||
int nassigned; /* number of fields assigned */
|
||||
int nread; /* number of characters consumed from fp */
|
||||
int base; /* base argument to strtoimax/strtouimax */
|
||||
char buf[BUF]; /* buffer for numeric conversions */
|
||||
const char *fp_p;
|
||||
int fp_r;
|
||||
uintmax_t value;
|
||||
int sign_minus;
|
||||
|
||||
|
||||
#ifdef TINY_SSCANF
|
||||
#else
|
||||
int n; /* handy integer */
|
||||
char *p0; /* saves original value of p when necessary */
|
||||
char ccltab[256]; /* character class table for %[...] */
|
||||
#endif
|
||||
|
||||
/* `basefix' is used to avoid `if' tests in the integer scanner */
|
||||
#ifdef TINY_SSCANF
|
||||
/* basefix[] can be removed as we do not support %i */
|
||||
#else
|
||||
static short basefix[17] =
|
||||
{ 10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 };
|
||||
#endif
|
||||
|
||||
fp_p = str;
|
||||
fp_r = strlen(str);
|
||||
|
||||
nassigned = 0;
|
||||
nread = 0;
|
||||
base = 0; /* XXX just to keep gcc happy */
|
||||
for (;;) {
|
||||
c = *fmt++;
|
||||
if (c == 0)
|
||||
return (nassigned);
|
||||
#ifdef TINY_SPACE_NOT_SPECIALCASE
|
||||
#else
|
||||
if (isspace(c)) {
|
||||
while ((fp_r > 0 || __srefill(fp) == 0) &&
|
||||
isspace(*fp_p))
|
||||
nread++, fp_r--, fp_p++;
|
||||
continue;
|
||||
}
|
||||
#endif
|
||||
if (c != '%')
|
||||
goto literal;
|
||||
width = 0;
|
||||
flags = 0;
|
||||
/*
|
||||
* switch on the format. continue if done;
|
||||
* break once format type is derived.
|
||||
*/
|
||||
again: c = *fmt++;
|
||||
switch (c) {
|
||||
case '%':
|
||||
literal:
|
||||
if (fp_r <= 0 && __srefill(fp))
|
||||
goto input_failure;
|
||||
if (*fp_p != c)
|
||||
goto match_failure;
|
||||
fp_r--, fp_p++;
|
||||
nread++;
|
||||
continue;
|
||||
|
||||
#ifdef TINY_SSCANF
|
||||
#else
|
||||
case '*':
|
||||
flags |= SUPPRESS;
|
||||
goto again;
|
||||
case 'j':
|
||||
flags |= MAXINT;
|
||||
goto again;
|
||||
case 'L':
|
||||
flags |= LONGDBL;
|
||||
goto again;
|
||||
#endif
|
||||
case 'h':
|
||||
if (*fmt == 'h') {
|
||||
fmt++;
|
||||
flags |= SHORTSHORT;
|
||||
} else {
|
||||
flags |= SHORT;
|
||||
}
|
||||
goto again;
|
||||
case 'l':
|
||||
#ifdef TINY_SSCANF
|
||||
/* %ll not supported */
|
||||
flags |= LONG;
|
||||
goto again;
|
||||
#else
|
||||
if (*fmt == 'l') {
|
||||
fmt++;
|
||||
flags |= LLONG;
|
||||
} else {
|
||||
flags |= LONG;
|
||||
}
|
||||
goto again;
|
||||
#endif
|
||||
|
||||
#ifdef TINY_SSCANF
|
||||
#else
|
||||
case 'q':
|
||||
flags |= LLONG; /* deprecated */
|
||||
goto again;
|
||||
case 't':
|
||||
flags |= PTRINT;
|
||||
goto again;
|
||||
case 'z':
|
||||
flags |= SIZEINT;
|
||||
goto again;
|
||||
#endif
|
||||
case '0': case '1': case '2': case '3': case '4':
|
||||
case '5': case '6': case '7': case '8': case '9':
|
||||
width = width * 10 + c - '0';
|
||||
goto again;
|
||||
|
||||
/*
|
||||
* Conversions.
|
||||
* Those marked `compat' are for 4.[123]BSD compatibility.
|
||||
*
|
||||
* (According to ANSI, E and X formats are supposed
|
||||
* to the same as e and x. Sorry about that.)
|
||||
*/
|
||||
case 'D': /* compat */
|
||||
flags |= LONG;
|
||||
/* FALLTHROUGH */
|
||||
case 'd':
|
||||
c = CT_INT;
|
||||
base = 10;
|
||||
break;
|
||||
|
||||
#ifdef TINY_SSCANF
|
||||
/*
|
||||
* We do not support %i to remove potential base=8 in the following
|
||||
* Hence basefix can be removed
|
||||
*/
|
||||
#else
|
||||
case 'i':
|
||||
c = CT_INT;
|
||||
base = 0;
|
||||
break;
|
||||
#endif
|
||||
|
||||
#ifdef TINY_SSCANF
|
||||
#else
|
||||
case 'O': /* compat */
|
||||
flags |= LONG;
|
||||
/* FALLTHROUGH */
|
||||
case 'o':
|
||||
c = CT_INT;
|
||||
flags |= UNSIGNED;
|
||||
base = 8;
|
||||
break;
|
||||
#endif
|
||||
|
||||
case 'u':
|
||||
c = CT_INT;
|
||||
flags |= UNSIGNED;
|
||||
base = 10;
|
||||
break;
|
||||
|
||||
case 'X':
|
||||
case 'x':
|
||||
#ifdef TINY_NO_OX
|
||||
#else
|
||||
flags |= PFXOK; /* enable 0x prefixing */
|
||||
#endif
|
||||
c = CT_INT;
|
||||
flags |= UNSIGNED;
|
||||
base = 16;
|
||||
break;
|
||||
|
||||
#ifdef FLOATING_POINT
|
||||
case 'E':
|
||||
case 'G':
|
||||
case 'e':
|
||||
case 'f':
|
||||
case 'g':
|
||||
c = CT_FLOAT;
|
||||
break;
|
||||
#endif
|
||||
|
||||
#ifdef TINY_SSCANF
|
||||
#else
|
||||
case 's':
|
||||
c = CT_STRING;
|
||||
break;
|
||||
|
||||
case '[':
|
||||
fmt = __sccl(ccltab, fmt);
|
||||
flags |= NOSKIP;
|
||||
c = CT_CCL;
|
||||
break;
|
||||
|
||||
case 'c':
|
||||
flags |= NOSKIP;
|
||||
c = CT_CHAR;
|
||||
break;
|
||||
|
||||
case 'p': /* pointer format is like hex */
|
||||
flags |= POINTER | PFXOK;
|
||||
c = CT_INT;
|
||||
flags |= UNSIGNED;
|
||||
base = 16;
|
||||
break;
|
||||
|
||||
case 'n':
|
||||
if (flags & SUPPRESS)
|
||||
continue;
|
||||
if (flags & SHORTSHORT)
|
||||
*va_arg(ap, char *) = nread;
|
||||
else if (flags & SHORT)
|
||||
*va_arg(ap, short *) = nread;
|
||||
else if (flags & LONG)
|
||||
*va_arg(ap, long *) = nread;
|
||||
else if (flags & SIZEINT)
|
||||
*va_arg(ap, size_t *) = nread;
|
||||
else if (flags & PTRINT)
|
||||
*va_arg(ap, ptrdiff_t *) = nread;
|
||||
else if (flags & LLONG)
|
||||
*va_arg(ap, long long *) = nread;
|
||||
else if (flags & MAXINT)
|
||||
*va_arg(ap, intmax_t *) = nread;
|
||||
else
|
||||
*va_arg(ap, int *) = nread;
|
||||
continue;
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Disgusting backwards compatibility hacks. XXX
|
||||
*/
|
||||
case '\0': /* compat */
|
||||
return (EOF);
|
||||
|
||||
default: /* compat */
|
||||
#ifdef TINY_SSCANF
|
||||
#else
|
||||
if (isupper(c))
|
||||
flags |= LONG;
|
||||
c = CT_INT;
|
||||
base = 10;
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
|
||||
/*
|
||||
* We have a conversion that requires input.
|
||||
*/
|
||||
if (fp_r <= 0 && __srefill(fp))
|
||||
goto input_failure;
|
||||
|
||||
|
||||
/*
|
||||
* Consume leading white space, except for formats
|
||||
* that suppress this.
|
||||
*/
|
||||
#ifdef TINY_SSCANF
|
||||
#else
|
||||
if ((flags & NOSKIP) == 0) {
|
||||
while (isspace(*fp_p)) {
|
||||
nread++;
|
||||
if (--fp_r > 0)
|
||||
fp_p++;
|
||||
else if (__srefill(fp))
|
||||
goto input_failure;
|
||||
}
|
||||
/*
|
||||
* Note that there is at least one character in
|
||||
* the buffer, so conversions that do not set NOSKIP
|
||||
* ca no longer result in an input failure.
|
||||
*/
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Do the conversion.
|
||||
*/
|
||||
switch (c) {
|
||||
#ifdef TINY_SSCANF
|
||||
#else
|
||||
case CT_CHAR:
|
||||
/* scan arbitrary characters (sets NOSKIP) */
|
||||
if (width == 0)
|
||||
width = 1;
|
||||
if (flags & SUPPRESS) {
|
||||
size_t sum = 0;
|
||||
for (;;) {
|
||||
if ((n = fp_r) < (int)width) {
|
||||
sum += n;
|
||||
width -= n;
|
||||
fp_p += n;
|
||||
if (__srefill(fp)) {
|
||||
if (sum == 0)
|
||||
goto input_failure;
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
sum += width;
|
||||
fp_r -= width;
|
||||
fp_p += width;
|
||||
break;
|
||||
}
|
||||
}
|
||||
nread += sum;
|
||||
} else {
|
||||
size_t r = fread((void *)va_arg(ap, char *), 1,
|
||||
width, fp);
|
||||
|
||||
if (r == 0)
|
||||
goto input_failure;
|
||||
nread += r;
|
||||
nassigned++;
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
|
||||
#ifdef TINY_SSCANF
|
||||
#else
|
||||
case CT_CCL:
|
||||
/* scan a (nonempty) character class (sets NOSKIP) */
|
||||
if (width == 0)
|
||||
width = (size_t)~0; /* `infinity' */
|
||||
/* take only those things in the class */
|
||||
if (flags & SUPPRESS) {
|
||||
n = 0;
|
||||
while (ccltab[*fp_p]) {
|
||||
n++, fp_r--, fp_p++;
|
||||
if (--width == 0)
|
||||
break;
|
||||
if (fp_r <= 0 && __srefill(fp)) {
|
||||
if (n == 0)
|
||||
goto input_failure;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (n == 0)
|
||||
goto match_failure;
|
||||
} else {
|
||||
p0 = p = va_arg(ap, char *);
|
||||
while (ccltab[*fp_p]) {
|
||||
fp_r--;
|
||||
*p++ = *fp_p++;
|
||||
if (--width == 0)
|
||||
break;
|
||||
if (fp_r <= 0 && __srefill(fp)) {
|
||||
if (p == p0)
|
||||
goto input_failure;
|
||||
break;
|
||||
}
|
||||
}
|
||||
n = p - p0;
|
||||
if (n == 0)
|
||||
goto match_failure;
|
||||
*p = '\0';
|
||||
nassigned++;
|
||||
}
|
||||
nread += n;
|
||||
break;
|
||||
#endif
|
||||
|
||||
#ifdef TINY_SSCANF
|
||||
#else
|
||||
case CT_STRING:
|
||||
/* like CCL, but zero-length string OK, & no NOSKIP */
|
||||
if (width == 0)
|
||||
width = (size_t)~0;
|
||||
if (flags & SUPPRESS) {
|
||||
n = 0;
|
||||
while (!isspace(*fp_p)) {
|
||||
n++, fp_r--, fp_p++;
|
||||
if (--width == 0)
|
||||
break;
|
||||
if (fp_r <= 0 && __srefill(fp))
|
||||
break;
|
||||
}
|
||||
nread += n;
|
||||
} else {
|
||||
p0 = p = va_arg(ap, char *);
|
||||
while (!isspace(*fp_p)) {
|
||||
fp_r--;
|
||||
*p++ = *fp_p++;
|
||||
if (--width == 0)
|
||||
break;
|
||||
if (fp_r <= 0 && __srefill(fp))
|
||||
break;
|
||||
}
|
||||
*p = '\0';
|
||||
nread += p - p0;
|
||||
nassigned++;
|
||||
}
|
||||
continue;
|
||||
#endif
|
||||
|
||||
case CT_INT:
|
||||
/* scan an integer as if by strtoimax/strtoumax */
|
||||
#ifdef hardway
|
||||
if (width == 0 || width > sizeof(buf) - 1)
|
||||
width = sizeof(buf) - 1;
|
||||
#else
|
||||
/* size_t is unsigned, hence this optimisation */
|
||||
if (--width > sizeof(buf) - 2)
|
||||
width = sizeof(buf) - 2;
|
||||
width++;
|
||||
#endif
|
||||
|
||||
#ifdef TINY_NO_OX
|
||||
flags |= SIGNOK | NDIGITS;
|
||||
#else
|
||||
flags |= SIGNOK | NDIGITS | NZDIGITS;
|
||||
#endif
|
||||
|
||||
sign_minus = 0;
|
||||
value = 0;
|
||||
for (p = buf; width; width--) {
|
||||
c = *fp_p;
|
||||
/*
|
||||
* Switch on the character; `goto ok'
|
||||
* if we accept it as a part of number.
|
||||
*/
|
||||
switch (c) {
|
||||
|
||||
/*
|
||||
* The digit 0 is always legal, but is
|
||||
* special. For %i conversions, if no
|
||||
* digits (zero or nonzero) have been
|
||||
* scanned (only signs), we will have
|
||||
* base==0. In that case, we should set
|
||||
* it to 8 and enable 0x prefixing.
|
||||
* Also, if we have not scanned zero digits
|
||||
* before this, do not turn off prefixing
|
||||
* (someone else will turn it off if we
|
||||
* have scanned any nonzero digits).
|
||||
*/
|
||||
case '0':
|
||||
#ifdef TINY_NO_OX
|
||||
/* FALLTHROUGH */
|
||||
#else
|
||||
#ifdef TINY_SSCANF
|
||||
#else
|
||||
if (base == 0) {
|
||||
base = 8;
|
||||
flags |= PFXOK;
|
||||
}
|
||||
#endif
|
||||
if (!(flags & NDIGITS)) {
|
||||
value = value * base;
|
||||
}
|
||||
|
||||
if (flags & NZDIGITS)
|
||||
flags &= ~(SIGNOK|NZDIGITS|NDIGITS);
|
||||
else
|
||||
flags &= ~(SIGNOK|PFXOK|NDIGITS);
|
||||
goto ok;
|
||||
#endif
|
||||
|
||||
#ifdef TINY_SSCANF
|
||||
/* we only support base 10 and 16 */
|
||||
case '1': case '2': case '3':
|
||||
case '4': case '5': case '6': case '7':
|
||||
case '8': case '9':
|
||||
#ifdef TINY_NO_OX
|
||||
flags &= ~(SIGNOK | NDIGITS);
|
||||
#else
|
||||
flags &= ~(SIGNOK | PFXOK | NDIGITS);
|
||||
#endif
|
||||
value = value * base + c - '0';
|
||||
goto ok;
|
||||
#else
|
||||
/* 1 through 7 always legal */
|
||||
case '1': case '2': case '3':
|
||||
case '4': case '5': case '6': case '7':
|
||||
base = basefix[base];
|
||||
flags &= ~(SIGNOK | PFXOK | NDIGITS);
|
||||
value = value * base + c - '0';
|
||||
goto ok;
|
||||
|
||||
/* digits 8 and 9 ok iff decimal or hex */
|
||||
case '8': case '9':
|
||||
base = basefix[base];
|
||||
if (base <= 8)
|
||||
break; /* not legal here */
|
||||
flags &= ~(SIGNOK | PFXOK | NDIGITS);
|
||||
value = value * base + c - '0';
|
||||
goto ok;
|
||||
#endif
|
||||
|
||||
/* letters ok iff hex */
|
||||
case 'A': case 'B': case 'C':
|
||||
case 'D': case 'E': case 'F':
|
||||
/* no need to fix base here */
|
||||
if (base <= 10)
|
||||
break; /* not legal here */
|
||||
#ifdef TINY_NO_OX
|
||||
flags &= ~(SIGNOK | NDIGITS);
|
||||
#else
|
||||
flags &= ~(SIGNOK | PFXOK | NDIGITS);
|
||||
#endif
|
||||
value = value * base + c - 'A' + 10;
|
||||
goto ok;
|
||||
|
||||
case 'a': case 'b': case 'c':
|
||||
case 'd': case 'e': case 'f':
|
||||
/* no need to fix base here */
|
||||
if (base <= 10)
|
||||
break; /* not legal here */
|
||||
#ifdef TINY_NO_OX
|
||||
flags &= ~(SIGNOK | NDIGITS);
|
||||
#else
|
||||
flags &= ~(SIGNOK | PFXOK | NDIGITS);
|
||||
#endif
|
||||
value = value * base + c - 'a' + 10;
|
||||
goto ok;
|
||||
|
||||
/* sign ok only as first character */
|
||||
case '-':
|
||||
if (!(flags & HAVESIGN)) {
|
||||
sign_minus = 1;
|
||||
}
|
||||
/* FALLTHROUGH */
|
||||
case '+':
|
||||
if (flags & SIGNOK) {
|
||||
flags &= ~SIGNOK;
|
||||
flags |= HAVESIGN;
|
||||
goto ok;
|
||||
}
|
||||
break;
|
||||
|
||||
/*
|
||||
* x ok iff flag still set and 2nd char (or
|
||||
* 3rd char if we have a sign).
|
||||
*/
|
||||
#ifdef TINY_NO_OX
|
||||
#else
|
||||
case 'x': case 'X':
|
||||
if ((flags & PFXOK) && p ==
|
||||
buf + 1 + !!(flags & HAVESIGN)) {
|
||||
base = 16; /* if %i */
|
||||
flags &= ~PFXOK;
|
||||
goto ok;
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
}
|
||||
|
||||
/*
|
||||
* If we got here, c is not a legal character
|
||||
* for a number. Stop accumulating digits.
|
||||
*/
|
||||
break;
|
||||
ok:
|
||||
/*
|
||||
* c is legal: store it and look at the next.
|
||||
*/
|
||||
*p++ = c;
|
||||
if (--fp_r > 0)
|
||||
fp_p++;
|
||||
else if (__srefill(fp))
|
||||
break; /* EOF */
|
||||
}
|
||||
/*
|
||||
* If we had only a sign, it is no good; push
|
||||
* back the sign. If the number ends in `x',
|
||||
* it was [sign] '0' 'x', so push back the x
|
||||
* and treat it as [sign] '0'.
|
||||
*/
|
||||
if (flags & NDIGITS) {
|
||||
if (p > buf)
|
||||
{
|
||||
--c;
|
||||
--p;
|
||||
ungetc(c++, fp);
|
||||
/* There is a dummy post-increment to
|
||||
avoid an unused value warning */
|
||||
}
|
||||
goto match_failure;
|
||||
}
|
||||
#ifdef TINY_NO_OX
|
||||
#else
|
||||
c = ((u_char *)p)[-1];
|
||||
if (c == 'x' || c == 'X') {
|
||||
--p;
|
||||
ungetc(c, fp);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef TINY_SSCANF
|
||||
{
|
||||
#else
|
||||
if ((flags & SUPPRESS) == 0) {
|
||||
#endif
|
||||
|
||||
*p = '\0';
|
||||
if (sign_minus)
|
||||
value = -value;
|
||||
|
||||
#ifdef TINY_SSCANF
|
||||
#else
|
||||
if (flags & POINTER)
|
||||
*va_arg(ap, void **) =
|
||||
(void *)(uintptr_t)value;
|
||||
else if (flags & MAXINT)
|
||||
*va_arg(ap, intmax_t *) = value;
|
||||
else if (flags & LLONG)
|
||||
*va_arg(ap, long long *) = value;
|
||||
else if (flags & SIZEINT)
|
||||
*va_arg(ap, size_t *) = value;
|
||||
else if (flags & PTRINT)
|
||||
*va_arg(ap, ptrdiff_t *) = value;
|
||||
else
|
||||
#endif
|
||||
if (flags & LONG)
|
||||
*va_arg(ap, long *) = value;
|
||||
else if (flags & SHORT)
|
||||
*va_arg(ap, short *) = value;
|
||||
else if (flags & SHORTSHORT)
|
||||
*va_arg(ap, char *) = value;
|
||||
else
|
||||
*va_arg(ap, int *) = value;
|
||||
nassigned++;
|
||||
}
|
||||
nread += p - buf;
|
||||
break;
|
||||
|
||||
#ifdef FLOATING_POINT
|
||||
case CT_FLOAT:
|
||||
/* scan a floating point number as if by strtod */
|
||||
#ifdef hardway
|
||||
if (width == 0 || width > sizeof(buf) - 1)
|
||||
width = sizeof(buf) - 1;
|
||||
#else
|
||||
/* size_t is unsigned, hence this optimisation */
|
||||
if (--width > sizeof(buf) - 2)
|
||||
width = sizeof(buf) - 2;
|
||||
width++;
|
||||
#endif
|
||||
flags |= SIGNOK | NDIGITS | DPTOK | EXPOK;
|
||||
for (p = buf; width; width--) {
|
||||
c = *fp->_p;
|
||||
/*
|
||||
* This code mimics the integer conversion
|
||||
* code, but is much simpler.
|
||||
*/
|
||||
switch (c) {
|
||||
|
||||
case '0': case '1': case '2': case '3':
|
||||
case '4': case '5': case '6': case '7':
|
||||
case '8': case '9':
|
||||
flags &= ~(SIGNOK | NDIGITS);
|
||||
goto fok;
|
||||
|
||||
case '+': case '-':
|
||||
if (flags & SIGNOK) {
|
||||
flags &= ~SIGNOK;
|
||||
goto fok;
|
||||
}
|
||||
break;
|
||||
case '.':
|
||||
if (flags & DPTOK) {
|
||||
flags &= ~(SIGNOK | DPTOK);
|
||||
goto fok;
|
||||
}
|
||||
break;
|
||||
case 'e': case 'E':
|
||||
/* no exponent without some digits */
|
||||
if ((flags&(NDIGITS|EXPOK)) == EXPOK) {
|
||||
flags =
|
||||
(flags & ~(EXPOK|DPTOK)) |
|
||||
SIGNOK | NDIGITS;
|
||||
goto fok;
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
fok:
|
||||
*p++ = c;
|
||||
if (--fp->_r > 0)
|
||||
fp->_p++;
|
||||
else if (__srefill(fp))
|
||||
break; /* EOF */
|
||||
}
|
||||
/*
|
||||
* If no digits, might be missing exponent digits
|
||||
* (just give back the exponent) or might be missing
|
||||
* regular digits, but had sign and/or decimal point.
|
||||
*/
|
||||
if (flags & NDIGITS) {
|
||||
if (flags & EXPOK) {
|
||||
/* no digits at all */
|
||||
while (p > buf)
|
||||
ungetc(*(u_char *)--p, fp);
|
||||
goto match_failure;
|
||||
}
|
||||
/* just a bad exponent (e and maybe sign) */
|
||||
c = *(u_char *)--p;
|
||||
if (c != 'e' && c != 'E') {
|
||||
(void) ungetc(c, fp);/* sign */
|
||||
c = *(u_char *)--p;
|
||||
}
|
||||
(void) ungetc(c, fp);
|
||||
}
|
||||
if ((flags & SUPPRESS) == 0) {
|
||||
double res;
|
||||
|
||||
*p = '\0';
|
||||
res = strtod(buf, (char **) NULL);
|
||||
if (flags & LONGDBL)
|
||||
*va_arg(ap, long double *) = res;
|
||||
else if (flags & LONG)
|
||||
*va_arg(ap, double *) = res;
|
||||
else
|
||||
*va_arg(ap, float *) = res;
|
||||
nassigned++;
|
||||
}
|
||||
nread += p - buf;
|
||||
break;
|
||||
#endif /* FLOATING_POINT */
|
||||
}
|
||||
}
|
||||
input_failure:
|
||||
return (nassigned ? nassigned : -1);
|
||||
match_failure:
|
||||
return (nassigned);
|
||||
}
|
||||
|
||||
#ifdef TINY_SSCANF
|
||||
#else
|
||||
/*
|
||||
* Fill in the given table from the scanset at the given format
|
||||
* (just after `['). Return a pointer to the character past the
|
||||
* closing `]'. The table has a 1 wherever characters should be
|
||||
* considered part of the scanset.
|
||||
*/
|
||||
static u_char *
|
||||
__sccl(char *tab, u_char *fmt)
|
||||
{
|
||||
int c, n, v;
|
||||
|
||||
/* first `clear' the whole table */
|
||||
c = *fmt++; /* first char hat => negated scanset */
|
||||
if (c == '^') {
|
||||
v = 1; /* default => accept */
|
||||
c = *fmt++; /* get new first char */
|
||||
} else
|
||||
v = 0; /* default => reject */
|
||||
/* should probably use memset here */
|
||||
for (n = 0; n < 256; n++)
|
||||
tab[n] = v;
|
||||
if (c == 0)
|
||||
return (fmt - 1);/* format ended before closing ] */
|
||||
|
||||
/*
|
||||
* Now set the entries corresponding to the actual scanset
|
||||
* to the opposite of the above.
|
||||
*
|
||||
* The first character may be ']' (or '-') without being special;
|
||||
* the last character may be '-'.
|
||||
*/
|
||||
v = 1 - v;
|
||||
for (;;) {
|
||||
tab[c] = v; /* take character c */
|
||||
doswitch:
|
||||
n = *fmt++; /* and examine the next */
|
||||
switch (n) {
|
||||
|
||||
case 0: /* format ended too soon */
|
||||
return (fmt - 1);
|
||||
|
||||
case '-':
|
||||
/*
|
||||
* A scanset of the form
|
||||
* [01+-]
|
||||
* is defined as `the digit 0, the digit 1,
|
||||
* the character +, the character -', but
|
||||
* the effect of a scanset such as
|
||||
* [a-zA-Z0-9]
|
||||
* is implementation defined. The V7 Unix
|
||||
* scanf treats `a-z' as `the letters a through
|
||||
* z', but treats `a-a' as `the letter a, the
|
||||
* character -, and the letter a'.
|
||||
*
|
||||
* For compatibility, the `-' is not considered
|
||||
* to define a range if the character following
|
||||
* it is either a close bracket (required by ANSI)
|
||||
* or is not numerically greater than the character
|
||||
* we just stored in the table (c).
|
||||
*/
|
||||
n = *fmt;
|
||||
if (n == ']' || n < c) {
|
||||
c = '-';
|
||||
break; /* resume the for(;;) */
|
||||
}
|
||||
fmt++;
|
||||
do { /* fill in the range */
|
||||
tab[++c] = v;
|
||||
} while (c < n);
|
||||
#if 1 /* XXX another disgusting compatibility hack */
|
||||
/*
|
||||
* Alas, the V7 Unix scanf also treats formats
|
||||
* such as [a-c-e] as `the letters a through e'.
|
||||
* This too is permitted by the standard....
|
||||
*/
|
||||
goto doswitch;
|
||||
#else
|
||||
c = *fmt++;
|
||||
if (c == 0)
|
||||
return (fmt - 1);
|
||||
if (c == ']')
|
||||
return (fmt);
|
||||
#endif
|
||||
break;
|
||||
|
||||
case ']': /* end of scanset */
|
||||
return (fmt);
|
||||
|
||||
default: /* just another character */
|
||||
c = n;
|
||||
break;
|
||||
}
|
||||
}
|
||||
/* NOTREACHED */
|
||||
}
|
||||
#endif
|
||||
|
||||
int
|
||||
tiny_sscanf(const char *str, const char *fmt, ...)
|
||||
{
|
||||
int ret;
|
||||
va_list ap;
|
||||
|
||||
va_start(ap, fmt);
|
||||
ret = tiny_vfscanf(str, fmt, ap);
|
||||
va_end(ap);
|
||||
return (ret);
|
||||
}
|
||||
65
Utilities/misc/stm32_tiny_sscanf.h
Normal file
@@ -0,0 +1,65 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file stm32_tiny_sscanf.h
|
||||
* @author MCD Application Team
|
||||
* @brief Header for driver tiny_sscanf.c module
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* Copyright (c) 2019 STMicroelectronics.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This software is licensed under terms that can be found in the LICENSE file
|
||||
* in the root directory of this software component.
|
||||
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
/* Define to prevent recursive inclusion -------------------------------------*/
|
||||
#ifndef __STM32_TINY_SSCANF_H__
|
||||
#define __STM32_TINY_SSCANF_H__
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
/* Exported types ------------------------------------------------------------*/
|
||||
/* Exported constants --------------------------------------------------------*/
|
||||
/* External variables --------------------------------------------------------*/
|
||||
/* Exported macros -----------------------------------------------------------*/
|
||||
/* Exported functions ------------------------------------------------------- */
|
||||
|
||||
/**
|
||||
* @brief Read formatted data from string
|
||||
*
|
||||
* Reads data from s and stores them according to parameter format into the
|
||||
* locations given by the additional arguments, as if scanf was used, but
|
||||
* reading from s instead of the standard input (stdin).
|
||||
*
|
||||
* The additional arguments should point to already allocated objects of the
|
||||
* type specified by their corresponding format specifier within the format string.
|
||||
*
|
||||
* @param C string that the function processes as its source to retrieve the data.
|
||||
* @param C string that contains a format string that follows the same specifications
|
||||
* as format in scanf (see scanf for details).
|
||||
* @param Depending on the format string, the function may expect a sequence of
|
||||
* additional arguments, each containing a pointer to allocated storage
|
||||
* where the interpretation of the extracted characters is stored with
|
||||
* the appropriate type.
|
||||
* There should be at least as many of these arguments as the number of
|
||||
* values stored by the format specifiers. Additional arguments are
|
||||
* ignored by the function.
|
||||
* @retval The number of items in the argument list successfully filled. This
|
||||
* count can match the expected number of items or be less (even zero)
|
||||
* in the case of a matching failure
|
||||
* @note Current supported formats are %hx, %hhx, %ul, %d,...
|
||||
*/
|
||||
int tiny_sscanf(const char *str, const char *fmt, ...);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __STM32_TINY_SSCANF_H__ */
|
||||
695
Utilities/misc/stm32_tiny_vsnprintf.c
Normal file
@@ -0,0 +1,695 @@
|
||||
/**
|
||||
Copyright (C) 2002 Michael Ringgaard. All rights reserved.
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
3. Neither the name of the project nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
|
||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGE.
|
||||
*/
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file stm32_tiny_vsnprintf.c
|
||||
* @author MCD Application Team
|
||||
* @brief Tiny implementation of vsnprintf like function
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* Copyright (c) 2019 STMicroelectronics.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This software is licensed under terms that can be found in the LICENSE file
|
||||
* in the root directory of this software component.
|
||||
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
/*
|
||||
* Following implementation is adapted from original one
|
||||
* https://github.com/jpbonn/coremark_lm32/blob/master/ee_printf.c
|
||||
*/
|
||||
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
#include "stm32_tiny_vsnprintf.h"
|
||||
|
||||
/* Private typedef -----------------------------------------------------------*/
|
||||
/* Private defines -----------------------------------------------------------*/
|
||||
#define TINY_PRINTF
|
||||
|
||||
#define ZEROPAD (1<<0) /* Pad with zero */
|
||||
#define SIGN (1<<1) /* Unsigned/signed long */
|
||||
#define UPPERCASE (1<<6) /* 'ABCDEF' */
|
||||
#ifdef TINY_PRINTF
|
||||
#else
|
||||
#define PLUS (1<<2) /* Show plus */
|
||||
#define HEX_PREP (1<<5) /* 0x */
|
||||
#define SPACE (1<<3) /* Spacer */
|
||||
#define LEFT (1<<4) /* Left justified */
|
||||
#endif
|
||||
|
||||
#define is_digit(c) ((c) >= '0' && (c) <= '9')
|
||||
|
||||
/* Private macros ------------------------------------------------------------*/
|
||||
/* Private variables ---------------------------------------------------------*/
|
||||
/* Global variables ----------------------------------------------------------*/
|
||||
/* Private function prototypes -----------------------------------------------*/
|
||||
|
||||
static char *lower_digits = "0123456789abcdefghijklmnopqrstuvwxyz";
|
||||
static char *upper_digits = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
||||
|
||||
/* Functions Definition ------------------------------------------------------*/
|
||||
#ifdef TINY_PRINTF
|
||||
#else
|
||||
static size_t strnlen(const char *s, size_t count);
|
||||
|
||||
static size_t strnlen(const char *s, size_t count)
|
||||
{
|
||||
const char *sc;
|
||||
for (sc = s; *sc != '\0' && count--; ++sc);
|
||||
return sc - s;
|
||||
}
|
||||
#endif
|
||||
|
||||
static int ee_skip_atoi(const char **s)
|
||||
{
|
||||
int i = 0;
|
||||
while (is_digit(**s)) i = i*10 + *((*s)++) - '0';
|
||||
return i;
|
||||
}
|
||||
|
||||
#define ASSIGN_STR(_c) do { *str++ = (_c); max_size--; if (max_size == 0) return str; } while (0)
|
||||
|
||||
static char *ee_number(char *str, int max_size, long num, int base, int size, int precision, int type)
|
||||
{
|
||||
char c;
|
||||
char sign, tmp[66];
|
||||
char *dig = lower_digits;
|
||||
int i;
|
||||
|
||||
if (type & UPPERCASE) dig = upper_digits;
|
||||
#ifdef TINY_PRINTF
|
||||
#else
|
||||
if (type & LEFT) type &= ~ZEROPAD;
|
||||
#endif
|
||||
if (base < 2 || base > 36) return 0;
|
||||
|
||||
c = (type & ZEROPAD) ? '0' : ' ';
|
||||
sign = 0;
|
||||
if (type & SIGN)
|
||||
{
|
||||
if (num < 0)
|
||||
{
|
||||
sign = '-';
|
||||
num = -num;
|
||||
size--;
|
||||
}
|
||||
#ifdef TINY_PRINTF
|
||||
#else
|
||||
else if (type & PLUS)
|
||||
{
|
||||
sign = '+';
|
||||
size--;
|
||||
}
|
||||
else if (type & SPACE)
|
||||
{
|
||||
sign = ' ';
|
||||
size--;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef TINY_PRINTF
|
||||
#else
|
||||
if (type & HEX_PREP)
|
||||
{
|
||||
if (base == 16)
|
||||
size -= 2;
|
||||
else if (base == 8)
|
||||
size--;
|
||||
}
|
||||
#endif
|
||||
|
||||
i = 0;
|
||||
|
||||
if (num == 0)
|
||||
tmp[i++] = '0';
|
||||
else
|
||||
{
|
||||
while (num != 0)
|
||||
{
|
||||
tmp[i++] = dig[((unsigned long) num) % (unsigned) base];
|
||||
num = ((unsigned long) num) / (unsigned) base;
|
||||
}
|
||||
}
|
||||
|
||||
if (i > precision) precision = i;
|
||||
size -= precision;
|
||||
if (!(type & (ZEROPAD /* TINY option | LEFT */))) while (size-- > 0) ASSIGN_STR(' ');
|
||||
if (sign) ASSIGN_STR(sign);
|
||||
|
||||
#ifdef TINY_PRINTF
|
||||
#else
|
||||
if (type & HEX_PREP)
|
||||
{
|
||||
if (base == 8)
|
||||
ASSIGN_STR('0');
|
||||
else if (base == 16)
|
||||
{
|
||||
ASSIGN_STR('0');
|
||||
ASSIGN_STR(lower_digits[33]);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef TINY_PRINTF
|
||||
while (size-- > 0) ASSIGN_STR(c);
|
||||
#else
|
||||
if (!(type & LEFT)) while (size-- > 0) ASSIGN_STR(c);
|
||||
#endif
|
||||
while (i < precision--) ASSIGN_STR('0');
|
||||
while (i-- > 0) ASSIGN_STR(tmp[i]);
|
||||
while (size-- > 0) ASSIGN_STR(' ');
|
||||
|
||||
return str;
|
||||
}
|
||||
|
||||
#ifdef TINY_PRINTF
|
||||
#else
|
||||
static char *eaddr(char *str, unsigned char *addr, int size, int precision, int type)
|
||||
{
|
||||
char tmp[24];
|
||||
char *dig = lower_digits;
|
||||
int i, len;
|
||||
|
||||
if (type & UPPERCASE) dig = upper_digits;
|
||||
len = 0;
|
||||
for (i = 0; i < 6; i++)
|
||||
{
|
||||
if (i != 0) tmp[len++] = ':';
|
||||
tmp[len++] = dig[addr[i] >> 4];
|
||||
tmp[len++] = dig[addr[i] & 0x0F];
|
||||
}
|
||||
|
||||
if (!(type & LEFT)) while (len < size--) *str++ = ' ';
|
||||
for (i = 0; i < len; ++i) *str++ = tmp[i];
|
||||
while (len < size--) *str++ = ' ';
|
||||
|
||||
return str;
|
||||
}
|
||||
|
||||
static char *iaddr(char *str, unsigned char *addr, int size, int precision, int type)
|
||||
{
|
||||
char tmp[24];
|
||||
int i, n, len;
|
||||
|
||||
len = 0;
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
if (i != 0) tmp[len++] = '.';
|
||||
n = addr[i];
|
||||
|
||||
if (n == 0)
|
||||
tmp[len++] = lower_digits[0];
|
||||
else
|
||||
{
|
||||
if (n >= 100)
|
||||
{
|
||||
tmp[len++] = lower_digits[n / 100];
|
||||
n = n % 100;
|
||||
tmp[len++] = lower_digits[n / 10];
|
||||
n = n % 10;
|
||||
}
|
||||
else if (n >= 10)
|
||||
{
|
||||
tmp[len++] = lower_digits[n / 10];
|
||||
n = n % 10;
|
||||
}
|
||||
|
||||
tmp[len++] = lower_digits[n];
|
||||
}
|
||||
}
|
||||
|
||||
if (!(type & LEFT)) while (len < size--) *str++ = ' ';
|
||||
for (i = 0; i < len; ++i) *str++ = tmp[i];
|
||||
while (len < size--) *str++ = ' ';
|
||||
|
||||
return str;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef HAS_FLOAT
|
||||
|
||||
char *ecvtbuf(double arg, int ndigits, int *decpt, int *sign, char *buf);
|
||||
char *fcvtbuf(double arg, int ndigits, int *decpt, int *sign, char *buf);
|
||||
static void ee_bufcpy(char *d, char *s, int count);
|
||||
|
||||
void ee_bufcpy(char *pd, char *ps, int count) {
|
||||
char *pe=ps+count;
|
||||
while (ps!=pe)
|
||||
*pd++=*ps++;
|
||||
}
|
||||
|
||||
static void parse_float(double value, char *buffer, char fmt, int precision)
|
||||
{
|
||||
int decpt, sign, exp, pos;
|
||||
char *fdigits = NULL;
|
||||
char cvtbuf[80];
|
||||
int capexp = 0;
|
||||
int magnitude;
|
||||
|
||||
if (fmt == 'G' || fmt == 'E')
|
||||
{
|
||||
capexp = 1;
|
||||
fmt += 'a' - 'A';
|
||||
}
|
||||
|
||||
if (fmt == 'g')
|
||||
{
|
||||
fdigits = ecvtbuf(value, precision, &decpt, &sign, cvtbuf);
|
||||
magnitude = decpt - 1;
|
||||
if (magnitude < -4 || magnitude > precision - 1)
|
||||
{
|
||||
fmt = 'e';
|
||||
precision -= 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
fmt = 'f';
|
||||
precision -= decpt;
|
||||
}
|
||||
}
|
||||
|
||||
if (fmt == 'e')
|
||||
{
|
||||
fdigits = ecvtbuf(value, precision + 1, &decpt, &sign, cvtbuf);
|
||||
|
||||
if (sign) *buffer++ = '-';
|
||||
*buffer++ = *fdigits;
|
||||
if (precision > 0) *buffer++ = '.';
|
||||
ee_bufcpy(buffer, fdigits + 1, precision);
|
||||
buffer += precision;
|
||||
*buffer++ = capexp ? 'E' : 'e';
|
||||
|
||||
if (decpt == 0)
|
||||
{
|
||||
if (value == 0.0)
|
||||
exp = 0;
|
||||
else
|
||||
exp = -1;
|
||||
}
|
||||
else
|
||||
exp = decpt - 1;
|
||||
|
||||
if (exp < 0)
|
||||
{
|
||||
*buffer++ = '-';
|
||||
exp = -exp;
|
||||
}
|
||||
else
|
||||
*buffer++ = '+';
|
||||
|
||||
buffer[2] = (exp % 10) + '0';
|
||||
exp = exp / 10;
|
||||
buffer[1] = (exp % 10) + '0';
|
||||
exp = exp / 10;
|
||||
buffer[0] = (exp % 10) + '0';
|
||||
buffer += 3;
|
||||
}
|
||||
else if (fmt == 'f')
|
||||
{
|
||||
fdigits = fcvtbuf(value, precision, &decpt, &sign, cvtbuf);
|
||||
if (sign) *buffer++ = '-';
|
||||
if (*fdigits)
|
||||
{
|
||||
if (decpt <= 0)
|
||||
{
|
||||
*buffer++ = '0';
|
||||
*buffer++ = '.';
|
||||
for (pos = 0; pos < -decpt; pos++) *buffer++ = '0';
|
||||
while (*fdigits) *buffer++ = *fdigits++;
|
||||
}
|
||||
else
|
||||
{
|
||||
pos = 0;
|
||||
while (*fdigits)
|
||||
{
|
||||
if (pos++ == decpt) *buffer++ = '.';
|
||||
*buffer++ = *fdigits++;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
*buffer++ = '0';
|
||||
if (precision > 0)
|
||||
{
|
||||
*buffer++ = '.';
|
||||
for (pos = 0; pos < precision; pos++) *buffer++ = '0';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
*buffer = '\0';
|
||||
}
|
||||
|
||||
static void decimal_point(char *buffer)
|
||||
{
|
||||
while (*buffer)
|
||||
{
|
||||
if (*buffer == '.') return;
|
||||
if (*buffer == 'e' || *buffer == 'E') break;
|
||||
buffer++;
|
||||
}
|
||||
|
||||
if (*buffer)
|
||||
{
|
||||
int n = strnlen(buffer,256);
|
||||
while (n > 0)
|
||||
{
|
||||
buffer[n + 1] = buffer[n];
|
||||
n--;
|
||||
}
|
||||
|
||||
*buffer = '.';
|
||||
}
|
||||
else
|
||||
{
|
||||
*buffer++ = '.';
|
||||
*buffer = '\0';
|
||||
}
|
||||
}
|
||||
|
||||
static void cropzeros(char *buffer)
|
||||
{
|
||||
char *stop;
|
||||
|
||||
while (*buffer && *buffer != '.') buffer++;
|
||||
if (*buffer++)
|
||||
{
|
||||
while (*buffer && *buffer != 'e' && *buffer != 'E') buffer++;
|
||||
stop = buffer--;
|
||||
while (*buffer == '0') buffer--;
|
||||
if (*buffer == '.') buffer--;
|
||||
while (buffer!=stop)
|
||||
*++buffer=0;
|
||||
}
|
||||
}
|
||||
|
||||
static char *flt(char *str, double num, int size, int precision, char fmt, int flags)
|
||||
{
|
||||
char tmp[80];
|
||||
char c, sign;
|
||||
int n, i;
|
||||
|
||||
// Left align means no zero padding
|
||||
#ifdef TINY_PRINTF
|
||||
#else
|
||||
if (flags & LEFT) flags &= ~ZEROPAD;
|
||||
#endif
|
||||
|
||||
// Determine padding and sign char
|
||||
c = (flags & ZEROPAD) ? '0' : ' ';
|
||||
sign = 0;
|
||||
if (flags & SIGN)
|
||||
{
|
||||
if (num < 0.0)
|
||||
{
|
||||
sign = '-';
|
||||
num = -num;
|
||||
size--;
|
||||
}
|
||||
#ifdef TINY_PRINTF
|
||||
#else
|
||||
else if (flags & PLUS)
|
||||
{
|
||||
sign = '+';
|
||||
size--;
|
||||
}
|
||||
else if (flags & SPACE)
|
||||
{
|
||||
sign = ' ';
|
||||
size--;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
// Compute the precision value
|
||||
if (precision < 0)
|
||||
precision = 6; // Default precision: 6
|
||||
|
||||
// Convert floating point number to text
|
||||
parse_float(num, tmp, fmt, precision);
|
||||
|
||||
#ifdef TINY_PRINTF
|
||||
#else
|
||||
if ((flags & HEX_PREP) && precision == 0) decimal_point(tmp);
|
||||
#endif
|
||||
if (fmt == 'g' && !(flags & HEX_PREP)) cropzeros(tmp);
|
||||
|
||||
n = strnlen(tmp,256);
|
||||
|
||||
// Output number with alignment and padding
|
||||
size -= n;
|
||||
if (!(flags & (ZEROPAD | LEFT))) while (size-- > 0) *str++ = ' ';
|
||||
if (sign) *str++ = sign;
|
||||
if (!(flags & LEFT)) while (size-- > 0) *str++ = c;
|
||||
for (i = 0; i < n; i++) *str++ = tmp[i];
|
||||
while (size-- > 0) *str++ = ' ';
|
||||
|
||||
return str;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#define CHECK_STR_SIZE(_buf, _str, _size) \
|
||||
if ((((_str) - (_buf)) >= ((_size)-1))) { break; }
|
||||
|
||||
int tiny_vsnprintf_like(char *buf, const int size, const char *fmt, va_list args)
|
||||
{
|
||||
unsigned long num;
|
||||
int base;
|
||||
char *str;
|
||||
int len;
|
||||
int i;
|
||||
char *s;
|
||||
|
||||
int flags; // Flags to number()
|
||||
|
||||
int field_width; // Width of output field
|
||||
int precision; // Min. # of digits for integers; max number of chars for from string
|
||||
int qualifier; // 'h', 'l', or 'L' for integer fields
|
||||
|
||||
if (size <= 0)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
for (str = buf; *fmt || ((str - buf) >= size-1); fmt++)
|
||||
{
|
||||
CHECK_STR_SIZE(buf, str, size);
|
||||
|
||||
if (*fmt != '%')
|
||||
{
|
||||
*str++ = *fmt;
|
||||
continue;
|
||||
}
|
||||
|
||||
// Process flags
|
||||
flags = 0;
|
||||
#ifdef TINY_PRINTF
|
||||
/* Support %0, but not %-, %+, %space and %# */
|
||||
fmt++;
|
||||
if (*fmt == '0')
|
||||
{
|
||||
flags |= ZEROPAD;
|
||||
}
|
||||
#else
|
||||
repeat:
|
||||
fmt++; // This also skips first '%'
|
||||
switch (*fmt)
|
||||
{
|
||||
case '-': flags |= LEFT; goto repeat;
|
||||
case '+': flags |= PLUS; goto repeat;
|
||||
case ' ': flags |= SPACE; goto repeat;
|
||||
case '#': flags |= HEX_PREP; goto repeat;
|
||||
case '0': flags |= ZEROPAD; goto repeat;
|
||||
}
|
||||
#endif
|
||||
|
||||
// Get field width
|
||||
field_width = -1;
|
||||
if (is_digit(*fmt))
|
||||
field_width = ee_skip_atoi(&fmt);
|
||||
#ifdef TINY_PRINTF
|
||||
/* Does not support %* */
|
||||
#else
|
||||
else if (*fmt == '*')
|
||||
{
|
||||
fmt++;
|
||||
field_width = va_arg(args, int);
|
||||
if (field_width < 0)
|
||||
{
|
||||
field_width = -field_width;
|
||||
flags |= LEFT;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
// Get the precision
|
||||
precision = -1;
|
||||
#ifdef TINY_PRINTF
|
||||
/* Does not support %. */
|
||||
#else
|
||||
if (*fmt == '.')
|
||||
{
|
||||
++fmt;
|
||||
if (is_digit(*fmt))
|
||||
precision = ee_skip_atoi(&fmt);
|
||||
else if (*fmt == '*')
|
||||
{
|
||||
++fmt;
|
||||
precision = va_arg(args, int);
|
||||
}
|
||||
if (precision < 0) precision = 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
// Get the conversion qualifier
|
||||
qualifier = -1;
|
||||
#ifdef TINY_PRINTF
|
||||
/* Does not support %l and %L */
|
||||
#else
|
||||
if (*fmt == 'l' || *fmt == 'L')
|
||||
{
|
||||
qualifier = *fmt;
|
||||
fmt++;
|
||||
}
|
||||
#endif
|
||||
|
||||
// Default base
|
||||
base = 10;
|
||||
|
||||
switch (*fmt)
|
||||
{
|
||||
case 'c':
|
||||
#ifdef TINY_PRINTF
|
||||
#else
|
||||
if (!(flags & LEFT))
|
||||
#endif
|
||||
while (--field_width > 0) *str++ = ' ';
|
||||
*str++ = (unsigned char) va_arg(args, int);
|
||||
#ifdef TINY_PRINTF
|
||||
#else
|
||||
while (--field_width > 0) *str++ = ' ';
|
||||
#endif
|
||||
continue;
|
||||
|
||||
case 's':
|
||||
s = va_arg(args, char *);
|
||||
if (!s) s = "<NULL>";
|
||||
#ifdef TINY_PRINTF
|
||||
len = strlen(s);
|
||||
#else
|
||||
len = strnlen(s, precision);
|
||||
if (!(flags & LEFT))
|
||||
#endif
|
||||
while (len < field_width--) *str++ = ' ';
|
||||
for (i = 0; i < len; ++i) *str++ = *s++;
|
||||
#ifdef TINY_PRINTF
|
||||
#else
|
||||
while (len < field_width--) *str++ = ' ';
|
||||
#endif
|
||||
continue;
|
||||
|
||||
#ifdef TINY_PRINTF
|
||||
/* Does not support %p, %A, %a, %o */
|
||||
#else
|
||||
case 'p':
|
||||
if (field_width == -1)
|
||||
{
|
||||
field_width = 2 * sizeof(void *);
|
||||
flags |= ZEROPAD;
|
||||
}
|
||||
str = ee_number(str, (size - (str - buf)), (unsigned long) va_arg(args, void *), 16, field_width, precision, flags);
|
||||
continue;
|
||||
|
||||
case 'A':
|
||||
flags |= UPPERCASE;
|
||||
|
||||
case 'a':
|
||||
if (qualifier == 'l')
|
||||
str = eaddr(str, va_arg(args, unsigned char *), field_width, precision, flags);
|
||||
else
|
||||
str = iaddr(str, va_arg(args, unsigned char *), field_width, precision, flags);
|
||||
continue;
|
||||
|
||||
// Integer number formats - set up the flags and "break"
|
||||
case 'o':
|
||||
base = 8;
|
||||
break;
|
||||
#endif
|
||||
|
||||
case 'X':
|
||||
flags |= UPPERCASE;
|
||||
|
||||
case 'x':
|
||||
base = 16;
|
||||
break;
|
||||
|
||||
case 'd':
|
||||
case 'i':
|
||||
flags |= SIGN;
|
||||
|
||||
case 'u':
|
||||
break;
|
||||
|
||||
#ifdef HAS_FLOAT
|
||||
|
||||
case 'f':
|
||||
str = flt(str, va_arg(args, double), field_width, precision, *fmt, flags | SIGN);
|
||||
continue;
|
||||
|
||||
#endif
|
||||
|
||||
default:
|
||||
if (*fmt != '%') *str++ = '%';
|
||||
CHECK_STR_SIZE(buf, str, size);
|
||||
if (*fmt)
|
||||
*str++ = *fmt;
|
||||
else
|
||||
--fmt;
|
||||
CHECK_STR_SIZE(buf, str, size);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (qualifier == 'l')
|
||||
num = va_arg(args, unsigned long);
|
||||
else if (flags & SIGN)
|
||||
num = va_arg(args, int);
|
||||
else
|
||||
num = va_arg(args, unsigned int);
|
||||
|
||||
str = ee_number(str, ((size - 1) - (str - buf)), num, base, field_width, precision, flags);
|
||||
}
|
||||
|
||||
*str = '\0';
|
||||
return str - buf;
|
||||
}
|
||||
60
Utilities/misc/stm32_tiny_vsnprintf.h
Normal file
@@ -0,0 +1,60 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file stm32_tiny_vsnprintf.h
|
||||
* @author MCD Application Team
|
||||
* @brief Header for tiny_vsnprintf.c module
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* Copyright (c) 2019 STMicroelectronics.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This software is licensed under terms that can be found in the LICENSE file
|
||||
* in the root directory of this software component.
|
||||
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
/* Define to prevent recursive inclusion -------------------------------------*/
|
||||
#ifndef __STM32_TINY_VSNPRINTF_H__
|
||||
#define __STM32_TINY_VSNPRINTF_H__
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
#include <stdarg.h>
|
||||
#include <string.h>
|
||||
/* Exported types ------------------------------------------------------------*/
|
||||
/* Exported constants --------------------------------------------------------*/
|
||||
/* External variables --------------------------------------------------------*/
|
||||
/* Exported functions ------------------------------------------------------- */
|
||||
|
||||
/**
|
||||
* @brief Tiny implementation of vsnprintf() like function
|
||||
*
|
||||
* It has been adapted so that:
|
||||
* - Tiny implementation, when defining TINY_PRINTF, is available. In such as case,
|
||||
* not all the format are available. Instead, only %02X, %x, %d, %u, %s and %c are available.
|
||||
* %f,, %+, %#, %- and others are excluded
|
||||
* - Provide a snprintf like implementation. The size of the buffer is provided,
|
||||
* and the length of the filled buffer is returned (not including the final '\0' char).
|
||||
* The string may be truncated
|
||||
* @param Pointer to a buffer where the resulting C-string is stored. The buffer should have a size of
|
||||
* at least n characters.
|
||||
* @param Maximum number of bytes to be used in the buffer. The generated string has a length of at
|
||||
* most n-1, leaving space for the additional terminating null character.
|
||||
* @param C string that contains a format string that follows the same specifications as format
|
||||
* in printf (see printf for details).
|
||||
* @param A value identifying a variable arguments list initialized with va_start.
|
||||
* @retval The number of written char (note that this is different from vsnprintf()
|
||||
*/
|
||||
int tiny_vsnprintf_like(char *buf, const int size, const char *fmt, va_list args);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __STM32_TINY_VSNPRINTF_H__ */
|
||||
390
Utilities/sequencer/Release_Notes.html
Normal file
@@ -0,0 +1,390 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="generator" content="pandoc" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
|
||||
<title>Release Notes for STM32 sequencer</title>
|
||||
<style>
|
||||
code{white-space: pre-wrap;}
|
||||
span.smallcaps{font-variant: small-caps;}
|
||||
span.underline{text-decoration: underline;}
|
||||
div.column{display: inline-block; vertical-align: top; width: 50%;}
|
||||
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
|
||||
ul.task-list{list-style: none;}
|
||||
.display.math{display: block; text-align: center; margin: 0.5rem auto;}
|
||||
</style>
|
||||
<link rel="stylesheet" href="_htmresc/mini-st.css" />
|
||||
<!--[if lt IE 9]>
|
||||
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
|
||||
<![endif]-->
|
||||
</head>
|
||||
<body>
|
||||
<div class="row">
|
||||
<div class="col-sm-12 col-lg-4">
|
||||
<div class="card fluid">
|
||||
<div class="sectione dark">
|
||||
<center>
|
||||
<h1 id="release-notes-for-stm32-sequencer"><small>Release Notes for</small> STM32 sequencer</h1>
|
||||
<p>Copyright © 2019 STMicroelectronics<br />
|
||||
</p>
|
||||
<a href="https://www.st.com" class="logo"><img src="_htmresc/st_logo.png" alt="ST logo" /></a>
|
||||
</center>
|
||||
</div>
|
||||
</div>
|
||||
<h1 id="purpose">Purpose</h1>
|
||||
<p>The source code delivered is an utility to help the task scheduling inside a system without OS.</p>
|
||||
</div>
|
||||
<section id="update-history" class="col-sm-12 col-lg-8">
|
||||
<h1>Update History</h1>
|
||||
<div class="collapse">
|
||||
<input type="checkbox" id="collapse-section8" checked aria-hidden="true"> <label for="collapse-section8" aria-hidden="true">v1.6.0 / 26-October-2021</label>
|
||||
<div>
|
||||
<h2 id="main-changes">Main Changes</h2>
|
||||
<h3 id="maintenance-release">Maintenance release</h3>
|
||||
<table>
|
||||
<thead>
|
||||
<tr class="header">
|
||||
<th style="text-align: left;">Headline</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="odd">
|
||||
<td style="text-align: left;">Ticket 104404 - Some events may be lost due to race conditions (rework)</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td style="text-align: left;">Ticket 115234 - [Licensing] Update the way to declare licenses in Cube and X-CUBE components</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td style="text-align: left;">Documentation update</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h2 id="known-limitations">Known Limitations</h2>
|
||||
<p>Outstanding bugs list : None</p>
|
||||
<p>Requirements not met or planned in a forthcoming release : None</p>
|
||||
<h2 id="development-toolchains-and-compilers">Development Toolchains and Compilers</h2>
|
||||
<ul>
|
||||
<li>IAR Embedded Workbench for ARM (EWARM) toolchain V8.20.2</li>
|
||||
<li>RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.25</li>
|
||||
<li>System Workbench STM32 (SW4STM32) toolchain V2.7.2</li>
|
||||
</ul>
|
||||
<h2 id="backward-compatibility">Backward compatibility</h2>
|
||||
<p>No compatibility break with previous version</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="collapse">
|
||||
<input type="checkbox" id="collapse-section8" aria-hidden="true"> <label for="collapse-section8" aria-hidden="true">v1.5.2 / 10-June-2021</label>
|
||||
<div>
|
||||
<h2 id="main-changes-1">Main Changes</h2>
|
||||
<h3 id="maintenance-release-1">Maintenance release</h3>
|
||||
<table>
|
||||
<thead>
|
||||
<tr class="header">
|
||||
<th style="text-align: left;">Headline</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="odd">
|
||||
<td style="text-align: left;">Ticket 104404 - Some events may be lost due to race conditions</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h2 id="known-limitations-1">Known Limitations</h2>
|
||||
<p>Outstanding bugs list : None</p>
|
||||
<p>Requirements not met or planned in a forthcoming release : None</p>
|
||||
<h2 id="development-toolchains-and-compilers-1">Development Toolchains and Compilers</h2>
|
||||
<ul>
|
||||
<li>IAR Embedded Workbench for ARM (EWARM) toolchain V8.20.2</li>
|
||||
<li>RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.25</li>
|
||||
<li>System Workbench STM32 (SW4STM32) toolchain V2.7.2</li>
|
||||
</ul>
|
||||
<h2 id="backward-compatibility-1">Backward compatibility</h2>
|
||||
<p>No compatibility break with previous version</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="collapse">
|
||||
<input type="checkbox" id="collapse-section8" aria-hidden="true"> <label for="collapse-section8" aria-hidden="true">v1.5.1 / 10-Sept-2020</label>
|
||||
<div>
|
||||
<h2 id="main-changes-2">Main Changes</h2>
|
||||
<h3 id="maintenance-release-2">Maintenance release</h3>
|
||||
<table>
|
||||
<thead>
|
||||
<tr class="header">
|
||||
<th style="text-align: left;">Headline</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="odd">
|
||||
<td style="text-align: left;">Ticket 86948 - CodeSpell : Correct some english words typo</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h2 id="known-limitations-2">Known Limitations</h2>
|
||||
<p>Outstanding bugs list : None</p>
|
||||
<p>Requirements not met or planned in a forthcoming release : None</p>
|
||||
<h2 id="development-toolchains-and-compilers-2">Development Toolchains and Compilers</h2>
|
||||
<ul>
|
||||
<li>IAR Embedded Workbench for ARM (EWARM) toolchain V8.20.2</li>
|
||||
<li>RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.25</li>
|
||||
<li>System Workbench STM32 (SW4STM32) toolchain V2.7.2</li>
|
||||
</ul>
|
||||
<h2 id="backward-compatibility-2">Backward compatibility</h2>
|
||||
<p>No compatibility break with previous version</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="collapse">
|
||||
<input type="checkbox" id="collapse-section7" aria-hidden="true"> <label for="collapse-section7" aria-hidden="true">v1.5.0 / 5-Sept-2020</label>
|
||||
<div>
|
||||
<h2 id="main-changes-3">Main Changes</h2>
|
||||
<h3 id="maintenance-release-3">Maintenance release</h3>
|
||||
<table>
|
||||
<thead>
|
||||
<tr class="header">
|
||||
<th style="text-align: left;">Headline</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="odd">
|
||||
<td style="text-align: left;">Ticket 91315 - Four lines of code should be under a __weak function to allow overcharge it for unprivileged mode</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td style="text-align: left;">Ticket 89624 - Utilities Releases Notes improvements - Link on openorg BSD-3-Clause</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td style="text-align: left;">Ticket 86948 - CodeSpell : Correct some english words typo</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h2 id="known-limitations-3">Known Limitations</h2>
|
||||
<p>Outstanding bugs list : None</p>
|
||||
<p>Requirements not met or planned in a forthcoming release : None</p>
|
||||
<h2 id="development-toolchains-and-compilers-3">Development Toolchains and Compilers</h2>
|
||||
<ul>
|
||||
<li>IAR Embedded Workbench for ARM (EWARM) toolchain V8.20.2</li>
|
||||
<li>RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.25</li>
|
||||
<li>System Workbench STM32 (SW4STM32) toolchain V2.7.2</li>
|
||||
</ul>
|
||||
<h2 id="backward-compatibility-3">Backward compatibility</h2>
|
||||
<p>No compatibility break with previous version</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="collapse">
|
||||
<input type="checkbox" id="collapse-section6" aria-hidden="true"> <label for="collapse-section6" aria-hidden="true">v1.4.0 / 19-Dec-2019</label>
|
||||
<div>
|
||||
<h2 id="main-changes-4">Main Changes</h2>
|
||||
<h3 id="maintenance-release-4">Maintenance release</h3>
|
||||
<table>
|
||||
<thead>
|
||||
<tr class="header">
|
||||
<th style="text-align: left;">Headline</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="odd">
|
||||
<td style="text-align: left;">Doxygen update</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td style="text-align: left;">[78010][UTILITIES][SEQ] update the function UTIL_SEQ_EvtIdle to allow the run of all tasks except the task waiting for an event</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td style="text-align: left;">[78143][UTILITIES][SEQ] UTIL_SEQ_RFU definition has been wrongly removed from UTIL_Seq.h</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td style="text-align: left;">[77834][UTILITIES][SEQ] Allow call of WaitEvent in the context of PreIdle/PostIdle</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h2 id="known-limitations-4">Known Limitations</h2>
|
||||
<p>Outstanding bugs list : None</p>
|
||||
<p>Requirements not met or planned in a forthcoming release : None</p>
|
||||
<h2 id="development-toolchains-and-compilers-4">Development Toolchains and Compilers</h2>
|
||||
<ul>
|
||||
<li>IAR Embedded Workbench for ARM (EWARM) toolchain V8.20.2</li>
|
||||
<li>RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.25</li>
|
||||
<li>System Workbench STM32 (SW4STM32) toolchain V2.7.2</li>
|
||||
</ul>
|
||||
<h2 id="backward-compatibility-4">Backward compatibility</h2>
|
||||
<p>No compatibility break with previous version</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="collapse">
|
||||
<input type="checkbox" id="collapse-section5" aria-hidden="false"> <label for="collapse-section5" aria-hidden="true">V1.3.0 / 25-Sept-2019</label>
|
||||
<div>
|
||||
<h2 id="main-changes-5">Main Changes</h2>
|
||||
<h3 id="release-v1.3.0">release V1.3.0</h3>
|
||||
<h2 id="contents">Contents</h2>
|
||||
<table>
|
||||
<caption>Fixed bugs list<br />
|
||||
</caption>
|
||||
<thead>
|
||||
<tr class="header">
|
||||
<th>Headline</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="odd">
|
||||
<td>doxygen tag insertion</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td>doxygen documentation html\index.html</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td>MISRA 2012 test</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td>Ticket 72443 - Scheduler: CurrentTaskIdx it is not correctly handled.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h2 id="known-limitations-5">known limitations</h2>
|
||||
<h2 id="development-toolchains-and-compilers-5">Development Toolchains and Compilers</h2>
|
||||
<ul>
|
||||
<li>IAR Embedded Workbench for ARM (EWARM) toolchain V8.20.2</li>
|
||||
<li>RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.25</li>
|
||||
<li>System Workbench STM32 (SW4STM32) toolchain V2.7.2</li>
|
||||
</ul>
|
||||
<h2 id="supported-devices-and-boards">Supported Devices and boards</h2>
|
||||
<h2 id="backward-compatibility-5">backward compatibility</h2>
|
||||
<h2 id="dependencies">Dependencies</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div class="collapse">
|
||||
<input type="checkbox" id="collapse-section4" aria-hidden="true"> <label for="collapse-section4" aria-hidden="true">V1.2.1 / 19-Sept-2019</label>
|
||||
<div>
|
||||
<h2 id="main-changes-6">Main Changes</h2>
|
||||
<h3 id="release-v1.2.1">release V1.2.1</h3>
|
||||
<h2 id="contents-1">Contents</h2>
|
||||
<table>
|
||||
<caption>Fixed bugs list<br />
|
||||
</caption>
|
||||
<thead>
|
||||
<tr class="header">
|
||||
<th>Headline</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="odd">
|
||||
<td>Ticket 72443 - Scheduler: CurrentTaskIdx it is not correctly handled.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h2 id="known-limitations-6">known limitations</h2>
|
||||
<h2 id="development-toolchains-and-compilers-6">Development Toolchains and Compilers</h2>
|
||||
<ul>
|
||||
<li>IAR Embedded Workbench for ARM (EWARM) toolchain V8.20.2</li>
|
||||
<li>RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.25</li>
|
||||
<li>System Workbench STM32 (SW4STM32) toolchain V2.7.2</li>
|
||||
</ul>
|
||||
<h2 id="supported-devices-and-boards-1">Supported Devices and boards</h2>
|
||||
<h2 id="backward-compatibility-6">backward compatibility</h2>
|
||||
<h2 id="dependencies-1">Dependencies</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div class="collapse">
|
||||
<input type="checkbox" id="collapse-section3" aria-hidden="true"> <label for="collapse-section3" aria-hidden="true">V1.2.0 / 24-June-2019</label>
|
||||
<div>
|
||||
<h2 id="main-changes-7">Main Changes</h2>
|
||||
<h3 id="release-v1.2.0">release V1.2.0</h3>
|
||||
<h2 id="contents-2">Contents</h2>
|
||||
<table>
|
||||
<caption>Fixed bugs list<br />
|
||||
</caption>
|
||||
<thead>
|
||||
<tr class="header">
|
||||
<th>Headline</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="odd">
|
||||
<td>Fixed to avoid infinite loop when a task is waiting for an event.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h2 id="known-limitations-7">known limitations</h2>
|
||||
<h2 id="development-toolchains-and-compilers-7">Development Toolchains and Compilers</h2>
|
||||
<ul>
|
||||
<li>IAR Embedded Workbench for ARM (EWARM) toolchain V8.20.2</li>
|
||||
<li>RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.25</li>
|
||||
<li>System Workbench STM32 (SW4STM32) toolchain V2.7.2</li>
|
||||
</ul>
|
||||
<h2 id="supported-devices-and-boards-2">Supported Devices and boards</h2>
|
||||
<h2 id="backward-compatibility-7">backward compatibility</h2>
|
||||
<h2 id="dependencies-2">Dependencies</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div class="collapse">
|
||||
<input type="checkbox" id="collapse-section2" aria-hidden="true"> <label for="collapse-section2" aria-hidden="true">V1.1.0 / 06-June-2019</label>
|
||||
<div>
|
||||
<h2 id="main-changes-8">Main Changes</h2>
|
||||
<h3 id="release-v1.1.0">release V1.1.0</h3>
|
||||
<h2 id="contents-3">Contents</h2>
|
||||
<table>
|
||||
<caption>Fixed bugs list<br />
|
||||
</caption>
|
||||
<thead>
|
||||
<tr class="header">
|
||||
<th>Headline</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="odd">
|
||||
<td>License correction.</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td>change __weak symbol by __WEAK to be compliant with AC6.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h2 id="known-limitations-8">known limitations</h2>
|
||||
<h2 id="development-toolchains-and-compilers-8">Development Toolchains and Compilers</h2>
|
||||
<ul>
|
||||
<li>IAR Embedded Workbench for ARM (EWARM) toolchain V8.20.2</li>
|
||||
<li>RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.25</li>
|
||||
<li>System Workbench STM32 (SW4STM32) toolchain V2.7.2</li>
|
||||
</ul>
|
||||
<h2 id="supported-devices-and-boards-3">Supported Devices and boards</h2>
|
||||
<h2 id="backward-compatibility-8">backward compatibility</h2>
|
||||
<h2 id="dependencies-3">Dependencies</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div class="collapse">
|
||||
<input type="checkbox" id="collapse-section1" aria-hidden="true"> <label for="collapse-section1" aria-hidden="true">V1.0.0 / 15-May-2019</label>
|
||||
<div>
|
||||
<h2 id="main-changes-9">Main Changes</h2>
|
||||
<h3 id="first-release">first release</h3>
|
||||
<h2 id="contents-4">Contents</h2>
|
||||
<table>
|
||||
<caption>Fixed bugs list<br />
|
||||
</caption>
|
||||
<thead>
|
||||
<tr class="header">
|
||||
<th>Headline</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="odd">
|
||||
<td>first version.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h2 id="known-limitations-9">known limitations</h2>
|
||||
<h2 id="development-toolchains-and-compilers-9">Development Toolchains and Compilers</h2>
|
||||
<ul>
|
||||
<li>IAR Embedded Workbench for ARM (EWARM) toolchain V8.20.2</li>
|
||||
<li>RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.25</li>
|
||||
<li>System Workbench STM32 (SW4STM32) toolchain V2.7.2</li>
|
||||
</ul>
|
||||
<h2 id="supported-devices-and-boards-4">Supported Devices and boards</h2>
|
||||
<h2 id="backward-compatibility-9">backward compatibility</h2>
|
||||
<h2 id="dependencies-4">Dependencies</h2>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<footer class="sticky">
|
||||
<p>For complete documentation on STM32,visit: [<a href="http://www.st.com">www.st.com/stm32</a>]</p>
|
||||
This release note uses up to date web standards and, for this reason, should not be opened with Internet Explorer but preferably with popular browsers such as Google Chrome, Mozilla Firefox, Opera or Microsoft Edge.
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
1700
Utilities/sequencer/_htmresc/mini-st.css
Normal file
BIN
Utilities/sequencer/_htmresc/st_logo.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
103
Utilities/sequencer/html/annotated.html
Normal file
@@ -0,0 +1,103 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<meta name="generator" content="Doxygen 1.9.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>STM32 Sequencer: Data Structures</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td id="projectalign" style="padding-left: 0.5em;">
|
||||
<div id="projectname">STM32 Sequencer
|
||||
 <span id="projectnumber">v1.6.0</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.9.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</script>
|
||||
<div id="main-nav"></div>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(document).ready(function(){initNavTree('annotated.html',''); initResizable(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<iframe src="javascript:void(0)" frameborder="0"
|
||||
name="MSearchResults" id="MSearchResults">
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">Data Structures</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="textblock">Here are the data structures with brief descriptions:</div><div class="directory">
|
||||
<table class="directory">
|
||||
<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_u_t_i_l___s_e_q___priority__t.html" target="_self">UTIL_SEQ_Priority_t</a></td><td class="desc">Structure used to manage task scheduling </td></tr>
|
||||
</table>
|
||||
</div><!-- directory -->
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
4
Utilities/sequencer/html/annotated_dup.js
Normal file
@@ -0,0 +1,4 @@
|
||||
var annotated_dup =
|
||||
[
|
||||
[ "UTIL_SEQ_Priority_t", "struct_u_t_i_l___s_e_q___priority__t.html", "struct_u_t_i_l___s_e_q___priority__t" ]
|
||||
];
|
||||
BIN
Utilities/sequencer/html/bc_s.png
Normal file
|
After Width: | Height: | Size: 676 B |
BIN
Utilities/sequencer/html/bdwn.png
Normal file
|
After Width: | Height: | Size: 147 B |
104
Utilities/sequencer/html/classes.html
Normal file
@@ -0,0 +1,104 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<meta name="generator" content="Doxygen 1.9.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>STM32 Sequencer: Data Structure Index</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td id="projectalign" style="padding-left: 0.5em;">
|
||||
<div id="projectname">STM32 Sequencer
|
||||
 <span id="projectnumber">v1.6.0</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.9.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</script>
|
||||
<div id="main-nav"></div>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(document).ready(function(){initNavTree('classes.html',''); initResizable(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<iframe src="javascript:void(0)" frameborder="0"
|
||||
name="MSearchResults" id="MSearchResults">
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">Data Structure Index</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="qindex"><a class="qindex" href="#letter_U">U</a></div>
|
||||
<div class="classindex">
|
||||
<dl class="classindex even">
|
||||
<dt class="alphachar"><a name="letter_U">U</a></dt>
|
||||
<dd><a class="el" href="struct_u_t_i_l___s_e_q___priority__t.html">UTIL_SEQ_Priority_t</a></dd></dl>
|
||||
</div>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
BIN
Utilities/sequencer/html/closed.png
Normal file
|
After Width: | Height: | Size: 132 B |
BIN
Utilities/sequencer/html/doc.png
Normal file
|
After Width: | Height: | Size: 746 B |
1793
Utilities/sequencer/html/doxygen.css
Normal file
BIN
Utilities/sequencer/html/doxygen.png
Normal file
|
After Width: | Height: | Size: 3.7 KiB |
26
Utilities/sequencer/html/doxygen.svg
Normal file
|
After Width: | Height: | Size: 15 KiB |
128
Utilities/sequencer/html/dynsections.js
Normal file
@@ -0,0 +1,128 @@
|
||||
/*
|
||||
@licstart The following is the entire license notice for the JavaScript code in this file.
|
||||
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (C) 1997-2020 by Dimitri van Heesch
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
|
||||
and associated documentation files (the "Software"), to deal in the Software without restriction,
|
||||
including without limitation the rights to use, copy, modify, merge, publish, distribute,
|
||||
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or
|
||||
substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
|
||||
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
@licend The above is the entire license notice for the JavaScript code in this file
|
||||
*/
|
||||
function toggleVisibility(linkObj)
|
||||
{
|
||||
var base = $(linkObj).attr('id');
|
||||
var summary = $('#'+base+'-summary');
|
||||
var content = $('#'+base+'-content');
|
||||
var trigger = $('#'+base+'-trigger');
|
||||
var src=$(trigger).attr('src');
|
||||
if (content.is(':visible')===true) {
|
||||
content.hide();
|
||||
summary.show();
|
||||
$(linkObj).addClass('closed').removeClass('opened');
|
||||
$(trigger).attr('src',src.substring(0,src.length-8)+'closed.png');
|
||||
} else {
|
||||
content.show();
|
||||
summary.hide();
|
||||
$(linkObj).removeClass('closed').addClass('opened');
|
||||
$(trigger).attr('src',src.substring(0,src.length-10)+'open.png');
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function updateStripes()
|
||||
{
|
||||
$('table.directory tr').
|
||||
removeClass('even').filter(':visible:even').addClass('even');
|
||||
}
|
||||
|
||||
function toggleLevel(level)
|
||||
{
|
||||
$('table.directory tr').each(function() {
|
||||
var l = this.id.split('_').length-1;
|
||||
var i = $('#img'+this.id.substring(3));
|
||||
var a = $('#arr'+this.id.substring(3));
|
||||
if (l<level+1) {
|
||||
i.removeClass('iconfopen iconfclosed').addClass('iconfopen');
|
||||
a.html('▼');
|
||||
$(this).show();
|
||||
} else if (l==level+1) {
|
||||
i.removeClass('iconfclosed iconfopen').addClass('iconfclosed');
|
||||
a.html('►');
|
||||
$(this).show();
|
||||
} else {
|
||||
$(this).hide();
|
||||
}
|
||||
});
|
||||
updateStripes();
|
||||
}
|
||||
|
||||
function toggleFolder(id)
|
||||
{
|
||||
// the clicked row
|
||||
var currentRow = $('#row_'+id);
|
||||
|
||||
// all rows after the clicked row
|
||||
var rows = currentRow.nextAll("tr");
|
||||
|
||||
var re = new RegExp('^row_'+id+'\\d+_$', "i"); //only one sub
|
||||
|
||||
// only match elements AFTER this one (can't hide elements before)
|
||||
var childRows = rows.filter(function() { return this.id.match(re); });
|
||||
|
||||
// first row is visible we are HIDING
|
||||
if (childRows.filter(':first').is(':visible')===true) {
|
||||
// replace down arrow by right arrow for current row
|
||||
var currentRowSpans = currentRow.find("span");
|
||||
currentRowSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
|
||||
currentRowSpans.filter(".arrow").html('►');
|
||||
rows.filter("[id^=row_"+id+"]").hide(); // hide all children
|
||||
} else { // we are SHOWING
|
||||
// replace right arrow by down arrow for current row
|
||||
var currentRowSpans = currentRow.find("span");
|
||||
currentRowSpans.filter(".iconfclosed").removeClass("iconfclosed").addClass("iconfopen");
|
||||
currentRowSpans.filter(".arrow").html('▼');
|
||||
// replace down arrows by right arrows for child rows
|
||||
var childRowsSpans = childRows.find("span");
|
||||
childRowsSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
|
||||
childRowsSpans.filter(".arrow").html('►');
|
||||
childRows.show(); //show all children
|
||||
}
|
||||
updateStripes();
|
||||
}
|
||||
|
||||
|
||||
function toggleInherit(id)
|
||||
{
|
||||
var rows = $('tr.inherit.'+id);
|
||||
var img = $('tr.inherit_header.'+id+' img');
|
||||
var src = $(img).attr('src');
|
||||
if (rows.filter(':first').is(':visible')===true) {
|
||||
rows.css('display','none');
|
||||
$(img).attr('src',src.substring(0,src.length-8)+'closed.png');
|
||||
} else {
|
||||
rows.css('display','table-row'); // using show() causes jump in firefox
|
||||
$(img).attr('src',src.substring(0,src.length-10)+'open.png');
|
||||
}
|
||||
}
|
||||
/* @license-end */
|
||||
|
||||
$(document).ready(function() {
|
||||
$('.code,.codeRef').each(function() {
|
||||
$(this).data('powertip',$('#a'+$(this).attr('href').replace(/.*\//,'').replace(/[^a-z_A-Z0-9]/g,'_')).html());
|
||||
$(this).powerTip({ placement: 's', smartPlacement: true, mouseOnToPopup: true });
|
||||
});
|
||||
});
|
||||
104
Utilities/sequencer/html/files.html
Normal file
@@ -0,0 +1,104 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<meta name="generator" content="Doxygen 1.9.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>STM32 Sequencer: File List</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td id="projectalign" style="padding-left: 0.5em;">
|
||||
<div id="projectname">STM32 Sequencer
|
||||
 <span id="projectnumber">v1.6.0</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.9.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</script>
|
||||
<div id="main-nav"></div>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(document).ready(function(){initNavTree('files.html',''); initResizable(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<iframe src="javascript:void(0)" frameborder="0"
|
||||
name="MSearchResults" id="MSearchResults">
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">File List</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="textblock">Here is a list of all files with brief descriptions:</div><div class="directory">
|
||||
<table class="directory">
|
||||
<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="stm32__seq_8c_source.html"><span class="icondoc"></span></a><a class="el" href="stm32__seq_8c.html" target="_self">stm32_seq.c</a></td><td class="desc">Simple sequencer implementation </td></tr>
|
||||
<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="stm32__seq_8h_source.html"><span class="icondoc"></span></a><a class="el" href="stm32__seq_8h.html" target="_self">stm32_seq.h</a></td><td class="desc">Sequencer interface </td></tr>
|
||||
</table>
|
||||
</div><!-- directory -->
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
5
Utilities/sequencer/html/files_dup.js
Normal file
@@ -0,0 +1,5 @@
|
||||
var files_dup =
|
||||
[
|
||||
[ "stm32_seq.c", "stm32__seq_8c.html", "stm32__seq_8c" ],
|
||||
[ "stm32_seq.h", "stm32__seq_8h.html", "stm32__seq_8h" ]
|
||||
];
|
||||
BIN
Utilities/sequencer/html/folderclosed.png
Normal file
|
After Width: | Height: | Size: 616 B |
BIN
Utilities/sequencer/html/folderopen.png
Normal file
|
After Width: | Height: | Size: 597 B |
102
Utilities/sequencer/html/functions.html
Normal file
@@ -0,0 +1,102 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<meta name="generator" content="Doxygen 1.9.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>STM32 Sequencer: Data Fields</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td id="projectalign" style="padding-left: 0.5em;">
|
||||
<div id="projectname">STM32 Sequencer
|
||||
 <span id="projectnumber">v1.6.0</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.9.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</script>
|
||||
<div id="main-nav"></div>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(document).ready(function(){initNavTree('functions.html',''); initResizable(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<iframe src="javascript:void(0)" frameborder="0"
|
||||
name="MSearchResults" id="MSearchResults">
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<div class="contents">
|
||||
<div class="textblock">Here is a list of all struct and union fields with links to the structures/unions they belong to:</div><ul>
|
||||
<li>priority
|
||||
: <a class="el" href="struct_u_t_i_l___s_e_q___priority__t.html#a59563315cdb7b76c8a482160851cac3f">UTIL_SEQ_Priority_t</a>
|
||||
</li>
|
||||
<li>round_robin
|
||||
: <a class="el" href="struct_u_t_i_l___s_e_q___priority__t.html#a10895a689ca10b69554ba4a822329f54">UTIL_SEQ_Priority_t</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
102
Utilities/sequencer/html/functions_vars.html
Normal file
@@ -0,0 +1,102 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<meta name="generator" content="Doxygen 1.9.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>STM32 Sequencer: Data Fields - Variables</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td id="projectalign" style="padding-left: 0.5em;">
|
||||
<div id="projectname">STM32 Sequencer
|
||||
 <span id="projectnumber">v1.6.0</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.9.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</script>
|
||||
<div id="main-nav"></div>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(document).ready(function(){initNavTree('functions_vars.html',''); initResizable(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<iframe src="javascript:void(0)" frameborder="0"
|
||||
name="MSearchResults" id="MSearchResults">
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<div class="contents">
|
||||
 <ul>
|
||||
<li>priority
|
||||
: <a class="el" href="struct_u_t_i_l___s_e_q___priority__t.html#a59563315cdb7b76c8a482160851cac3f">UTIL_SEQ_Priority_t</a>
|
||||
</li>
|
||||
<li>round_robin
|
||||
: <a class="el" href="struct_u_t_i_l___s_e_q___priority__t.html#a10895a689ca10b69554ba4a822329f54">UTIL_SEQ_Priority_t</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
195
Utilities/sequencer/html/globals.html
Normal file
@@ -0,0 +1,195 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<meta name="generator" content="Doxygen 1.9.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>STM32 Sequencer: Globals</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td id="projectalign" style="padding-left: 0.5em;">
|
||||
<div id="projectname">STM32 Sequencer
|
||||
 <span id="projectnumber">v1.6.0</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.9.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</script>
|
||||
<div id="main-nav"></div>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(document).ready(function(){initNavTree('globals.html',''); initResizable(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<iframe src="javascript:void(0)" frameborder="0"
|
||||
name="MSearchResults" id="MSearchResults">
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<div class="contents">
|
||||
<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
|
||||
|
||||
<h3><a id="index_s"></a>- s -</h3><ul>
|
||||
<li>SEQ_BitPosition()
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___private__function.html#ga7dcde6efa35f7c100af9bf4117a4bf12">stm32_seq.c</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h3><a id="index_u"></a>- u -</h3><ul>
|
||||
<li>UTIL_SEQ_ALL_BIT_SET
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___private__define.html#ga24e4c1a2fd61c0cbda16ba7f42f1703a">stm32_seq.c</a>
|
||||
</li>
|
||||
<li>UTIL_SEQ_bm_t
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">stm32_seq.h</a>
|
||||
</li>
|
||||
<li>UTIL_SEQ_ClrEvt()
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga2b48c77f677158e69ff072f7c05cded4">stm32_seq.c</a>
|
||||
</li>
|
||||
<li>UTIL_SEQ_CONF_PRIO_NBR
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___private__define.html#ga13e13f6ac2442ffb667502a9f35df865">stm32_seq.c</a>
|
||||
</li>
|
||||
<li>UTIL_SEQ_CONF_TASK_NBR
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___private__define.html#gaaf974b4a940fc6a921b3a76344e5c7ed">stm32_seq.c</a>
|
||||
</li>
|
||||
<li>UTIL_SEQ_DEFAULT
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__const.html#ga46541edfe05cb5082dec927f2bcf7b46">stm32_seq.h</a>
|
||||
</li>
|
||||
<li>UTIL_SEQ_DeInit()
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga91cceef5931daa30c4ec3a6577c11106">stm32_seq.c</a>
|
||||
</li>
|
||||
<li>UTIL_SEQ_ENTER_CRITICAL_SECTION_IDLE
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___private__define.html#ga7af4785dcb8ef602f75b2d8f423010c1">stm32_seq.c</a>
|
||||
</li>
|
||||
<li>UTIL_SEQ_EvtIdle()
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga6bd90dbfc7e3515391128d1ca1739c17">stm32_seq.c</a>
|
||||
</li>
|
||||
<li>UTIL_SEQ_EXIT_CRITICAL_SECTION_IDLE
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___private__define.html#ga2dcda5eb256d445147b385a8374cc658">stm32_seq.c</a>
|
||||
</li>
|
||||
<li>UTIL_SEQ_Idle()
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga5efb8394fc5244b650c8cc8f642e6271">stm32_seq.c</a>
|
||||
</li>
|
||||
<li>UTIL_SEQ_Init()
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#gaef07a06c105da3570c971633460a8aa5">stm32_seq.c</a>
|
||||
</li>
|
||||
<li>UTIL_SEQ_IsEvtPend()
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga8d6c2fd6aac8b833a25602ec4b8c5fc7">stm32_seq.c</a>
|
||||
</li>
|
||||
<li>UTIL_SEQ_IsPauseTask()
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#gaa177da1e5c77c8430096356181d12b18">stm32_seq.c</a>
|
||||
</li>
|
||||
<li>UTIL_SEQ_IsSchedulableTask()
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga58bf5ad581a43e749b60a811353af558">stm32_seq.c</a>
|
||||
</li>
|
||||
<li>UTIL_SEQ_MEMSET8
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___private__define.html#gad3b4f5f14f4f512725984e6da759871c">stm32_seq.c</a>
|
||||
</li>
|
||||
<li>UTIL_SEQ_NO_BIT_SET
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___private__define.html#gad03df74638c0f274fa22474f034384bf">stm32_seq.c</a>
|
||||
</li>
|
||||
<li>UTIL_SEQ_NOTASKRUNNING
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___private__define.html#ga9d782cdb4f3654c8238e9dd3adbabf16">stm32_seq.c</a>
|
||||
</li>
|
||||
<li>UTIL_SEQ_PauseTask()
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#gaad482af89f56e87da251f56d98674c02">stm32_seq.c</a>
|
||||
</li>
|
||||
<li>UTIL_SEQ_PostIdle()
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga481b45c409e4d8180c64efdef67daa7f">stm32_seq.c</a>
|
||||
</li>
|
||||
<li>UTIL_SEQ_PreIdle()
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga373387b03a48559d58eacb919f44a799">stm32_seq.c</a>
|
||||
</li>
|
||||
<li>UTIL_SEQ_RegTask()
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#gacb5ddba0d11449d470c840d0bd961c14">stm32_seq.c</a>
|
||||
</li>
|
||||
<li>UTIL_SEQ_ResumeTask()
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga66f6a7fbff82b6d397ca054bcf9350ec">stm32_seq.c</a>
|
||||
</li>
|
||||
<li>UTIL_SEQ_RFU
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__const.html#ga44641e680786c27986945f4d0589c83a">stm32_seq.h</a>
|
||||
</li>
|
||||
<li>UTIL_SEQ_Run()
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#gae047669fe53f205396460fdbd3a5d8f5">stm32_seq.c</a>
|
||||
</li>
|
||||
<li>UTIL_SEQ_SetEvt()
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga20f607dcbe03ca04f5c56a47e3cc846c">stm32_seq.c</a>
|
||||
</li>
|
||||
<li>UTIL_SEQ_SetTask()
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga66de990da4bde412751f15a7622a0da8">stm32_seq.c</a>
|
||||
</li>
|
||||
<li>UTIL_SEQ_TaskFunction
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__macro.html#gac4b0290fac7278810aa24b9be4574da1">stm32_seq.h</a>
|
||||
</li>
|
||||
<li>UTIL_SEQ_TaskParamDef
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__macro.html#ga99985a546d3297b5fd8ace7f5f045c14">stm32_seq.h</a>
|
||||
</li>
|
||||
<li>UTIL_SEQ_WaitEvt()
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga3546ca66266d5cc956741505318723a2">stm32_seq.c</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
132
Utilities/sequencer/html/globals_defs.html
Normal file
@@ -0,0 +1,132 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<meta name="generator" content="Doxygen 1.9.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>STM32 Sequencer: Globals</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td id="projectalign" style="padding-left: 0.5em;">
|
||||
<div id="projectname">STM32 Sequencer
|
||||
 <span id="projectnumber">v1.6.0</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.9.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</script>
|
||||
<div id="main-nav"></div>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(document).ready(function(){initNavTree('globals_defs.html',''); initResizable(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<iframe src="javascript:void(0)" frameborder="0"
|
||||
name="MSearchResults" id="MSearchResults">
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<div class="contents">
|
||||
 <ul>
|
||||
<li>UTIL_SEQ_ALL_BIT_SET
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___private__define.html#ga24e4c1a2fd61c0cbda16ba7f42f1703a">stm32_seq.c</a>
|
||||
</li>
|
||||
<li>UTIL_SEQ_CONF_PRIO_NBR
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___private__define.html#ga13e13f6ac2442ffb667502a9f35df865">stm32_seq.c</a>
|
||||
</li>
|
||||
<li>UTIL_SEQ_CONF_TASK_NBR
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___private__define.html#gaaf974b4a940fc6a921b3a76344e5c7ed">stm32_seq.c</a>
|
||||
</li>
|
||||
<li>UTIL_SEQ_DEFAULT
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__const.html#ga46541edfe05cb5082dec927f2bcf7b46">stm32_seq.h</a>
|
||||
</li>
|
||||
<li>UTIL_SEQ_ENTER_CRITICAL_SECTION_IDLE
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___private__define.html#ga7af4785dcb8ef602f75b2d8f423010c1">stm32_seq.c</a>
|
||||
</li>
|
||||
<li>UTIL_SEQ_EXIT_CRITICAL_SECTION_IDLE
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___private__define.html#ga2dcda5eb256d445147b385a8374cc658">stm32_seq.c</a>
|
||||
</li>
|
||||
<li>UTIL_SEQ_MEMSET8
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___private__define.html#gad3b4f5f14f4f512725984e6da759871c">stm32_seq.c</a>
|
||||
</li>
|
||||
<li>UTIL_SEQ_NO_BIT_SET
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___private__define.html#gad03df74638c0f274fa22474f034384bf">stm32_seq.c</a>
|
||||
</li>
|
||||
<li>UTIL_SEQ_NOTASKRUNNING
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___private__define.html#ga9d782cdb4f3654c8238e9dd3adbabf16">stm32_seq.c</a>
|
||||
</li>
|
||||
<li>UTIL_SEQ_RFU
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__const.html#ga44641e680786c27986945f4d0589c83a">stm32_seq.h</a>
|
||||
</li>
|
||||
<li>UTIL_SEQ_TaskFunction
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__macro.html#gac4b0290fac7278810aa24b9be4574da1">stm32_seq.h</a>
|
||||
</li>
|
||||
<li>UTIL_SEQ_TaskParamDef
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__macro.html#ga99985a546d3297b5fd8ace7f5f045c14">stm32_seq.h</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
150
Utilities/sequencer/html/globals_func.html
Normal file
@@ -0,0 +1,150 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<meta name="generator" content="Doxygen 1.9.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>STM32 Sequencer: Globals</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td id="projectalign" style="padding-left: 0.5em;">
|
||||
<div id="projectname">STM32 Sequencer
|
||||
 <span id="projectnumber">v1.6.0</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.9.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</script>
|
||||
<div id="main-nav"></div>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(document).ready(function(){initNavTree('globals_func.html',''); initResizable(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<iframe src="javascript:void(0)" frameborder="0"
|
||||
name="MSearchResults" id="MSearchResults">
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<div class="contents">
|
||||
 <ul>
|
||||
<li>SEQ_BitPosition()
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___private__function.html#ga7dcde6efa35f7c100af9bf4117a4bf12">stm32_seq.c</a>
|
||||
</li>
|
||||
<li>UTIL_SEQ_ClrEvt()
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga2b48c77f677158e69ff072f7c05cded4">stm32_seq.c</a>
|
||||
</li>
|
||||
<li>UTIL_SEQ_DeInit()
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga91cceef5931daa30c4ec3a6577c11106">stm32_seq.c</a>
|
||||
</li>
|
||||
<li>UTIL_SEQ_EvtIdle()
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga6bd90dbfc7e3515391128d1ca1739c17">stm32_seq.c</a>
|
||||
</li>
|
||||
<li>UTIL_SEQ_Idle()
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga5efb8394fc5244b650c8cc8f642e6271">stm32_seq.c</a>
|
||||
</li>
|
||||
<li>UTIL_SEQ_Init()
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#gaef07a06c105da3570c971633460a8aa5">stm32_seq.c</a>
|
||||
</li>
|
||||
<li>UTIL_SEQ_IsEvtPend()
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga8d6c2fd6aac8b833a25602ec4b8c5fc7">stm32_seq.c</a>
|
||||
</li>
|
||||
<li>UTIL_SEQ_IsPauseTask()
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#gaa177da1e5c77c8430096356181d12b18">stm32_seq.c</a>
|
||||
</li>
|
||||
<li>UTIL_SEQ_IsSchedulableTask()
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga58bf5ad581a43e749b60a811353af558">stm32_seq.c</a>
|
||||
</li>
|
||||
<li>UTIL_SEQ_PauseTask()
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#gaad482af89f56e87da251f56d98674c02">stm32_seq.c</a>
|
||||
</li>
|
||||
<li>UTIL_SEQ_PostIdle()
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga481b45c409e4d8180c64efdef67daa7f">stm32_seq.c</a>
|
||||
</li>
|
||||
<li>UTIL_SEQ_PreIdle()
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga373387b03a48559d58eacb919f44a799">stm32_seq.c</a>
|
||||
</li>
|
||||
<li>UTIL_SEQ_RegTask()
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#gacb5ddba0d11449d470c840d0bd961c14">stm32_seq.c</a>
|
||||
</li>
|
||||
<li>UTIL_SEQ_ResumeTask()
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga66f6a7fbff82b6d397ca054bcf9350ec">stm32_seq.c</a>
|
||||
</li>
|
||||
<li>UTIL_SEQ_Run()
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#gae047669fe53f205396460fdbd3a5d8f5">stm32_seq.c</a>
|
||||
</li>
|
||||
<li>UTIL_SEQ_SetEvt()
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga20f607dcbe03ca04f5c56a47e3cc846c">stm32_seq.c</a>
|
||||
</li>
|
||||
<li>UTIL_SEQ_SetTask()
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga66de990da4bde412751f15a7622a0da8">stm32_seq.c</a>
|
||||
</li>
|
||||
<li>UTIL_SEQ_WaitEvt()
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga3546ca66266d5cc956741505318723a2">stm32_seq.c</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
99
Utilities/sequencer/html/globals_type.html
Normal file
@@ -0,0 +1,99 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<meta name="generator" content="Doxygen 1.9.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>STM32 Sequencer: Globals</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td id="projectalign" style="padding-left: 0.5em;">
|
||||
<div id="projectname">STM32 Sequencer
|
||||
 <span id="projectnumber">v1.6.0</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.9.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</script>
|
||||
<div id="main-nav"></div>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(document).ready(function(){initNavTree('globals_type.html',''); initResizable(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<iframe src="javascript:void(0)" frameborder="0"
|
||||
name="MSearchResults" id="MSearchResults">
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<div class="contents">
|
||||
 <ul>
|
||||
<li>UTIL_SEQ_bm_t
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">stm32_seq.h</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
128
Utilities/sequencer/html/globals_vars.html
Normal file
@@ -0,0 +1,128 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<meta name="generator" content="Doxygen 1.8.16"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>Sequencer: Globals</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(document).ready(initResizable);
|
||||
/* @license-end */</script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td id="projectalign" style="padding-left: 0.5em;">
|
||||
<div id="projectname">Sequencer
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.16 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</script>
|
||||
<div id="main-nav"></div>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(document).ready(function(){initNavTree('globals_vars.html','');});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<iframe src="javascript:void(0)" frameborder="0"
|
||||
name="MSearchResults" id="MSearchResults">
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<div class="contents">
|
||||
 <ul>
|
||||
<li>CurrentTaskIdx
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___private__varaible.html#ga2d00e58496abe08f37dfaa2679226c35">stm32_seq.c</a>
|
||||
</li>
|
||||
<li>EvtSet
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___private__varaible.html#ga4c0c4cdb1e59756fac982daba7f66e8c">stm32_seq.c</a>
|
||||
</li>
|
||||
<li>EvtWaited
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___private__varaible.html#ga2993ab71529fc7f716b41b74c1475889">stm32_seq.c</a>
|
||||
</li>
|
||||
<li>SEQ_clz_table_4bit
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___private__function.html#gabdb22f5d7f0704e4d2bcf415e8a02e10">stm32_seq.c</a>
|
||||
</li>
|
||||
<li>SuperMask
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___private__varaible.html#ga0c890a69236d5f7438c51df3cf20c480">stm32_seq.c</a>
|
||||
</li>
|
||||
<li>TaskCb
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___private__varaible.html#ga893dc0e5ab501c52067b7eda416249aa">stm32_seq.c</a>
|
||||
</li>
|
||||
<li>TaskMask
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___private__varaible.html#ga5ac59b09d15935337ee4a154db1cde25">stm32_seq.c</a>
|
||||
</li>
|
||||
<li>TaskPrio
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___private__varaible.html#ga1a1b2fb52456411a929b68a015a66635">stm32_seq.c</a>
|
||||
</li>
|
||||
<li>TaskSet
|
||||
: <a class="el" href="group___s_e_q_u_e_n_c_e_r___private__varaible.html#gacf3f1ab2184d36d2cb57326539e3563b">stm32_seq.c</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="footer">Generated by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
121
Utilities/sequencer/html/group___s_e_q_u_e_n_c_e_r.html
Normal file
@@ -0,0 +1,121 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<meta name="generator" content="Doxygen 1.9.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>STM32 Sequencer: sequencer utilities</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td id="projectalign" style="padding-left: 0.5em;">
|
||||
<div id="projectname">STM32 Sequencer
|
||||
 <span id="projectnumber">v1.6.0</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.9.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</script>
|
||||
<div id="main-nav"></div>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(document).ready(function(){initNavTree('group___s_e_q_u_e_n_c_e_r.html',''); initResizable(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<iframe src="javascript:void(0)" frameborder="0"
|
||||
name="MSearchResults" id="MSearchResults">
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#groups">Modules</a> </div>
|
||||
<div class="headertitle">
|
||||
<div class="title">sequencer utilities</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
|
||||
Modules</h2></td></tr>
|
||||
<tr class="memitem:group___s_e_q_u_e_n_c_e_r___private__type"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___private__type.html">SEQUENCER private type</a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:group___s_e_q_u_e_n_c_e_r___private__define"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___private__define.html">SEQUENCER private defines</a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:group___s_e_q_u_e_n_c_e_r___private__varaible"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___private__varaible.html">SEQUENCER private variables</a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:group___s_e_q_u_e_n_c_e_r___private__function"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___private__function.html">SEQUENCER private functions</a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:group___s_e_q_u_e_n_c_e_r___exported__type"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html">SEQUENCER exported types</a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:group___s_e_q_u_e_n_c_e_r___exported__const"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__const.html">SEQUENCER exported constants</a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:group___s_e_q_u_e_n_c_e_r___exported__macro"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__macro.html">SEQUENCER exported macros</a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:group___s_e_q_u_e_n_c_e_r___exported__function"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html">SEQUENCER exported functions</a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
11
Utilities/sequencer/html/group___s_e_q_u_e_n_c_e_r.js
Normal file
@@ -0,0 +1,11 @@
|
||||
var group___s_e_q_u_e_n_c_e_r =
|
||||
[
|
||||
[ "SEQUENCER private type", "group___s_e_q_u_e_n_c_e_r___private__type.html", "group___s_e_q_u_e_n_c_e_r___private__type" ],
|
||||
[ "SEQUENCER private defines", "group___s_e_q_u_e_n_c_e_r___private__define.html", "group___s_e_q_u_e_n_c_e_r___private__define" ],
|
||||
[ "SEQUENCER private variables", "group___s_e_q_u_e_n_c_e_r___private__varaible.html", null ],
|
||||
[ "SEQUENCER private functions", "group___s_e_q_u_e_n_c_e_r___private__function.html", "group___s_e_q_u_e_n_c_e_r___private__function" ],
|
||||
[ "SEQUENCER exported types", "group___s_e_q_u_e_n_c_e_r___exported__type.html", "group___s_e_q_u_e_n_c_e_r___exported__type" ],
|
||||
[ "SEQUENCER exported constants", "group___s_e_q_u_e_n_c_e_r___exported__const.html", "group___s_e_q_u_e_n_c_e_r___exported__const" ],
|
||||
[ "SEQUENCER exported macros", "group___s_e_q_u_e_n_c_e_r___exported__macro.html", "group___s_e_q_u_e_n_c_e_r___exported__macro" ],
|
||||
[ "SEQUENCER exported functions", "group___s_e_q_u_e_n_c_e_r___exported__function.html", "group___s_e_q_u_e_n_c_e_r___exported__function" ]
|
||||
];
|
||||
@@ -0,0 +1,155 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<meta name="generator" content="Doxygen 1.9.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>STM32 Sequencer: SEQUENCER exported constants</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td id="projectalign" style="padding-left: 0.5em;">
|
||||
<div id="projectname">STM32 Sequencer
|
||||
 <span id="projectnumber">v1.6.0</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.9.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</script>
|
||||
<div id="main-nav"></div>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(document).ready(function(){initNavTree('group___s_e_q_u_e_n_c_e_r___exported__const.html',''); initResizable(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<iframe src="javascript:void(0)" frameborder="0"
|
||||
name="MSearchResults" id="MSearchResults">
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#define-members">Macros</a> </div>
|
||||
<div class="headertitle">
|
||||
<div class="title">SEQUENCER exported constants<div class="ingroups"><a class="el" href="group___s_e_q_u_e_n_c_e_r.html">sequencer utilities</a></div></div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
|
||||
Macros</h2></td></tr>
|
||||
<tr class="memitem:ga44641e680786c27986945f4d0589c83a"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__const.html#ga44641e680786c27986945f4d0589c83a">UTIL_SEQ_RFU</a>   0</td></tr>
|
||||
<tr class="memdesc:ga44641e680786c27986945f4d0589c83a"><td class="mdescLeft"> </td><td class="mdescRight">This provides a default value for unused parameter. <a href="group___s_e_q_u_e_n_c_e_r___exported__const.html#ga44641e680786c27986945f4d0589c83a">More...</a><br /></td></tr>
|
||||
<tr class="separator:ga44641e680786c27986945f4d0589c83a"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga46541edfe05cb5082dec927f2bcf7b46"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__const.html#ga46541edfe05cb5082dec927f2bcf7b46">UTIL_SEQ_DEFAULT</a>   (~0U)</td></tr>
|
||||
<tr class="memdesc:ga46541edfe05cb5082dec927f2bcf7b46"><td class="mdescLeft"> </td><td class="mdescRight">Default value used to start the scheduling. <a href="group___s_e_q_u_e_n_c_e_r___exported__const.html#ga46541edfe05cb5082dec927f2bcf7b46">More...</a><br /></td></tr>
|
||||
<tr class="separator:ga46541edfe05cb5082dec927f2bcf7b46"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||
<h2 class="groupheader">Macro Definition Documentation</h2>
|
||||
<a id="ga46541edfe05cb5082dec927f2bcf7b46"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga46541edfe05cb5082dec927f2bcf7b46">◆ </a></span>UTIL_SEQ_DEFAULT</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">#define UTIL_SEQ_DEFAULT   (~0U)</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Default value used to start the scheduling. </p>
|
||||
<p>This informs the sequencer that all tasks registered shall be considered</p>
|
||||
<dl class="section note"><dt>Note</dt><dd>This should be used in the application<br />
|
||||
while(1)<br />
|
||||
{<br />
|
||||
UTIL_SEQ_Run( UTIL_SEQ_DEFAULT );<br />
|
||||
}<br />
|
||||
</dd></dl>
|
||||
|
||||
<p class="definition">Definition at line <a class="el" href="stm32__seq_8h_source.html#l00076">76</a> of file <a class="el" href="stm32__seq_8h_source.html">stm32_seq.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="ga44641e680786c27986945f4d0589c83a"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga44641e680786c27986945f4d0589c83a">◆ </a></span>UTIL_SEQ_RFU</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">#define UTIL_SEQ_RFU   0</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>This provides a default value for unused parameter. </p>
|
||||
|
||||
<p class="definition">Definition at line <a class="el" href="stm32__seq_8h_source.html#l00061">61</a> of file <a class="el" href="stm32__seq_8h_source.html">stm32_seq.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,5 @@
|
||||
var group___s_e_q_u_e_n_c_e_r___exported__const =
|
||||
[
|
||||
[ "UTIL_SEQ_DEFAULT", "group___s_e_q_u_e_n_c_e_r___exported__const.html#ga46541edfe05cb5082dec927f2bcf7b46", null ],
|
||||
[ "UTIL_SEQ_RFU", "group___s_e_q_u_e_n_c_e_r___exported__const.html#ga44641e680786c27986945f4d0589c83a", null ]
|
||||
];
|
||||
@@ -0,0 +1,683 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<meta name="generator" content="Doxygen 1.9.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>STM32 Sequencer: SEQUENCER exported functions</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td id="projectalign" style="padding-left: 0.5em;">
|
||||
<div id="projectname">STM32 Sequencer
|
||||
 <span id="projectnumber">v1.6.0</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.9.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</script>
|
||||
<div id="main-nav"></div>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(document).ready(function(){initNavTree('group___s_e_q_u_e_n_c_e_r___exported__function.html',''); initResizable(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<iframe src="javascript:void(0)" frameborder="0"
|
||||
name="MSearchResults" id="MSearchResults">
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#func-members">Functions</a> </div>
|
||||
<div class="headertitle">
|
||||
<div class="title">SEQUENCER exported functions<div class="ingroups"><a class="el" href="group___s_e_q_u_e_n_c_e_r.html">sequencer utilities</a></div></div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
|
||||
Functions</h2></td></tr>
|
||||
<tr class="memitem:gaef07a06c105da3570c971633460a8aa5"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#gaef07a06c105da3570c971633460a8aa5">UTIL_SEQ_Init</a> (void)</td></tr>
|
||||
<tr class="memdesc:gaef07a06c105da3570c971633460a8aa5"><td class="mdescLeft"> </td><td class="mdescRight">This function initializes the sequencer resources. <a href="group___s_e_q_u_e_n_c_e_r___exported__function.html#gaef07a06c105da3570c971633460a8aa5">More...</a><br /></td></tr>
|
||||
<tr class="separator:gaef07a06c105da3570c971633460a8aa5"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga91cceef5931daa30c4ec3a6577c11106"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga91cceef5931daa30c4ec3a6577c11106">UTIL_SEQ_DeInit</a> (void)</td></tr>
|
||||
<tr class="memdesc:ga91cceef5931daa30c4ec3a6577c11106"><td class="mdescLeft"> </td><td class="mdescRight">This function un-initializes the sequencer resources. <a href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga91cceef5931daa30c4ec3a6577c11106">More...</a><br /></td></tr>
|
||||
<tr class="separator:ga91cceef5931daa30c4ec3a6577c11106"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:gae047669fe53f205396460fdbd3a5d8f5"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#gae047669fe53f205396460fdbd3a5d8f5">UTIL_SEQ_Run</a> (<a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a> Mask_bm)</td></tr>
|
||||
<tr class="memdesc:gae047669fe53f205396460fdbd3a5d8f5"><td class="mdescLeft"> </td><td class="mdescRight">This function requests the sequencer to execute all pending tasks using round robin mechanism. When no task are pending, it calls <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga5efb8394fc5244b650c8cc8f642e6271" title="This function is called by the sequencer in critical section (PRIMASK bit) when.">UTIL_SEQ_Idle()</a>; This function should be called in a while loop in the application. <a href="group___s_e_q_u_e_n_c_e_r___exported__function.html#gae047669fe53f205396460fdbd3a5d8f5">More...</a><br /></td></tr>
|
||||
<tr class="separator:gae047669fe53f205396460fdbd3a5d8f5"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:gacb5ddba0d11449d470c840d0bd961c14"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#gacb5ddba0d11449d470c840d0bd961c14">UTIL_SEQ_RegTask</a> (<a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a> TaskId_bm, uint32_t Flags, void(*Task)(void))</td></tr>
|
||||
<tr class="memdesc:gacb5ddba0d11449d470c840d0bd961c14"><td class="mdescLeft"> </td><td class="mdescRight">This function registers a task in the sequencer. <a href="group___s_e_q_u_e_n_c_e_r___exported__function.html#gacb5ddba0d11449d470c840d0bd961c14">More...</a><br /></td></tr>
|
||||
<tr class="separator:gacb5ddba0d11449d470c840d0bd961c14"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga66de990da4bde412751f15a7622a0da8"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga66de990da4bde412751f15a7622a0da8">UTIL_SEQ_SetTask</a> (<a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a> TaskId_bm, uint32_t Task_Prio)</td></tr>
|
||||
<tr class="memdesc:ga66de990da4bde412751f15a7622a0da8"><td class="mdescLeft"> </td><td class="mdescRight">This function requests a task to be executed. <a href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga66de990da4bde412751f15a7622a0da8">More...</a><br /></td></tr>
|
||||
<tr class="separator:ga66de990da4bde412751f15a7622a0da8"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga58bf5ad581a43e749b60a811353af558"><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga58bf5ad581a43e749b60a811353af558">UTIL_SEQ_IsSchedulableTask</a> (<a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a> TaskId_bm)</td></tr>
|
||||
<tr class="memdesc:ga58bf5ad581a43e749b60a811353af558"><td class="mdescLeft"> </td><td class="mdescRight">This function checks if a task could be scheduled. <a href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga58bf5ad581a43e749b60a811353af558">More...</a><br /></td></tr>
|
||||
<tr class="separator:ga58bf5ad581a43e749b60a811353af558"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:gaad482af89f56e87da251f56d98674c02"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#gaad482af89f56e87da251f56d98674c02">UTIL_SEQ_PauseTask</a> (<a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a> TaskId_bm)</td></tr>
|
||||
<tr class="memdesc:gaad482af89f56e87da251f56d98674c02"><td class="mdescLeft"> </td><td class="mdescRight">This function prevents a task to be called by the sequencer even when set with <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga66de990da4bde412751f15a7622a0da8" title="This function requests a task to be executed.">UTIL_SEQ_SetTask()</a> By default, all tasks are executed by the sequencer when set with <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga66de990da4bde412751f15a7622a0da8" title="This function requests a task to be executed.">UTIL_SEQ_SetTask()</a> When a task is paused, it is moved out from the sequencer list. <a href="group___s_e_q_u_e_n_c_e_r___exported__function.html#gaad482af89f56e87da251f56d98674c02">More...</a><br /></td></tr>
|
||||
<tr class="separator:gaad482af89f56e87da251f56d98674c02"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:gaa177da1e5c77c8430096356181d12b18"><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#gaa177da1e5c77c8430096356181d12b18">UTIL_SEQ_IsPauseTask</a> (<a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a> TaskId_bm)</td></tr>
|
||||
<tr class="memdesc:gaa177da1e5c77c8430096356181d12b18"><td class="mdescLeft"> </td><td class="mdescRight">This function allows to know if the task has been put in pause. By default, all tasks are executed by the sequencer when set with <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga66de990da4bde412751f15a7622a0da8" title="This function requests a task to be executed.">UTIL_SEQ_SetTask()</a> The exit of the pause shall be done by the function UTIL_SEQ_ResumeTask. <a href="group___s_e_q_u_e_n_c_e_r___exported__function.html#gaa177da1e5c77c8430096356181d12b18">More...</a><br /></td></tr>
|
||||
<tr class="separator:gaa177da1e5c77c8430096356181d12b18"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga66f6a7fbff82b6d397ca054bcf9350ec"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga66f6a7fbff82b6d397ca054bcf9350ec">UTIL_SEQ_ResumeTask</a> (<a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a> TaskId_bm)</td></tr>
|
||||
<tr class="memdesc:ga66f6a7fbff82b6d397ca054bcf9350ec"><td class="mdescLeft"> </td><td class="mdescRight">This function allows again a task to be called by the sequencer if set with <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga66de990da4bde412751f15a7622a0da8" title="This function requests a task to be executed.">UTIL_SEQ_SetTask()</a> This is used in relation with <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#gaad482af89f56e87da251f56d98674c02" title="This function prevents a task to be called by the sequencer even when set with UTIL_SEQ_SetTask() By ...">UTIL_SEQ_PauseTask()</a> <a href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga66f6a7fbff82b6d397ca054bcf9350ec">More...</a><br /></td></tr>
|
||||
<tr class="separator:ga66f6a7fbff82b6d397ca054bcf9350ec"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga20f607dcbe03ca04f5c56a47e3cc846c"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga20f607dcbe03ca04f5c56a47e3cc846c">UTIL_SEQ_SetEvt</a> (<a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a> EvtId_bm)</td></tr>
|
||||
<tr class="memdesc:ga20f607dcbe03ca04f5c56a47e3cc846c"><td class="mdescLeft"> </td><td class="mdescRight">This function sets an event that is waited with <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga3546ca66266d5cc956741505318723a2" title="This function waits for a specific event to be set. The sequencer loops UTIL_SEQ_EvtIdle() until the ...">UTIL_SEQ_WaitEvt()</a> <a href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga20f607dcbe03ca04f5c56a47e3cc846c">More...</a><br /></td></tr>
|
||||
<tr class="separator:ga20f607dcbe03ca04f5c56a47e3cc846c"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga2b48c77f677158e69ff072f7c05cded4"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga2b48c77f677158e69ff072f7c05cded4">UTIL_SEQ_ClrEvt</a> (<a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a> EvtId_bm)</td></tr>
|
||||
<tr class="memdesc:ga2b48c77f677158e69ff072f7c05cded4"><td class="mdescLeft"> </td><td class="mdescRight">This function may be used to clear the event before calling <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga3546ca66266d5cc956741505318723a2" title="This function waits for a specific event to be set. The sequencer loops UTIL_SEQ_EvtIdle() until the ...">UTIL_SEQ_WaitEvt()</a> This API may be useful when the <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga20f607dcbe03ca04f5c56a47e3cc846c" title="This function sets an event that is waited with UTIL_SEQ_WaitEvt()">UTIL_SEQ_SetEvt()</a> is called several time to notify the same event. Due to Software Architecture where the timings are hard to control, this may be an unwanted case. <a href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga2b48c77f677158e69ff072f7c05cded4">More...</a><br /></td></tr>
|
||||
<tr class="separator:ga2b48c77f677158e69ff072f7c05cded4"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga3546ca66266d5cc956741505318723a2"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga3546ca66266d5cc956741505318723a2">UTIL_SEQ_WaitEvt</a> (<a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a> EvtId_bm)</td></tr>
|
||||
<tr class="memdesc:ga3546ca66266d5cc956741505318723a2"><td class="mdescLeft"> </td><td class="mdescRight">This function waits for a specific event to be set. The sequencer loops <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga6bd90dbfc7e3515391128d1ca1739c17" title="This function loops until the waited event is set.">UTIL_SEQ_EvtIdle()</a> until the event is set When called recursively, it acts as a First in / Last out mechanism. The sequencer waits for the last event requested to be set even though one of the already requested event has been set. <a href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga3546ca66266d5cc956741505318723a2">More...</a><br /></td></tr>
|
||||
<tr class="separator:ga3546ca66266d5cc956741505318723a2"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga8d6c2fd6aac8b833a25602ec4b8c5fc7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga8d6c2fd6aac8b833a25602ec4b8c5fc7">UTIL_SEQ_IsEvtPend</a> (void)</td></tr>
|
||||
<tr class="memdesc:ga8d6c2fd6aac8b833a25602ec4b8c5fc7"><td class="mdescLeft"> </td><td class="mdescRight">This function returns whether the waited event is pending or not It is useful only when the <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga6bd90dbfc7e3515391128d1ca1739c17" title="This function loops until the waited event is set.">UTIL_SEQ_EvtIdle()</a> is overloaded by the application. In that case, when the low power mode needs to be executed, the application shall first check whether the waited event is pending or not. Both the event checking and the low power mode processing should be done in critical section. <a href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga8d6c2fd6aac8b833a25602ec4b8c5fc7">More...</a><br /></td></tr>
|
||||
<tr class="separator:ga8d6c2fd6aac8b833a25602ec4b8c5fc7"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga6bd90dbfc7e3515391128d1ca1739c17"><td class="memItemLeft" align="right" valign="top">__WEAK void </td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga6bd90dbfc7e3515391128d1ca1739c17">UTIL_SEQ_EvtIdle</a> (<a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a> TaskId_bm, <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a> EvtWaited_bm)</td></tr>
|
||||
<tr class="memdesc:ga6bd90dbfc7e3515391128d1ca1739c17"><td class="mdescLeft"> </td><td class="mdescRight">This function loops until the waited event is set. <a href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga6bd90dbfc7e3515391128d1ca1739c17">More...</a><br /></td></tr>
|
||||
<tr class="separator:ga6bd90dbfc7e3515391128d1ca1739c17"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga5efb8394fc5244b650c8cc8f642e6271"><td class="memItemLeft" align="right" valign="top">__WEAK void </td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga5efb8394fc5244b650c8cc8f642e6271">UTIL_SEQ_Idle</a> (void)</td></tr>
|
||||
<tr class="memdesc:ga5efb8394fc5244b650c8cc8f642e6271"><td class="mdescLeft"> </td><td class="mdescRight">This function is called by the sequencer in critical section (PRIMASK bit) when. <a href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga5efb8394fc5244b650c8cc8f642e6271">More...</a><br /></td></tr>
|
||||
<tr class="separator:ga5efb8394fc5244b650c8cc8f642e6271"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga373387b03a48559d58eacb919f44a799"><td class="memItemLeft" align="right" valign="top">__WEAK void </td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga373387b03a48559d58eacb919f44a799">UTIL_SEQ_PreIdle</a> (void)</td></tr>
|
||||
<tr class="memdesc:ga373387b03a48559d58eacb919f44a799"><td class="mdescLeft"> </td><td class="mdescRight">This function is called by the sequencer outside critical section just before calling <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga5efb8394fc5244b650c8cc8f642e6271" title="This function is called by the sequencer in critical section (PRIMASK bit) when.">UTIL_SEQ_Idle( )</a> <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga373387b03a48559d58eacb919f44a799" title="This function is called by the sequencer outside critical section just before calling UTIL_SEQ_Idle( ...">UTIL_SEQ_PreIdle()</a> is considered as the last task executed before calling <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga5efb8394fc5244b650c8cc8f642e6271" title="This function is called by the sequencer in critical section (PRIMASK bit) when.">UTIL_SEQ_Idle( )</a> In case a task or an event is set from an interrupt handler just after <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga373387b03a48559d58eacb919f44a799" title="This function is called by the sequencer outside critical section just before calling UTIL_SEQ_Idle( ...">UTIL_SEQ_PreIdle()</a> is called, <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga5efb8394fc5244b650c8cc8f642e6271" title="This function is called by the sequencer in critical section (PRIMASK bit) when.">UTIL_SEQ_Idle()</a> will not be called. <a href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga373387b03a48559d58eacb919f44a799">More...</a><br /></td></tr>
|
||||
<tr class="separator:ga373387b03a48559d58eacb919f44a799"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga481b45c409e4d8180c64efdef67daa7f"><td class="memItemLeft" align="right" valign="top">__WEAK void </td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga481b45c409e4d8180c64efdef67daa7f">UTIL_SEQ_PostIdle</a> (void)</td></tr>
|
||||
<tr class="memdesc:ga481b45c409e4d8180c64efdef67daa7f"><td class="mdescLeft"> </td><td class="mdescRight">This function is called by the sequencer outside critical section either. <a href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga481b45c409e4d8180c64efdef67daa7f">More...</a><br /></td></tr>
|
||||
<tr class="separator:ga481b45c409e4d8180c64efdef67daa7f"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||
<h2 class="groupheader">Function Documentation</h2>
|
||||
<a id="ga2b48c77f677158e69ff072f7c05cded4"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga2b48c77f677158e69ff072f7c05cded4">◆ </a></span>UTIL_SEQ_ClrEvt()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void UTIL_SEQ_ClrEvt </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a> </td>
|
||||
<td class="paramname"><em>EvtId_bm</em></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>This function may be used to clear the event before calling <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga3546ca66266d5cc956741505318723a2" title="This function waits for a specific event to be set. The sequencer loops UTIL_SEQ_EvtIdle() until the ...">UTIL_SEQ_WaitEvt()</a> This API may be useful when the <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga20f607dcbe03ca04f5c56a47e3cc846c" title="This function sets an event that is waited with UTIL_SEQ_WaitEvt()">UTIL_SEQ_SetEvt()</a> is called several time to notify the same event. Due to Software Architecture where the timings are hard to control, this may be an unwanted case. </p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramname">EvtId_bm</td><td>event id bm It shall be a bit mapping where only 1 bit is set</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section note"><dt>Note</dt><dd>It may be called from an ISR. </dd></dl>
|
||||
|
||||
<p class="definition">Definition at line <a class="el" href="stm32__seq_8c_source.html#l00407">407</a> of file <a class="el" href="stm32__seq_8c_source.html">stm32_seq.c</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="ga91cceef5931daa30c4ec3a6577c11106"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga91cceef5931daa30c4ec3a6577c11106">◆ </a></span>UTIL_SEQ_DeInit()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void UTIL_SEQ_DeInit </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">void </td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>This function un-initializes the sequencer resources. </p>
|
||||
<dl class="section note"><dt>Note</dt><dd>It shall not be called from an ISR </dd></dl>
|
||||
|
||||
<p class="definition">Definition at line <a class="el" href="stm32__seq_8c_source.html#l00199">199</a> of file <a class="el" href="stm32__seq_8c_source.html">stm32_seq.c</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="ga6bd90dbfc7e3515391128d1ca1739c17"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga6bd90dbfc7e3515391128d1ca1739c17">◆ </a></span>UTIL_SEQ_EvtIdle()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void UTIL_SEQ_EvtIdle </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a> </td>
|
||||
<td class="paramname"><em>TaskId_bm</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a> </td>
|
||||
<td class="paramname"><em>EvtWaited_bm</em> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>This function loops until the waited event is set. </p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramname">TaskId_bm</td><td>The task id that is currently running. When task_id_bm = 0, it means <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga3546ca66266d5cc956741505318723a2" title="This function waits for a specific event to be set. The sequencer loops UTIL_SEQ_EvtIdle() until the ...">UTIL_SEQ_WaitEvt( )</a> has been called outside a registered task (ie at startup before <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#gae047669fe53f205396460fdbd3a5d8f5" title="This function requests the sequencer to execute all pending tasks using round robin mechanism....">UTIL_SEQ_Run( )</a> has been called </td></tr>
|
||||
<tr><td class="paramname">EvtWaited_bm</td><td>The event id that is waited.</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section note"><dt>Note</dt><dd>When not implemented by the application, it calls UTIL_SEQ_Run(~TaskId_bm) which means the waited task is suspended until the waited event and the other tasks are running or the application enter low power mode. Else the user can redefine his own function for example call sequencer UTIL_SEQ_Run(0) to suspend all the task and let the sequencer enter the low power mode. It shall be called only by the sequencer. </dd></dl>
|
||||
|
||||
<p class="definition">Definition at line <a class="el" href="stm32__seq_8c_source.html#l00477">477</a> of file <a class="el" href="stm32__seq_8c_source.html">stm32_seq.c</a>.</p>
|
||||
|
||||
<p class="reference">References <a class="el" href="stm32__seq_8c_source.html#l00209">UTIL_SEQ_Run()</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="ga5efb8394fc5244b650c8cc8f642e6271"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga5efb8394fc5244b650c8cc8f642e6271">◆ </a></span>UTIL_SEQ_Idle()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void UTIL_SEQ_Idle </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">void </td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>This function is called by the sequencer in critical section (PRIMASK bit) when. </p>
|
||||
<ul>
|
||||
<li>there are no more tasks to be executed AND</li>
|
||||
<li>there are no pending event or the pending event is still not set <dl class="section note"><dt>Note</dt><dd>The application should enter low power mode in this function When this function is not implemented by the application, the sequencer keeps running a while loop (RUN MODE). It shall be called only by the sequencer. </dd></dl>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p class="definition">Definition at line <a class="el" href="stm32__seq_8c_source.html#l00484">484</a> of file <a class="el" href="stm32__seq_8c_source.html">stm32_seq.c</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="gaef07a06c105da3570c971633460a8aa5"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gaef07a06c105da3570c971633460a8aa5">◆ </a></span>UTIL_SEQ_Init()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void UTIL_SEQ_Init </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">void </td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>This function initializes the sequencer resources. </p>
|
||||
<dl class="section note"><dt>Note</dt><dd>It shall not be called from an ISR. </dd></dl>
|
||||
|
||||
<p class="definition">Definition at line <a class="el" href="stm32__seq_8c_source.html#l00182">182</a> of file <a class="el" href="stm32__seq_8c_source.html">stm32_seq.c</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="ga8d6c2fd6aac8b833a25602ec4b8c5fc7"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga8d6c2fd6aac8b833a25602ec4b8c5fc7">◆ </a></span>UTIL_SEQ_IsEvtPend()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a> UTIL_SEQ_IsEvtPend </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">void </td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>This function returns whether the waited event is pending or not It is useful only when the <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga6bd90dbfc7e3515391128d1ca1739c17" title="This function loops until the waited event is set.">UTIL_SEQ_EvtIdle()</a> is overloaded by the application. In that case, when the low power mode needs to be executed, the application shall first check whether the waited event is pending or not. Both the event checking and the low power mode processing should be done in critical section. </p>
|
||||
<dl class="retval"><dt>Return values</dt><dd>
|
||||
<table class="retval">
|
||||
<tr><td class="paramname">0</td><td>when the waited event is not there or the evt_id when the waited event is pending</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section note"><dt>Note</dt><dd>It may be called from an ISR. </dd></dl>
|
||||
|
||||
<p class="definition">Definition at line <a class="el" href="stm32__seq_8c_source.html#l00471">471</a> of file <a class="el" href="stm32__seq_8c_source.html">stm32_seq.c</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="gaa177da1e5c77c8430096356181d12b18"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gaa177da1e5c77c8430096356181d12b18">◆ </a></span>UTIL_SEQ_IsPauseTask()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">uint32_t UTIL_SEQ_IsPauseTask </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a> </td>
|
||||
<td class="paramname"><em>TaskId_bm</em></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>This function allows to know if the task has been put in pause. By default, all tasks are executed by the sequencer when set with <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga66de990da4bde412751f15a7622a0da8" title="This function requests a task to be executed.">UTIL_SEQ_SetTask()</a> The exit of the pause shall be done by the function UTIL_SEQ_ResumeTask. </p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramname">TaskId_bm</td><td>The Id of the task It shall be (1<<task_id) where task_id is the number assigned when the task has been registered</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section note"><dt>Note</dt><dd>It may be called from an ISR. </dd></dl>
|
||||
|
||||
<p class="definition">Definition at line <a class="el" href="stm32__seq_8c_source.html#l00374">374</a> of file <a class="el" href="stm32__seq_8c_source.html">stm32_seq.c</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="ga58bf5ad581a43e749b60a811353af558"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga58bf5ad581a43e749b60a811353af558">◆ </a></span>UTIL_SEQ_IsSchedulableTask()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">uint32_t UTIL_SEQ_IsSchedulableTask </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a> </td>
|
||||
<td class="paramname"><em>TaskId_bm</em></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>This function checks if a task could be scheduled. </p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramname">TaskId_bm</td><td>The Id of the task It shall be (1<<task_id) where task_id is the number assigned when the task has been registered </td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="retval"><dt>Return values</dt><dd>
|
||||
<table class="retval">
|
||||
<tr><td class="paramname">0</td><td>if not 1 if true</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section note"><dt>Note</dt><dd>It may be called from an ISR. </dd></dl>
|
||||
|
||||
<p class="definition">Definition at line <a class="el" href="stm32__seq_8c_source.html#l00349">349</a> of file <a class="el" href="stm32__seq_8c_source.html">stm32_seq.c</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="gaad482af89f56e87da251f56d98674c02"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gaad482af89f56e87da251f56d98674c02">◆ </a></span>UTIL_SEQ_PauseTask()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void UTIL_SEQ_PauseTask </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a> </td>
|
||||
<td class="paramname"><em>TaskId_bm</em></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>This function prevents a task to be called by the sequencer even when set with <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga66de990da4bde412751f15a7622a0da8" title="This function requests a task to be executed.">UTIL_SEQ_SetTask()</a> By default, all tasks are executed by the sequencer when set with <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga66de990da4bde412751f15a7622a0da8" title="This function requests a task to be executed.">UTIL_SEQ_SetTask()</a> When a task is paused, it is moved out from the sequencer list. </p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramname">TaskId_bm</td><td>The Id of the task It shall be (1<<task_id) where task_id is the number assigned when the task has been registered</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section note"><dt>Note</dt><dd>It may be called from an ISR. </dd></dl>
|
||||
|
||||
<p class="definition">Definition at line <a class="el" href="stm32__seq_8c_source.html#l00363">363</a> of file <a class="el" href="stm32__seq_8c_source.html">stm32_seq.c</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="ga481b45c409e4d8180c64efdef67daa7f"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga481b45c409e4d8180c64efdef67daa7f">◆ </a></span>UTIL_SEQ_PostIdle()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void UTIL_SEQ_PostIdle </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">void </td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>This function is called by the sequencer outside critical section either. </p>
|
||||
<ul>
|
||||
<li>after calling <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga5efb8394fc5244b650c8cc8f642e6271" title="This function is called by the sequencer in critical section (PRIMASK bit) when.">UTIL_SEQ_Idle( )</a> OR</li>
|
||||
<li>after calling <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga373387b03a48559d58eacb919f44a799" title="This function is called by the sequencer outside critical section just before calling UTIL_SEQ_Idle( ...">UTIL_SEQ_PreIdle( )</a> without call to <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga5efb8394fc5244b650c8cc8f642e6271" title="This function is called by the sequencer in critical section (PRIMASK bit) when.">UTIL_SEQ_Idle()</a> due to an incoming task set or event requested after <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga373387b03a48559d58eacb919f44a799" title="This function is called by the sequencer outside critical section just before calling UTIL_SEQ_Idle( ...">UTIL_SEQ_PreIdle()</a> has been called.</li>
|
||||
</ul>
|
||||
<dl class="section note"><dt>Note</dt><dd><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga481b45c409e4d8180c64efdef67daa7f" title="This function is called by the sequencer outside critical section either.">UTIL_SEQ_PostIdle()</a> is always called if <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga373387b03a48559d58eacb919f44a799" title="This function is called by the sequencer outside critical section just before calling UTIL_SEQ_Idle( ...">UTIL_SEQ_PreIdle()</a> has been called and never called otherwise. It shall be called only by the sequencer. </dd></dl>
|
||||
|
||||
<p class="definition">Definition at line <a class="el" href="stm32__seq_8c_source.html#l00497">497</a> of file <a class="el" href="stm32__seq_8c_source.html">stm32_seq.c</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="ga373387b03a48559d58eacb919f44a799"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga373387b03a48559d58eacb919f44a799">◆ </a></span>UTIL_SEQ_PreIdle()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void UTIL_SEQ_PreIdle </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">void </td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>This function is called by the sequencer outside critical section just before calling <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga5efb8394fc5244b650c8cc8f642e6271" title="This function is called by the sequencer in critical section (PRIMASK bit) when.">UTIL_SEQ_Idle( )</a> <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga373387b03a48559d58eacb919f44a799" title="This function is called by the sequencer outside critical section just before calling UTIL_SEQ_Idle( ...">UTIL_SEQ_PreIdle()</a> is considered as the last task executed before calling <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga5efb8394fc5244b650c8cc8f642e6271" title="This function is called by the sequencer in critical section (PRIMASK bit) when.">UTIL_SEQ_Idle( )</a> In case a task or an event is set from an interrupt handler just after <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga373387b03a48559d58eacb919f44a799" title="This function is called by the sequencer outside critical section just before calling UTIL_SEQ_Idle( ...">UTIL_SEQ_PreIdle()</a> is called, <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga5efb8394fc5244b650c8cc8f642e6271" title="This function is called by the sequencer in critical section (PRIMASK bit) when.">UTIL_SEQ_Idle()</a> will not be called. </p>
|
||||
<dl class="section note"><dt>Note</dt><dd>It shall be called only by the sequencer. </dd></dl>
|
||||
|
||||
<p class="definition">Definition at line <a class="el" href="stm32__seq_8c_source.html#l00489">489</a> of file <a class="el" href="stm32__seq_8c_source.html">stm32_seq.c</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="gacb5ddba0d11449d470c840d0bd961c14"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gacb5ddba0d11449d470c840d0bd961c14">◆ </a></span>UTIL_SEQ_RegTask()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void UTIL_SEQ_RegTask </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a> </td>
|
||||
<td class="paramname"><em>TaskId_bm</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">uint32_t </td>
|
||||
<td class="paramname"><em>Flags</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">void(*)(void) </td>
|
||||
<td class="paramname"><em>Task</em> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>This function registers a task in the sequencer. </p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramname">TaskId_bm</td><td>The Id of the task </td></tr>
|
||||
<tr><td class="paramname">Flags</td><td>Flags are reserved param for future use </td></tr>
|
||||
<tr><td class="paramname">Task</td><td>Reference of the function to be executed</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section note"><dt>Note</dt><dd>It may be called from an ISR. </dd></dl>
|
||||
|
||||
<p class="definition">Definition at line <a class="el" href="stm32__seq_8c_source.html#l00325">325</a> of file <a class="el" href="stm32__seq_8c_source.html">stm32_seq.c</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="ga66f6a7fbff82b6d397ca054bcf9350ec"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga66f6a7fbff82b6d397ca054bcf9350ec">◆ </a></span>UTIL_SEQ_ResumeTask()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void UTIL_SEQ_ResumeTask </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a> </td>
|
||||
<td class="paramname"><em>TaskId_bm</em></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>This function allows again a task to be called by the sequencer if set with <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga66de990da4bde412751f15a7622a0da8" title="This function requests a task to be executed.">UTIL_SEQ_SetTask()</a> This is used in relation with <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#gaad482af89f56e87da251f56d98674c02" title="This function prevents a task to be called by the sequencer even when set with UTIL_SEQ_SetTask() By ...">UTIL_SEQ_PauseTask()</a> </p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramname">TaskId_bm</td><td>The Id of the task It shall be (1<<task_id) where task_id is the number assigned when the task has been registered</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section note"><dt>Note</dt><dd>It may be called from an ISR. </dd></dl>
|
||||
|
||||
<p class="definition">Definition at line <a class="el" href="stm32__seq_8c_source.html#l00385">385</a> of file <a class="el" href="stm32__seq_8c_source.html">stm32_seq.c</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="gae047669fe53f205396460fdbd3a5d8f5"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gae047669fe53f205396460fdbd3a5d8f5">◆ </a></span>UTIL_SEQ_Run()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void UTIL_SEQ_Run </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a> </td>
|
||||
<td class="paramname"><em>Mask_bm</em></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>This function requests the sequencer to execute all pending tasks using round robin mechanism. When no task are pending, it calls <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga5efb8394fc5244b650c8cc8f642e6271" title="This function is called by the sequencer in critical section (PRIMASK bit) when.">UTIL_SEQ_Idle()</a>; This function should be called in a while loop in the application. </p>
|
||||
<p>This function can be nested. That is the reason why many variables that are used only in that function are declared static. Note: These variables could have been declared static in the function.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramname">Mask_bm</td><td>list of task (bit mapping) that is be kept in the sequencer list.</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section note"><dt>Note</dt><dd>It shall not be called from an ISR. </dd>
|
||||
<dd>
|
||||
The construction of the task must take into account the fact that there is no counting / protection on the activation of the task. Thus, when the task is running, it must perform all the operations in progress programmed before its call or manage a reprogramming of the task. </dd></dl>
|
||||
|
||||
<p class="definition">Definition at line <a class="el" href="stm32__seq_8c_source.html#l00209">209</a> of file <a class="el" href="stm32__seq_8c_source.html">stm32_seq.c</a>.</p>
|
||||
|
||||
<p class="reference">Referenced by <a class="el" href="stm32__seq_8c_source.html#l00477">UTIL_SEQ_EvtIdle()</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="ga20f607dcbe03ca04f5c56a47e3cc846c"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga20f607dcbe03ca04f5c56a47e3cc846c">◆ </a></span>UTIL_SEQ_SetEvt()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void UTIL_SEQ_SetEvt </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a> </td>
|
||||
<td class="paramname"><em>EvtId_bm</em></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>This function sets an event that is waited with <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga3546ca66266d5cc956741505318723a2" title="This function waits for a specific event to be set. The sequencer loops UTIL_SEQ_EvtIdle() until the ...">UTIL_SEQ_WaitEvt()</a> </p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramname">EvtId_bm</td><td>event id bit mask</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section note"><dt>Note</dt><dd>An event shall be a 32 bit mapping where only 1 bit is set It may be called from an ISR. </dd></dl>
|
||||
|
||||
<p class="definition">Definition at line <a class="el" href="stm32__seq_8c_source.html#l00396">396</a> of file <a class="el" href="stm32__seq_8c_source.html">stm32_seq.c</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="ga66de990da4bde412751f15a7622a0da8"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga66de990da4bde412751f15a7622a0da8">◆ </a></span>UTIL_SEQ_SetTask()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void UTIL_SEQ_SetTask </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a> </td>
|
||||
<td class="paramname"><em>TaskId_bm</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">uint32_t </td>
|
||||
<td class="paramname"><em>Task_Prio</em> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>This function requests a task to be executed. </p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramname">TaskId_bm</td><td>The Id of the task It shall be (1<<task_id) where task_id is the number assigned when the task has been registered </td></tr>
|
||||
<tr><td class="paramname">Task_Prio</td><td>The priority of the task It shall a number from 0 (high priority) to 31 (low priority) The priority is checked each time the sequencer needs to select a new task to execute It does not permit to preempt a running task with lower priority</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section note"><dt>Note</dt><dd>It may be called from an ISR </dd></dl>
|
||||
|
||||
<p class="definition">Definition at line <a class="el" href="stm32__seq_8c_source.html#l00337">337</a> of file <a class="el" href="stm32__seq_8c_source.html">stm32_seq.c</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="ga3546ca66266d5cc956741505318723a2"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga3546ca66266d5cc956741505318723a2">◆ </a></span>UTIL_SEQ_WaitEvt()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void UTIL_SEQ_WaitEvt </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a> </td>
|
||||
<td class="paramname"><em>EvtId_bm</em></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>This function waits for a specific event to be set. The sequencer loops <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga6bd90dbfc7e3515391128d1ca1739c17" title="This function loops until the waited event is set.">UTIL_SEQ_EvtIdle()</a> until the event is set When called recursively, it acts as a First in / Last out mechanism. The sequencer waits for the last event requested to be set even though one of the already requested event has been set. </p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramname">EvtId_bm</td><td>event id bit mask It shall be a bit mapping where only 1 bit is set</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section note"><dt>Note</dt><dd>It shall not be called from an ISR. </dd>
|
||||
<dd>
|
||||
The construction of the task must take into account the fact that there is no counting / protection on the event. Thus, when the task is running, it must perform all the operations in progress programmed before its call or manage a reprogramming of the task. </dd></dl>
|
||||
|
||||
<p class="definition">Definition at line <a class="el" href="stm32__seq_8c_source.html#l00418">418</a> of file <a class="el" href="stm32__seq_8c_source.html">stm32_seq.c</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,20 @@
|
||||
var group___s_e_q_u_e_n_c_e_r___exported__function =
|
||||
[
|
||||
[ "UTIL_SEQ_ClrEvt", "group___s_e_q_u_e_n_c_e_r___exported__function.html#ga2b48c77f677158e69ff072f7c05cded4", null ],
|
||||
[ "UTIL_SEQ_DeInit", "group___s_e_q_u_e_n_c_e_r___exported__function.html#ga91cceef5931daa30c4ec3a6577c11106", null ],
|
||||
[ "UTIL_SEQ_EvtIdle", "group___s_e_q_u_e_n_c_e_r___exported__function.html#ga6bd90dbfc7e3515391128d1ca1739c17", null ],
|
||||
[ "UTIL_SEQ_Idle", "group___s_e_q_u_e_n_c_e_r___exported__function.html#ga5efb8394fc5244b650c8cc8f642e6271", null ],
|
||||
[ "UTIL_SEQ_Init", "group___s_e_q_u_e_n_c_e_r___exported__function.html#gaef07a06c105da3570c971633460a8aa5", null ],
|
||||
[ "UTIL_SEQ_IsEvtPend", "group___s_e_q_u_e_n_c_e_r___exported__function.html#ga8d6c2fd6aac8b833a25602ec4b8c5fc7", null ],
|
||||
[ "UTIL_SEQ_IsPauseTask", "group___s_e_q_u_e_n_c_e_r___exported__function.html#gaa177da1e5c77c8430096356181d12b18", null ],
|
||||
[ "UTIL_SEQ_IsSchedulableTask", "group___s_e_q_u_e_n_c_e_r___exported__function.html#ga58bf5ad581a43e749b60a811353af558", null ],
|
||||
[ "UTIL_SEQ_PauseTask", "group___s_e_q_u_e_n_c_e_r___exported__function.html#gaad482af89f56e87da251f56d98674c02", null ],
|
||||
[ "UTIL_SEQ_PostIdle", "group___s_e_q_u_e_n_c_e_r___exported__function.html#ga481b45c409e4d8180c64efdef67daa7f", null ],
|
||||
[ "UTIL_SEQ_PreIdle", "group___s_e_q_u_e_n_c_e_r___exported__function.html#ga373387b03a48559d58eacb919f44a799", null ],
|
||||
[ "UTIL_SEQ_RegTask", "group___s_e_q_u_e_n_c_e_r___exported__function.html#gacb5ddba0d11449d470c840d0bd961c14", null ],
|
||||
[ "UTIL_SEQ_ResumeTask", "group___s_e_q_u_e_n_c_e_r___exported__function.html#ga66f6a7fbff82b6d397ca054bcf9350ec", null ],
|
||||
[ "UTIL_SEQ_Run", "group___s_e_q_u_e_n_c_e_r___exported__function.html#gae047669fe53f205396460fdbd3a5d8f5", null ],
|
||||
[ "UTIL_SEQ_SetEvt", "group___s_e_q_u_e_n_c_e_r___exported__function.html#ga20f607dcbe03ca04f5c56a47e3cc846c", null ],
|
||||
[ "UTIL_SEQ_SetTask", "group___s_e_q_u_e_n_c_e_r___exported__function.html#ga66de990da4bde412751f15a7622a0da8", null ],
|
||||
[ "UTIL_SEQ_WaitEvt", "group___s_e_q_u_e_n_c_e_r___exported__function.html#ga3546ca66266d5cc956741505318723a2", null ]
|
||||
];
|
||||
@@ -0,0 +1,200 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<meta name="generator" content="Doxygen 1.9.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>STM32 Sequencer: SEQUENCER exported macros</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td id="projectalign" style="padding-left: 0.5em;">
|
||||
<div id="projectname">STM32 Sequencer
|
||||
 <span id="projectnumber">v1.6.0</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.9.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</script>
|
||||
<div id="main-nav"></div>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(document).ready(function(){initNavTree('group___s_e_q_u_e_n_c_e_r___exported__macro.html',''); initResizable(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<iframe src="javascript:void(0)" frameborder="0"
|
||||
name="MSearchResults" id="MSearchResults">
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#define-members">Macros</a> </div>
|
||||
<div class="headertitle">
|
||||
<div class="title">SEQUENCER exported macros<div class="ingroups"><a class="el" href="group___s_e_q_u_e_n_c_e_r.html">sequencer utilities</a></div></div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
|
||||
Macros</h2></td></tr>
|
||||
<tr class="memitem:ga99985a546d3297b5fd8ace7f5f045c14"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__macro.html#ga99985a546d3297b5fd8ace7f5f045c14">UTIL_SEQ_TaskParamDef</a>(_FUNC_, _PARAM_VAL_)</td></tr>
|
||||
<tr class="memdesc:ga99985a546d3297b5fd8ace7f5f045c14"><td class="mdescLeft"> </td><td class="mdescRight">This macro can be used to define a task with one parameter. <a href="group___s_e_q_u_e_n_c_e_r___exported__macro.html#ga99985a546d3297b5fd8ace7f5f045c14">More...</a><br /></td></tr>
|
||||
<tr class="separator:ga99985a546d3297b5fd8ace7f5f045c14"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:gac4b0290fac7278810aa24b9be4574da1"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__macro.html#gac4b0290fac7278810aa24b9be4574da1">UTIL_SEQ_TaskFunction</a>(_FUNC_, _PARAM_VAL_)   SEQ_FUNC_##_FUNC_##_PARAM_VAL_</td></tr>
|
||||
<tr class="memdesc:gac4b0290fac7278810aa24b9be4574da1"><td class="mdescLeft"> </td><td class="mdescRight">This macro is used to retrieve the function name of the task. <a href="group___s_e_q_u_e_n_c_e_r___exported__macro.html#gac4b0290fac7278810aa24b9be4574da1">More...</a><br /></td></tr>
|
||||
<tr class="separator:gac4b0290fac7278810aa24b9be4574da1"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||
<h2 class="groupheader">Macro Definition Documentation</h2>
|
||||
<a id="gac4b0290fac7278810aa24b9be4574da1"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gac4b0290fac7278810aa24b9be4574da1">◆ </a></span>UTIL_SEQ_TaskFunction</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">#define UTIL_SEQ_TaskFunction</td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"> </td>
|
||||
<td class="paramname">_FUNC_, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"> </td>
|
||||
<td class="paramname">_PARAM_VAL_ </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td>   SEQ_FUNC_##_FUNC_##_PARAM_VAL_</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>This macro is used to retrieve the function name of the task. </p>
|
||||
|
||||
<p class="definition">Definition at line <a class="el" href="stm32__seq_8h_source.html#l00124">124</a> of file <a class="el" href="stm32__seq_8h_source.html">stm32_seq.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="ga99985a546d3297b5fd8ace7f5f045c14"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga99985a546d3297b5fd8ace7f5f045c14">◆ </a></span>UTIL_SEQ_TaskParamDef</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">#define UTIL_SEQ_TaskParamDef</td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"> </td>
|
||||
<td class="paramname">_FUNC_, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"> </td>
|
||||
<td class="paramname">_PARAM_VAL_ </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<b>Value:</b><div class="fragment"><div class="line"> <span class="keyword">static</span> <span class="keywordtype">void</span> SEQ_FUNC_##_FUNC_##_PARAM_VAL_(<span class="keywordtype">void</span>); \</div>
|
||||
<div class="line"> static <span class="keywordtype">void</span> SEQ_FUNC_##_FUNC_##_PARAM_VAL_(<span class="keywordtype">void</span>) \</div>
|
||||
<div class="line"> { \</div>
|
||||
<div class="line"> static <span class="keywordtype">void</span> *SEQ_PARAM_##_FUNC_ = (<span class="keywordtype">void</span>*)&_PARAM_VAL_;\</div>
|
||||
<div class="line"> _FUNC_(SEQ_PARAM_##_FUNC_); \</div>
|
||||
<div class="line"> }</div>
|
||||
</div><!-- fragment -->
|
||||
<p>This macro can be used to define a task with one parameter. </p>
|
||||
<dl class="section note"><dt>Note</dt><dd>this is an example of using this macro <pre class="fragment"> task prototype definition
|
||||
void FUNCTION_NAME(void *Instance)
|
||||
{
|
||||
uint8_t _instance = *(uint8_t*) Instance;
|
||||
}
|
||||
|
||||
task declaration in the application for two instances
|
||||
const uint8_t instance1 = 1;
|
||||
const uint8_t instance2 = 2;
|
||||
UTIL_SEQ_TaskParamDef(FUNCTION_NAME, instance1)
|
||||
UTIL_SEQ_TaskParamDef(FUNCTION_NAME, instance2)
|
||||
|
||||
task initialization
|
||||
UTIL_SEQ_RegTask(1 << 1, 0, UTIL_SEQ_TaskFunction(FUNCTION_NAME,instance2));
|
||||
UTIL_SEQ_RegTask(1 << 10, 0, UTIL_SEQ_TaskFunction(FUNCTION_NAME,instance3));
|
||||
|
||||
Then no change on the management of the task within the application, the instance being managed within the overloaded function
|
||||
</pre> </dd></dl>
|
||||
|
||||
<p class="definition">Definition at line <a class="el" href="stm32__seq_8h_source.html#l00113">113</a> of file <a class="el" href="stm32__seq_8h_source.html">stm32_seq.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,5 @@
|
||||
var group___s_e_q_u_e_n_c_e_r___exported__macro =
|
||||
[
|
||||
[ "UTIL_SEQ_TaskFunction", "group___s_e_q_u_e_n_c_e_r___exported__macro.html#gac4b0290fac7278810aa24b9be4574da1", null ],
|
||||
[ "UTIL_SEQ_TaskParamDef", "group___s_e_q_u_e_n_c_e_r___exported__macro.html#ga99985a546d3297b5fd8ace7f5f045c14", null ]
|
||||
];
|
||||
@@ -0,0 +1,127 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<meta name="generator" content="Doxygen 1.9.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>STM32 Sequencer: SEQUENCER exported types</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td id="projectalign" style="padding-left: 0.5em;">
|
||||
<div id="projectname">STM32 Sequencer
|
||||
 <span id="projectnumber">v1.6.0</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.9.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</script>
|
||||
<div id="main-nav"></div>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(document).ready(function(){initNavTree('group___s_e_q_u_e_n_c_e_r___exported__type.html',''); initResizable(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<iframe src="javascript:void(0)" frameborder="0"
|
||||
name="MSearchResults" id="MSearchResults">
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#typedef-members">Typedefs</a> </div>
|
||||
<div class="headertitle">
|
||||
<div class="title">SEQUENCER exported types<div class="ingroups"><a class="el" href="group___s_e_q_u_e_n_c_e_r.html">sequencer utilities</a></div></div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
|
||||
Typedefs</h2></td></tr>
|
||||
<tr class="memitem:gaf1d37385aa3a7ce76c48447ba7dd5707"><td class="memItemLeft" align="right" valign="top">typedef uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a></td></tr>
|
||||
<tr class="memdesc:gaf1d37385aa3a7ce76c48447ba7dd5707"><td class="mdescLeft"> </td><td class="mdescRight">bit mapping of the task. this value is used to represent a list of task (each corresponds to a task). <a href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">More...</a><br /></td></tr>
|
||||
<tr class="separator:gaf1d37385aa3a7ce76c48447ba7dd5707"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||
<h2 class="groupheader">Typedef Documentation</h2>
|
||||
<a id="gaf1d37385aa3a7ce76c48447ba7dd5707"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gaf1d37385aa3a7ce76c48447ba7dd5707">◆ </a></span>UTIL_SEQ_bm_t</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">typedef uint32_t <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>bit mapping of the task. this value is used to represent a list of task (each corresponds to a task). </p>
|
||||
|
||||
<p class="definition">Definition at line <a class="el" href="stm32__seq_8h_source.html#l00045">45</a> of file <a class="el" href="stm32__seq_8h_source.html">stm32_seq.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,4 @@
|
||||
var group___s_e_q_u_e_n_c_e_r___exported__type =
|
||||
[
|
||||
[ "UTIL_SEQ_bm_t", "group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707", null ]
|
||||
];
|
||||
@@ -0,0 +1,302 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<meta name="generator" content="Doxygen 1.9.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>STM32 Sequencer: SEQUENCER private defines</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td id="projectalign" style="padding-left: 0.5em;">
|
||||
<div id="projectname">STM32 Sequencer
|
||||
 <span id="projectnumber">v1.6.0</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.9.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</script>
|
||||
<div id="main-nav"></div>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(document).ready(function(){initNavTree('group___s_e_q_u_e_n_c_e_r___private__define.html',''); initResizable(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<iframe src="javascript:void(0)" frameborder="0"
|
||||
name="MSearchResults" id="MSearchResults">
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#define-members">Macros</a> </div>
|
||||
<div class="headertitle">
|
||||
<div class="title">SEQUENCER private defines<div class="ingroups"><a class="el" href="group___s_e_q_u_e_n_c_e_r.html">sequencer utilities</a></div></div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
|
||||
Macros</h2></td></tr>
|
||||
<tr class="memitem:ga7af4785dcb8ef602f75b2d8f423010c1"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___private__define.html#ga7af4785dcb8ef602f75b2d8f423010c1">UTIL_SEQ_ENTER_CRITICAL_SECTION_IDLE</a>()   UTIL_SEQ_ENTER_CRITICAL_SECTION( )</td></tr>
|
||||
<tr class="memdesc:ga7af4785dcb8ef602f75b2d8f423010c1"><td class="mdescLeft"> </td><td class="mdescRight">macro used to enter the critical section before calling the IDLE function <a href="group___s_e_q_u_e_n_c_e_r___private__define.html#ga7af4785dcb8ef602f75b2d8f423010c1">More...</a><br /></td></tr>
|
||||
<tr class="separator:ga7af4785dcb8ef602f75b2d8f423010c1"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga2dcda5eb256d445147b385a8374cc658"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___private__define.html#ga2dcda5eb256d445147b385a8374cc658">UTIL_SEQ_EXIT_CRITICAL_SECTION_IDLE</a>()   UTIL_SEQ_EXIT_CRITICAL_SECTION( )</td></tr>
|
||||
<tr class="memdesc:ga2dcda5eb256d445147b385a8374cc658"><td class="mdescLeft"> </td><td class="mdescRight">macro used to exit the critical section when exiting the IDLE function <a href="group___s_e_q_u_e_n_c_e_r___private__define.html#ga2dcda5eb256d445147b385a8374cc658">More...</a><br /></td></tr>
|
||||
<tr class="separator:ga2dcda5eb256d445147b385a8374cc658"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga9d782cdb4f3654c8238e9dd3adbabf16"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___private__define.html#ga9d782cdb4f3654c8238e9dd3adbabf16">UTIL_SEQ_NOTASKRUNNING</a>   (0xFFFFFFFFU)</td></tr>
|
||||
<tr class="memdesc:ga9d782cdb4f3654c8238e9dd3adbabf16"><td class="mdescLeft"> </td><td class="mdescRight">define to represent no task running <a href="group___s_e_q_u_e_n_c_e_r___private__define.html#ga9d782cdb4f3654c8238e9dd3adbabf16">More...</a><br /></td></tr>
|
||||
<tr class="separator:ga9d782cdb4f3654c8238e9dd3adbabf16"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:gad03df74638c0f274fa22474f034384bf"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___private__define.html#gad03df74638c0f274fa22474f034384bf">UTIL_SEQ_NO_BIT_SET</a>   (0U)</td></tr>
|
||||
<tr class="memdesc:gad03df74638c0f274fa22474f034384bf"><td class="mdescLeft"> </td><td class="mdescRight">define to represent no bit set inside uint32_t mapping <a href="group___s_e_q_u_e_n_c_e_r___private__define.html#gad03df74638c0f274fa22474f034384bf">More...</a><br /></td></tr>
|
||||
<tr class="separator:gad03df74638c0f274fa22474f034384bf"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga24e4c1a2fd61c0cbda16ba7f42f1703a"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___private__define.html#ga24e4c1a2fd61c0cbda16ba7f42f1703a">UTIL_SEQ_ALL_BIT_SET</a>   (~0U)</td></tr>
|
||||
<tr class="memdesc:ga24e4c1a2fd61c0cbda16ba7f42f1703a"><td class="mdescLeft"> </td><td class="mdescRight">define to represent all bits set inside uint32_t mapping <a href="group___s_e_q_u_e_n_c_e_r___private__define.html#ga24e4c1a2fd61c0cbda16ba7f42f1703a">More...</a><br /></td></tr>
|
||||
<tr class="separator:ga24e4c1a2fd61c0cbda16ba7f42f1703a"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:gaaf974b4a940fc6a921b3a76344e5c7ed"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___private__define.html#gaaf974b4a940fc6a921b3a76344e5c7ed">UTIL_SEQ_CONF_TASK_NBR</a>   (32)</td></tr>
|
||||
<tr class="memdesc:gaaf974b4a940fc6a921b3a76344e5c7ed"><td class="mdescLeft"> </td><td class="mdescRight">default number of task is default 32 (maximum), can be reduced by redefining in utilities_conf.h <a href="group___s_e_q_u_e_n_c_e_r___private__define.html#gaaf974b4a940fc6a921b3a76344e5c7ed">More...</a><br /></td></tr>
|
||||
<tr class="separator:gaaf974b4a940fc6a921b3a76344e5c7ed"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga13e13f6ac2442ffb667502a9f35df865"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___private__define.html#ga13e13f6ac2442ffb667502a9f35df865">UTIL_SEQ_CONF_PRIO_NBR</a>   (2)</td></tr>
|
||||
<tr class="memdesc:ga13e13f6ac2442ffb667502a9f35df865"><td class="mdescLeft"> </td><td class="mdescRight">default value of priority number. <a href="group___s_e_q_u_e_n_c_e_r___private__define.html#ga13e13f6ac2442ffb667502a9f35df865">More...</a><br /></td></tr>
|
||||
<tr class="separator:ga13e13f6ac2442ffb667502a9f35df865"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:gad3b4f5f14f4f512725984e6da759871c"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___private__define.html#gad3b4f5f14f4f512725984e6da759871c">UTIL_SEQ_MEMSET8</a>(dest, value, size)   UTILS_MEMSET8( dest, value, size )</td></tr>
|
||||
<tr class="memdesc:gad3b4f5f14f4f512725984e6da759871c"><td class="mdescLeft"> </td><td class="mdescRight">default memset function. <a href="group___s_e_q_u_e_n_c_e_r___private__define.html#gad3b4f5f14f4f512725984e6da759871c">More...</a><br /></td></tr>
|
||||
<tr class="separator:gad3b4f5f14f4f512725984e6da759871c"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||
<h2 class="groupheader">Macro Definition Documentation</h2>
|
||||
<a id="ga24e4c1a2fd61c0cbda16ba7f42f1703a"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga24e4c1a2fd61c0cbda16ba7f42f1703a">◆ </a></span>UTIL_SEQ_ALL_BIT_SET</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">#define UTIL_SEQ_ALL_BIT_SET   (~0U)</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>define to represent all bits set inside uint32_t mapping </p>
|
||||
|
||||
<p class="definition">Definition at line <a class="el" href="stm32__seq_8c_source.html#l00086">86</a> of file <a class="el" href="stm32__seq_8c_source.html">stm32_seq.c</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="ga13e13f6ac2442ffb667502a9f35df865"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga13e13f6ac2442ffb667502a9f35df865">◆ </a></span>UTIL_SEQ_CONF_PRIO_NBR</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">#define UTIL_SEQ_CONF_PRIO_NBR   (2)</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>default value of priority number. </p>
|
||||
|
||||
<p class="definition">Definition at line <a class="el" href="stm32__seq_8c_source.html#l00103">103</a> of file <a class="el" href="stm32__seq_8c_source.html">stm32_seq.c</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="gaaf974b4a940fc6a921b3a76344e5c7ed"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gaaf974b4a940fc6a921b3a76344e5c7ed">◆ </a></span>UTIL_SEQ_CONF_TASK_NBR</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">#define UTIL_SEQ_CONF_TASK_NBR   (32)</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>default number of task is default 32 (maximum), can be reduced by redefining in utilities_conf.h </p>
|
||||
|
||||
<p class="definition">Definition at line <a class="el" href="stm32__seq_8c_source.html#l00092">92</a> of file <a class="el" href="stm32__seq_8c_source.html">stm32_seq.c</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="ga7af4785dcb8ef602f75b2d8f423010c1"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga7af4785dcb8ef602f75b2d8f423010c1">◆ </a></span>UTIL_SEQ_ENTER_CRITICAL_SECTION_IDLE</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">#define UTIL_SEQ_ENTER_CRITICAL_SECTION_IDLE</td>
|
||||
<td>(</td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td>   UTIL_SEQ_ENTER_CRITICAL_SECTION( )</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>macro used to enter the critical section before calling the IDLE function </p>
|
||||
<dl class="section note"><dt>Note</dt><dd>in a basic configuration shall be identical to the macro UTIL_SEQ_ENTER_CRITICAL_SECTION. The redefinition of this macro will allow to perform specific operation </dd></dl>
|
||||
|
||||
<p class="definition">Definition at line <a class="el" href="stm32__seq_8c_source.html#l00061">61</a> of file <a class="el" href="stm32__seq_8c_source.html">stm32_seq.c</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="ga2dcda5eb256d445147b385a8374cc658"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga2dcda5eb256d445147b385a8374cc658">◆ </a></span>UTIL_SEQ_EXIT_CRITICAL_SECTION_IDLE</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">#define UTIL_SEQ_EXIT_CRITICAL_SECTION_IDLE</td>
|
||||
<td>(</td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td>   UTIL_SEQ_EXIT_CRITICAL_SECTION( )</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>macro used to exit the critical section when exiting the IDLE function </p>
|
||||
<dl class="section note"><dt>Note</dt><dd>the behavior of the macro shall be symmetrical with the macro UTIL_SEQ_ENTER_CRITICAL_SECTION_IDLE </dd></dl>
|
||||
|
||||
<p class="definition">Definition at line <a class="el" href="stm32__seq_8c_source.html#l00070">70</a> of file <a class="el" href="stm32__seq_8c_source.html">stm32_seq.c</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="gad3b4f5f14f4f512725984e6da759871c"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gad3b4f5f14f4f512725984e6da759871c">◆ </a></span>UTIL_SEQ_MEMSET8</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">#define UTIL_SEQ_MEMSET8</td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"> </td>
|
||||
<td class="paramname">dest, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"> </td>
|
||||
<td class="paramname">value, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"> </td>
|
||||
<td class="paramname">size </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td>   UTILS_MEMSET8( dest, value, size )</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>default memset function. </p>
|
||||
|
||||
<p class="definition">Definition at line <a class="el" href="stm32__seq_8c_source.html#l00110">110</a> of file <a class="el" href="stm32__seq_8c_source.html">stm32_seq.c</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="gad03df74638c0f274fa22474f034384bf"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gad03df74638c0f274fa22474f034384bf">◆ </a></span>UTIL_SEQ_NO_BIT_SET</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">#define UTIL_SEQ_NO_BIT_SET   (0U)</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>define to represent no bit set inside uint32_t mapping </p>
|
||||
|
||||
<p class="definition">Definition at line <a class="el" href="stm32__seq_8c_source.html#l00081">81</a> of file <a class="el" href="stm32__seq_8c_source.html">stm32_seq.c</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="ga9d782cdb4f3654c8238e9dd3adbabf16"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga9d782cdb4f3654c8238e9dd3adbabf16">◆ </a></span>UTIL_SEQ_NOTASKRUNNING</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">#define UTIL_SEQ_NOTASKRUNNING   (0xFFFFFFFFU)</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>define to represent no task running </p>
|
||||
|
||||
<p class="definition">Definition at line <a class="el" href="stm32__seq_8c_source.html#l00076">76</a> of file <a class="el" href="stm32__seq_8c_source.html">stm32_seq.c</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,11 @@
|
||||
var group___s_e_q_u_e_n_c_e_r___private__define =
|
||||
[
|
||||
[ "UTIL_SEQ_ALL_BIT_SET", "group___s_e_q_u_e_n_c_e_r___private__define.html#ga24e4c1a2fd61c0cbda16ba7f42f1703a", null ],
|
||||
[ "UTIL_SEQ_CONF_PRIO_NBR", "group___s_e_q_u_e_n_c_e_r___private__define.html#ga13e13f6ac2442ffb667502a9f35df865", null ],
|
||||
[ "UTIL_SEQ_CONF_TASK_NBR", "group___s_e_q_u_e_n_c_e_r___private__define.html#gaaf974b4a940fc6a921b3a76344e5c7ed", null ],
|
||||
[ "UTIL_SEQ_ENTER_CRITICAL_SECTION_IDLE", "group___s_e_q_u_e_n_c_e_r___private__define.html#ga7af4785dcb8ef602f75b2d8f423010c1", null ],
|
||||
[ "UTIL_SEQ_EXIT_CRITICAL_SECTION_IDLE", "group___s_e_q_u_e_n_c_e_r___private__define.html#ga2dcda5eb256d445147b385a8374cc658", null ],
|
||||
[ "UTIL_SEQ_MEMSET8", "group___s_e_q_u_e_n_c_e_r___private__define.html#gad3b4f5f14f4f512725984e6da759871c", null ],
|
||||
[ "UTIL_SEQ_NO_BIT_SET", "group___s_e_q_u_e_n_c_e_r___private__define.html#gad03df74638c0f274fa22474f034384bf", null ],
|
||||
[ "UTIL_SEQ_NOTASKRUNNING", "group___s_e_q_u_e_n_c_e_r___private__define.html#ga9d782cdb4f3654c8238e9dd3adbabf16", null ]
|
||||
];
|
||||
@@ -0,0 +1,143 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<meta name="generator" content="Doxygen 1.9.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>STM32 Sequencer: SEQUENCER private functions</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td id="projectalign" style="padding-left: 0.5em;">
|
||||
<div id="projectname">STM32 Sequencer
|
||||
 <span id="projectnumber">v1.6.0</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.9.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</script>
|
||||
<div id="main-nav"></div>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(document).ready(function(){initNavTree('group___s_e_q_u_e_n_c_e_r___private__function.html',''); initResizable(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<iframe src="javascript:void(0)" frameborder="0"
|
||||
name="MSearchResults" id="MSearchResults">
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#func-members">Functions</a> </div>
|
||||
<div class="headertitle">
|
||||
<div class="title">SEQUENCER private functions<div class="ingroups"><a class="el" href="group___s_e_q_u_e_n_c_e_r.html">sequencer utilities</a></div></div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
|
||||
Functions</h2></td></tr>
|
||||
<tr class="memitem:ga7dcde6efa35f7c100af9bf4117a4bf12"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___private__function.html#ga7dcde6efa35f7c100af9bf4117a4bf12">SEQ_BitPosition</a> (uint32_t Value)</td></tr>
|
||||
<tr class="memdesc:ga7dcde6efa35f7c100af9bf4117a4bf12"><td class="mdescLeft"> </td><td class="mdescRight">return the position of the first bit set to 1 <a href="group___s_e_q_u_e_n_c_e_r___private__function.html#ga7dcde6efa35f7c100af9bf4117a4bf12">More...</a><br /></td></tr>
|
||||
<tr class="separator:ga7dcde6efa35f7c100af9bf4117a4bf12"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||
<h2 class="groupheader">Function Documentation</h2>
|
||||
<a id="ga7dcde6efa35f7c100af9bf4117a4bf12"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga7dcde6efa35f7c100af9bf4117a4bf12">◆ </a></span>SEQ_BitPosition()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">uint8_t SEQ_BitPosition </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">uint32_t </td>
|
||||
<td class="paramname"><em>Value</em></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>return the position of the first bit set to 1 </p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramname">Value</td><td>32 bit value </td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="retval"><dt>Return values</dt><dd>
|
||||
<table class="retval">
|
||||
<tr><td class="paramname">bit</td><td>position </td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
<p class="definition">Definition at line <a class="el" href="stm32__seq_8c_source.html#l00519">519</a> of file <a class="el" href="stm32__seq_8c_source.html">stm32_seq.c</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,4 @@
|
||||
var group___s_e_q_u_e_n_c_e_r___private__function =
|
||||
[
|
||||
[ "SEQ_BitPosition", "group___s_e_q_u_e_n_c_e_r___private__function.html#ga7dcde6efa35f7c100af9bf4117a4bf12", null ]
|
||||
];
|
||||
@@ -0,0 +1,108 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<meta name="generator" content="Doxygen 1.9.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>STM32 Sequencer: SEQUENCER private type</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td id="projectalign" style="padding-left: 0.5em;">
|
||||
<div id="projectname">STM32 Sequencer
|
||||
 <span id="projectnumber">v1.6.0</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.9.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</script>
|
||||
<div id="main-nav"></div>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(document).ready(function(){initNavTree('group___s_e_q_u_e_n_c_e_r___private__type.html',''); initResizable(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<iframe src="javascript:void(0)" frameborder="0"
|
||||
name="MSearchResults" id="MSearchResults">
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#nested-classes">Data Structures</a> </div>
|
||||
<div class="headertitle">
|
||||
<div class="title">SEQUENCER private type<div class="ingroups"><a class="el" href="group___s_e_q_u_e_n_c_e_r.html">sequencer utilities</a></div></div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
|
||||
Data Structures</h2></td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_u_t_i_l___s_e_q___priority__t.html">UTIL_SEQ_Priority_t</a></td></tr>
|
||||
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">structure used to manage task scheduling <a href="struct_u_t_i_l___s_e_q___priority__t.html#details">More...</a><br /></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,7 @@
|
||||
var group___s_e_q_u_e_n_c_e_r___private__type =
|
||||
[
|
||||
[ "UTIL_SEQ_Priority_t", "struct_u_t_i_l___s_e_q___priority__t.html", [
|
||||
[ "priority", "struct_u_t_i_l___s_e_q___priority__t.html#a59563315cdb7b76c8a482160851cac3f", null ],
|
||||
[ "round_robin", "struct_u_t_i_l___s_e_q___priority__t.html#a10895a689ca10b69554ba4a822329f54", null ]
|
||||
] ]
|
||||
];
|
||||
@@ -0,0 +1,99 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<meta name="generator" content="Doxygen 1.9.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>STM32 Sequencer: SEQUENCER private variables</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td id="projectalign" style="padding-left: 0.5em;">
|
||||
<div id="projectname">STM32 Sequencer
|
||||
 <span id="projectnumber">v1.6.0</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.9.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</script>
|
||||
<div id="main-nav"></div>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(document).ready(function(){initNavTree('group___s_e_q_u_e_n_c_e_r___private__varaible.html',''); initResizable(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<iframe src="javascript:void(0)" frameborder="0"
|
||||
name="MSearchResults" id="MSearchResults">
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">SEQUENCER private variables<div class="ingroups"><a class="el" href="group___s_e_q_u_e_n_c_e_r.html">sequencer utilities</a></div></div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,11 @@
|
||||
var group___s_e_q_u_e_n_c_e_r___private__varaible =
|
||||
[
|
||||
[ "CurrentTaskIdx", "group___s_e_q_u_e_n_c_e_r___private__varaible.html#ga2d00e58496abe08f37dfaa2679226c35", null ],
|
||||
[ "EvtSet", "group___s_e_q_u_e_n_c_e_r___private__varaible.html#ga4c0c4cdb1e59756fac982daba7f66e8c", null ],
|
||||
[ "EvtWaited", "group___s_e_q_u_e_n_c_e_r___private__varaible.html#ga2993ab71529fc7f716b41b74c1475889", null ],
|
||||
[ "SuperMask", "group___s_e_q_u_e_n_c_e_r___private__varaible.html#ga0c890a69236d5f7438c51df3cf20c480", null ],
|
||||
[ "TaskCb", "group___s_e_q_u_e_n_c_e_r___private__varaible.html#ga893dc0e5ab501c52067b7eda416249aa", null ],
|
||||
[ "TaskMask", "group___s_e_q_u_e_n_c_e_r___private__varaible.html#ga5ac59b09d15935337ee4a154db1cde25", null ],
|
||||
[ "TaskPrio", "group___s_e_q_u_e_n_c_e_r___private__varaible.html#ga1a1b2fb52456411a929b68a015a66635", null ],
|
||||
[ "TaskSet", "group___s_e_q_u_e_n_c_e_r___private__varaible.html#gacf3f1ab2184d36d2cb57326539e3563b", null ]
|
||||
];
|
||||
98
Utilities/sequencer/html/index.html
Normal file
@@ -0,0 +1,98 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<meta name="generator" content="Doxygen 1.9.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>STM32 Sequencer: Main Page</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td id="projectalign" style="padding-left: 0.5em;">
|
||||
<div id="projectname">STM32 Sequencer
|
||||
 <span id="projectnumber">v1.6.0</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.9.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</script>
|
||||
<div id="main-nav"></div>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(document).ready(function(){initNavTree('index.html',''); initResizable(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<iframe src="javascript:void(0)" frameborder="0"
|
||||
name="MSearchResults" id="MSearchResults">
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">STM32 Sequencer Documentation</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
35
Utilities/sequencer/html/jquery.js
vendored
Normal file
51
Utilities/sequencer/html/menu.js
Normal file
@@ -0,0 +1,51 @@
|
||||
/*
|
||||
@licstart The following is the entire license notice for the JavaScript code in this file.
|
||||
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (C) 1997-2020 by Dimitri van Heesch
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
|
||||
and associated documentation files (the "Software"), to deal in the Software without restriction,
|
||||
including without limitation the rights to use, copy, modify, merge, publish, distribute,
|
||||
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or
|
||||
substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
|
||||
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
@licend The above is the entire license notice for the JavaScript code in this file
|
||||
*/
|
||||
function initMenu(relPath,searchEnabled,serverSide,searchPage,search) {
|
||||
function makeTree(data,relPath) {
|
||||
var result='';
|
||||
if ('children' in data) {
|
||||
result+='<ul>';
|
||||
for (var i in data.children) {
|
||||
result+='<li><a href="'+relPath+data.children[i].url+'">'+
|
||||
data.children[i].text+'</a>'+
|
||||
makeTree(data.children[i],relPath)+'</li>';
|
||||
}
|
||||
result+='</ul>';
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
$('#main-nav').append(makeTree(menudata,relPath));
|
||||
$('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu');
|
||||
if (searchEnabled) {
|
||||
if (serverSide) {
|
||||
$('#main-menu').append('<li style="float:right"><div id="MSearchBox" class="MSearchBoxInactive"><div class="left"><form id="FSearchBox" action="'+relPath+searchPage+'" method="get"><img id="MSearchSelect" src="'+relPath+'search/mag.svg" alt=""/><input type="text" id="MSearchField" name="query" value="'+search+'" size="20" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)"></form></div><div class="right"></div></div></li>');
|
||||
} else {
|
||||
$('#main-menu').append('<li style="float:right"><div id="MSearchBox" class="MSearchBoxInactive"><span class="left"><img id="MSearchSelect" src="'+relPath+'search/mag_sel.svg" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" alt=""/><input type="text" id="MSearchField" value="'+search+'" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)" onkeyup="searchBox.OnSearchFieldChange(event)"/></span><span class="right"><a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="'+relPath+'search/close.svg" alt=""/></a></span></div></li>');
|
||||
}
|
||||
}
|
||||
$('#main-menu').smartmenus();
|
||||
}
|
||||
/* @license-end */
|
||||
42
Utilities/sequencer/html/menudata.js
Normal file
@@ -0,0 +1,42 @@
|
||||
/*
|
||||
@licstart The following is the entire license notice for the JavaScript code in this file.
|
||||
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (C) 1997-2020 by Dimitri van Heesch
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
|
||||
and associated documentation files (the "Software"), to deal in the Software without restriction,
|
||||
including without limitation the rights to use, copy, modify, merge, publish, distribute,
|
||||
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or
|
||||
substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
|
||||
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
@licend The above is the entire license notice for the JavaScript code in this file
|
||||
*/
|
||||
var menudata={children:[
|
||||
{text:"Main Page",url:"index.html"},
|
||||
{text:"Modules",url:"modules.html"},
|
||||
{text:"Data Structures",url:"annotated.html",children:[
|
||||
{text:"Data Structures",url:"annotated.html"},
|
||||
{text:"Data Structure Index",url:"classes.html"},
|
||||
{text:"Data Fields",url:"functions.html",children:[
|
||||
{text:"All",url:"functions.html"},
|
||||
{text:"Variables",url:"functions_vars.html"}]}]},
|
||||
{text:"Files",url:"files.html",children:[
|
||||
{text:"File List",url:"files.html"},
|
||||
{text:"Globals",url:"globals.html",children:[
|
||||
{text:"All",url:"globals.html",children:[
|
||||
{text:"s",url:"globals.html#index_s"},
|
||||
{text:"u",url:"globals.html#index_u"}]},
|
||||
{text:"Functions",url:"globals_func.html"},
|
||||
{text:"Typedefs",url:"globals_type.html"},
|
||||
{text:"Macros",url:"globals_defs.html"}]}]}]}
|
||||
111
Utilities/sequencer/html/modules.html
Normal file
@@ -0,0 +1,111 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<meta name="generator" content="Doxygen 1.9.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>STM32 Sequencer: Modules</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td id="projectalign" style="padding-left: 0.5em;">
|
||||
<div id="projectname">STM32 Sequencer
|
||||
 <span id="projectnumber">v1.6.0</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.9.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */</script>
|
||||
<div id="main-nav"></div>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
$(document).ready(function(){initNavTree('modules.html',''); initResizable(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<iframe src="javascript:void(0)" frameborder="0"
|
||||
name="MSearchResults" id="MSearchResults">
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">Modules</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="textblock">Here is a list of all modules:</div><div class="directory">
|
||||
<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span>]</div><table class="directory">
|
||||
<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;"> </span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">▼</span><a class="el" href="group___s_e_q_u_e_n_c_e_r.html" target="_self">sequencer utilities</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_0_0_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="group___s_e_q_u_e_n_c_e_r___private__type.html" target="_self">SEQUENCER private type</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_0_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="group___s_e_q_u_e_n_c_e_r___private__define.html" target="_self">SEQUENCER private defines</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_0_2_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="group___s_e_q_u_e_n_c_e_r___private__varaible.html" target="_self">SEQUENCER private variables</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_0_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="group___s_e_q_u_e_n_c_e_r___private__function.html" target="_self">SEQUENCER private functions</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_0_4_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html" target="_self">SEQUENCER exported types</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_0_5_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__const.html" target="_self">SEQUENCER exported constants</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_0_6_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__macro.html" target="_self">SEQUENCER exported macros</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_0_7_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html" target="_self">SEQUENCER exported functions</a></td><td class="desc"></td></tr>
|
||||
</table>
|
||||
</div><!-- directory -->
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
4
Utilities/sequencer/html/modules.js
Normal file
@@ -0,0 +1,4 @@
|
||||
var modules =
|
||||
[
|
||||
[ "sequencer utilities", "group___s_e_q_u_e_n_c_e_r.html", "group___s_e_q_u_e_n_c_e_r" ]
|
||||
];
|
||||
BIN
Utilities/sequencer/html/nav_f.png
Normal file
|
After Width: | Height: | Size: 153 B |
BIN
Utilities/sequencer/html/nav_g.png
Normal file
|
After Width: | Height: | Size: 95 B |
BIN
Utilities/sequencer/html/nav_h.png
Normal file
|
After Width: | Height: | Size: 98 B |
146
Utilities/sequencer/html/navtree.css
Normal file
@@ -0,0 +1,146 @@
|
||||
#nav-tree .children_ul {
|
||||
margin:0;
|
||||
padding:4px;
|
||||
}
|
||||
|
||||
#nav-tree ul {
|
||||
list-style:none outside none;
|
||||
margin:0px;
|
||||
padding:0px;
|
||||
}
|
||||
|
||||
#nav-tree li {
|
||||
white-space:nowrap;
|
||||
margin:0px;
|
||||
padding:0px;
|
||||
}
|
||||
|
||||
#nav-tree .plus {
|
||||
margin:0px;
|
||||
}
|
||||
|
||||
#nav-tree .selected {
|
||||
background-image: url('tab_a.png');
|
||||
background-repeat:repeat-x;
|
||||
color: #fff;
|
||||
text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
|
||||
}
|
||||
|
||||
#nav-tree img {
|
||||
margin:0px;
|
||||
padding:0px;
|
||||
border:0px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
#nav-tree a {
|
||||
text-decoration:none;
|
||||
padding:0px;
|
||||
margin:0px;
|
||||
outline:none;
|
||||
}
|
||||
|
||||
#nav-tree .label {
|
||||
margin:0px;
|
||||
padding:0px;
|
||||
font: 12px 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
|
||||
}
|
||||
|
||||
#nav-tree .label a {
|
||||
padding:2px;
|
||||
}
|
||||
|
||||
#nav-tree .selected a {
|
||||
text-decoration:none;
|
||||
color:#fff;
|
||||
}
|
||||
|
||||
#nav-tree .children_ul {
|
||||
margin:0px;
|
||||
padding:0px;
|
||||
}
|
||||
|
||||
#nav-tree .item {
|
||||
margin:0px;
|
||||
padding:0px;
|
||||
}
|
||||
|
||||
#nav-tree {
|
||||
padding: 0px 0px;
|
||||
background-color: #FAFAFF;
|
||||
font-size:14px;
|
||||
overflow:auto;
|
||||
}
|
||||
|
||||
#doc-content {
|
||||
overflow:auto;
|
||||
display:block;
|
||||
padding:0px;
|
||||
margin:0px;
|
||||
-webkit-overflow-scrolling : touch; /* iOS 5+ */
|
||||
}
|
||||
|
||||
#side-nav {
|
||||
padding:0 6px 0 0;
|
||||
margin: 0px;
|
||||
display:block;
|
||||
position: absolute;
|
||||
left: 0px;
|
||||
width: 250px;
|
||||
}
|
||||
|
||||
.ui-resizable .ui-resizable-handle {
|
||||
display:block;
|
||||
}
|
||||
|
||||
.ui-resizable-e {
|
||||
background-image:url("splitbar.png");
|
||||
background-size:100%;
|
||||
background-repeat:repeat-y;
|
||||
background-attachment: scroll;
|
||||
cursor:ew-resize;
|
||||
height:100%;
|
||||
right:0;
|
||||
top:0;
|
||||
width:6px;
|
||||
}
|
||||
|
||||
.ui-resizable-handle {
|
||||
display:none;
|
||||
font-size:0.1px;
|
||||
position:absolute;
|
||||
z-index:1;
|
||||
}
|
||||
|
||||
#nav-tree-contents {
|
||||
margin: 6px 0px 0px 0px;
|
||||
}
|
||||
|
||||
#nav-tree {
|
||||
background-image:url('nav_h.png');
|
||||
background-repeat:repeat-x;
|
||||
background-color: #F9FAFC;
|
||||
-webkit-overflow-scrolling : touch; /* iOS 5+ */
|
||||
}
|
||||
|
||||
#nav-sync {
|
||||
position:absolute;
|
||||
top:5px;
|
||||
right:24px;
|
||||
z-index:0;
|
||||
}
|
||||
|
||||
#nav-sync img {
|
||||
opacity:0.3;
|
||||
}
|
||||
|
||||
#nav-sync img:hover {
|
||||
opacity:0.9;
|
||||
}
|
||||
|
||||
@media print
|
||||
{
|
||||
#nav-tree { display: none; }
|
||||
div.ui-resizable-handle { display: none; position: relative; }
|
||||
}
|
||||
|
||||
546
Utilities/sequencer/html/navtree.js
Normal file
@@ -0,0 +1,546 @@
|
||||
/*
|
||||
@licstart The following is the entire license notice for the JavaScript code in this file.
|
||||
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (C) 1997-2020 by Dimitri van Heesch
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
|
||||
and associated documentation files (the "Software"), to deal in the Software without restriction,
|
||||
including without limitation the rights to use, copy, modify, merge, publish, distribute,
|
||||
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or
|
||||
substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
|
||||
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
@licend The above is the entire license notice for the JavaScript code in this file
|
||||
*/
|
||||
var navTreeSubIndices = new Array();
|
||||
var arrowDown = '▼';
|
||||
var arrowRight = '►';
|
||||
|
||||
function getData(varName)
|
||||
{
|
||||
var i = varName.lastIndexOf('/');
|
||||
var n = i>=0 ? varName.substring(i+1) : varName;
|
||||
return eval(n.replace(/\-/g,'_'));
|
||||
}
|
||||
|
||||
function stripPath(uri)
|
||||
{
|
||||
return uri.substring(uri.lastIndexOf('/')+1);
|
||||
}
|
||||
|
||||
function stripPath2(uri)
|
||||
{
|
||||
var i = uri.lastIndexOf('/');
|
||||
var s = uri.substring(i+1);
|
||||
var m = uri.substring(0,i+1).match(/\/d\w\/d\w\w\/$/);
|
||||
return m ? uri.substring(i-6) : s;
|
||||
}
|
||||
|
||||
function hashValue()
|
||||
{
|
||||
return $(location).attr('hash').substring(1).replace(/[^\w\-]/g,'');
|
||||
}
|
||||
|
||||
function hashUrl()
|
||||
{
|
||||
return '#'+hashValue();
|
||||
}
|
||||
|
||||
function pathName()
|
||||
{
|
||||
return $(location).attr('pathname').replace(/[^-A-Za-z0-9+&@#/%?=~_|!:,.;\(\)]/g, '');
|
||||
}
|
||||
|
||||
function localStorageSupported()
|
||||
{
|
||||
try {
|
||||
return 'localStorage' in window && window['localStorage'] !== null && window.localStorage.getItem;
|
||||
}
|
||||
catch(e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
function storeLink(link)
|
||||
{
|
||||
if (!$("#nav-sync").hasClass('sync') && localStorageSupported()) {
|
||||
window.localStorage.setItem('navpath',link);
|
||||
}
|
||||
}
|
||||
|
||||
function deleteLink()
|
||||
{
|
||||
if (localStorageSupported()) {
|
||||
window.localStorage.setItem('navpath','');
|
||||
}
|
||||
}
|
||||
|
||||
function cachedLink()
|
||||
{
|
||||
if (localStorageSupported()) {
|
||||
return window.localStorage.getItem('navpath');
|
||||
} else {
|
||||
return '';
|
||||
}
|
||||
}
|
||||
|
||||
function getScript(scriptName,func,show)
|
||||
{
|
||||
var head = document.getElementsByTagName("head")[0];
|
||||
var script = document.createElement('script');
|
||||
script.id = scriptName;
|
||||
script.type = 'text/javascript';
|
||||
script.onload = func;
|
||||
script.src = scriptName+'.js';
|
||||
head.appendChild(script);
|
||||
}
|
||||
|
||||
function createIndent(o,domNode,node,level)
|
||||
{
|
||||
var level=-1;
|
||||
var n = node;
|
||||
while (n.parentNode) { level++; n=n.parentNode; }
|
||||
if (node.childrenData) {
|
||||
var imgNode = document.createElement("span");
|
||||
imgNode.className = 'arrow';
|
||||
imgNode.style.paddingLeft=(16*level).toString()+'px';
|
||||
imgNode.innerHTML=arrowRight;
|
||||
node.plus_img = imgNode;
|
||||
node.expandToggle = document.createElement("a");
|
||||
node.expandToggle.href = "javascript:void(0)";
|
||||
node.expandToggle.onclick = function() {
|
||||
if (node.expanded) {
|
||||
$(node.getChildrenUL()).slideUp("fast");
|
||||
node.plus_img.innerHTML=arrowRight;
|
||||
node.expanded = false;
|
||||
} else {
|
||||
expandNode(o, node, false, false);
|
||||
}
|
||||
}
|
||||
node.expandToggle.appendChild(imgNode);
|
||||
domNode.appendChild(node.expandToggle);
|
||||
} else {
|
||||
var span = document.createElement("span");
|
||||
span.className = 'arrow';
|
||||
span.style.width = 16*(level+1)+'px';
|
||||
span.innerHTML = ' ';
|
||||
domNode.appendChild(span);
|
||||
}
|
||||
}
|
||||
|
||||
var animationInProgress = false;
|
||||
|
||||
function gotoAnchor(anchor,aname,updateLocation)
|
||||
{
|
||||
var pos, docContent = $('#doc-content');
|
||||
var ancParent = $(anchor.parent());
|
||||
if (ancParent.hasClass('memItemLeft') ||
|
||||
ancParent.hasClass('memtitle') ||
|
||||
ancParent.hasClass('fieldname') ||
|
||||
ancParent.hasClass('fieldtype') ||
|
||||
ancParent.is(':header'))
|
||||
{
|
||||
pos = ancParent.position().top;
|
||||
} else if (anchor.position()) {
|
||||
pos = anchor.position().top;
|
||||
}
|
||||
if (pos) {
|
||||
var dist = Math.abs(Math.min(
|
||||
pos-docContent.offset().top,
|
||||
docContent[0].scrollHeight-
|
||||
docContent.height()-docContent.scrollTop()));
|
||||
animationInProgress=true;
|
||||
docContent.animate({
|
||||
scrollTop: pos + docContent.scrollTop() - docContent.offset().top
|
||||
},Math.max(50,Math.min(500,dist)),function(){
|
||||
if (updateLocation) window.location.href=aname;
|
||||
animationInProgress=false;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function newNode(o, po, text, link, childrenData, lastNode)
|
||||
{
|
||||
var node = new Object();
|
||||
node.children = Array();
|
||||
node.childrenData = childrenData;
|
||||
node.depth = po.depth + 1;
|
||||
node.relpath = po.relpath;
|
||||
node.isLast = lastNode;
|
||||
|
||||
node.li = document.createElement("li");
|
||||
po.getChildrenUL().appendChild(node.li);
|
||||
node.parentNode = po;
|
||||
|
||||
node.itemDiv = document.createElement("div");
|
||||
node.itemDiv.className = "item";
|
||||
|
||||
node.labelSpan = document.createElement("span");
|
||||
node.labelSpan.className = "label";
|
||||
|
||||
createIndent(o,node.itemDiv,node,0);
|
||||
node.itemDiv.appendChild(node.labelSpan);
|
||||
node.li.appendChild(node.itemDiv);
|
||||
|
||||
var a = document.createElement("a");
|
||||
node.labelSpan.appendChild(a);
|
||||
node.label = document.createTextNode(text);
|
||||
node.expanded = false;
|
||||
a.appendChild(node.label);
|
||||
if (link) {
|
||||
var url;
|
||||
if (link.substring(0,1)=='^') {
|
||||
url = link.substring(1);
|
||||
link = url;
|
||||
} else {
|
||||
url = node.relpath+link;
|
||||
}
|
||||
a.className = stripPath(link.replace('#',':'));
|
||||
if (link.indexOf('#')!=-1) {
|
||||
var aname = '#'+link.split('#')[1];
|
||||
var srcPage = stripPath(pathName());
|
||||
var targetPage = stripPath(link.split('#')[0]);
|
||||
a.href = srcPage!=targetPage ? url : "javascript:void(0)";
|
||||
a.onclick = function(){
|
||||
storeLink(link);
|
||||
if (!$(a).parent().parent().hasClass('selected'))
|
||||
{
|
||||
$('.item').removeClass('selected');
|
||||
$('.item').removeAttr('id');
|
||||
$(a).parent().parent().addClass('selected');
|
||||
$(a).parent().parent().attr('id','selected');
|
||||
}
|
||||
var anchor = $(aname);
|
||||
gotoAnchor(anchor,aname,true);
|
||||
};
|
||||
} else {
|
||||
a.href = url;
|
||||
a.onclick = function() { storeLink(link); }
|
||||
}
|
||||
} else {
|
||||
if (childrenData != null)
|
||||
{
|
||||
a.className = "nolink";
|
||||
a.href = "javascript:void(0)";
|
||||
a.onclick = node.expandToggle.onclick;
|
||||
}
|
||||
}
|
||||
|
||||
node.childrenUL = null;
|
||||
node.getChildrenUL = function() {
|
||||
if (!node.childrenUL) {
|
||||
node.childrenUL = document.createElement("ul");
|
||||
node.childrenUL.className = "children_ul";
|
||||
node.childrenUL.style.display = "none";
|
||||
node.li.appendChild(node.childrenUL);
|
||||
}
|
||||
return node.childrenUL;
|
||||
};
|
||||
|
||||
return node;
|
||||
}
|
||||
|
||||
function showRoot()
|
||||
{
|
||||
var headerHeight = $("#top").height();
|
||||
var footerHeight = $("#nav-path").height();
|
||||
var windowHeight = $(window).height() - headerHeight - footerHeight;
|
||||
(function (){ // retry until we can scroll to the selected item
|
||||
try {
|
||||
var navtree=$('#nav-tree');
|
||||
navtree.scrollTo('#selected',100,{offset:-windowHeight/2});
|
||||
} catch (err) {
|
||||
setTimeout(arguments.callee, 0);
|
||||
}
|
||||
})();
|
||||
}
|
||||
|
||||
function expandNode(o, node, imm, showRoot)
|
||||
{
|
||||
if (node.childrenData && !node.expanded) {
|
||||
if (typeof(node.childrenData)==='string') {
|
||||
var varName = node.childrenData;
|
||||
getScript(node.relpath+varName,function(){
|
||||
node.childrenData = getData(varName);
|
||||
expandNode(o, node, imm, showRoot);
|
||||
}, showRoot);
|
||||
} else {
|
||||
if (!node.childrenVisited) {
|
||||
getNode(o, node);
|
||||
}
|
||||
$(node.getChildrenUL()).slideDown("fast");
|
||||
node.plus_img.innerHTML = arrowDown;
|
||||
node.expanded = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function glowEffect(n,duration)
|
||||
{
|
||||
n.addClass('glow').delay(duration).queue(function(next){
|
||||
$(this).removeClass('glow');next();
|
||||
});
|
||||
}
|
||||
|
||||
function highlightAnchor()
|
||||
{
|
||||
var aname = hashUrl();
|
||||
var anchor = $(aname);
|
||||
if (anchor.parent().attr('class')=='memItemLeft'){
|
||||
var rows = $('.memberdecls tr[class$="'+hashValue()+'"]');
|
||||
glowEffect(rows.children(),300); // member without details
|
||||
} else if (anchor.parent().attr('class')=='fieldname'){
|
||||
glowEffect(anchor.parent().parent(),1000); // enum value
|
||||
} else if (anchor.parent().attr('class')=='fieldtype'){
|
||||
glowEffect(anchor.parent().parent(),1000); // struct field
|
||||
} else if (anchor.parent().is(":header")) {
|
||||
glowEffect(anchor.parent(),1000); // section header
|
||||
} else {
|
||||
glowEffect(anchor.next(),1000); // normal member
|
||||
}
|
||||
}
|
||||
|
||||
function selectAndHighlight(hash,n)
|
||||
{
|
||||
var a;
|
||||
if (hash) {
|
||||
var link=stripPath(pathName())+':'+hash.substring(1);
|
||||
a=$('.item a[class$="'+link+'"]');
|
||||
}
|
||||
if (a && a.length) {
|
||||
a.parent().parent().addClass('selected');
|
||||
a.parent().parent().attr('id','selected');
|
||||
highlightAnchor();
|
||||
} else if (n) {
|
||||
$(n.itemDiv).addClass('selected');
|
||||
$(n.itemDiv).attr('id','selected');
|
||||
}
|
||||
if ($('#nav-tree-contents .item:first').hasClass('selected')) {
|
||||
$('#nav-sync').css('top','30px');
|
||||
} else {
|
||||
$('#nav-sync').css('top','5px');
|
||||
}
|
||||
showRoot();
|
||||
}
|
||||
|
||||
function showNode(o, node, index, hash)
|
||||
{
|
||||
if (node && node.childrenData) {
|
||||
if (typeof(node.childrenData)==='string') {
|
||||
var varName = node.childrenData;
|
||||
getScript(node.relpath+varName,function(){
|
||||
node.childrenData = getData(varName);
|
||||
showNode(o,node,index,hash);
|
||||
},true);
|
||||
} else {
|
||||
if (!node.childrenVisited) {
|
||||
getNode(o, node);
|
||||
}
|
||||
$(node.getChildrenUL()).css({'display':'block'});
|
||||
node.plus_img.innerHTML = arrowDown;
|
||||
node.expanded = true;
|
||||
var n = node.children[o.breadcrumbs[index]];
|
||||
if (index+1<o.breadcrumbs.length) {
|
||||
showNode(o,n,index+1,hash);
|
||||
} else {
|
||||
if (typeof(n.childrenData)==='string') {
|
||||
var varName = n.childrenData;
|
||||
getScript(n.relpath+varName,function(){
|
||||
n.childrenData = getData(varName);
|
||||
node.expanded=false;
|
||||
showNode(o,node,index,hash); // retry with child node expanded
|
||||
},true);
|
||||
} else {
|
||||
var rootBase = stripPath(o.toroot.replace(/\..+$/, ''));
|
||||
if (rootBase=="index" || rootBase=="pages" || rootBase=="search") {
|
||||
expandNode(o, n, true, true);
|
||||
}
|
||||
selectAndHighlight(hash,n);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
selectAndHighlight(hash);
|
||||
}
|
||||
}
|
||||
|
||||
function removeToInsertLater(element) {
|
||||
var parentNode = element.parentNode;
|
||||
var nextSibling = element.nextSibling;
|
||||
parentNode.removeChild(element);
|
||||
return function() {
|
||||
if (nextSibling) {
|
||||
parentNode.insertBefore(element, nextSibling);
|
||||
} else {
|
||||
parentNode.appendChild(element);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
function getNode(o, po)
|
||||
{
|
||||
var insertFunction = removeToInsertLater(po.li);
|
||||
po.childrenVisited = true;
|
||||
var l = po.childrenData.length-1;
|
||||
for (var i in po.childrenData) {
|
||||
var nodeData = po.childrenData[i];
|
||||
po.children[i] = newNode(o, po, nodeData[0], nodeData[1], nodeData[2],
|
||||
i==l);
|
||||
}
|
||||
insertFunction();
|
||||
}
|
||||
|
||||
function gotoNode(o,subIndex,root,hash,relpath)
|
||||
{
|
||||
var nti = navTreeSubIndices[subIndex][root+hash];
|
||||
o.breadcrumbs = $.extend(true, [], nti ? nti : navTreeSubIndices[subIndex][root]);
|
||||
if (!o.breadcrumbs && root!=NAVTREE[0][1]) { // fallback: show index
|
||||
navTo(o,NAVTREE[0][1],"",relpath);
|
||||
$('.item').removeClass('selected');
|
||||
$('.item').removeAttr('id');
|
||||
}
|
||||
if (o.breadcrumbs) {
|
||||
o.breadcrumbs.unshift(0); // add 0 for root node
|
||||
showNode(o, o.node, 0, hash);
|
||||
}
|
||||
}
|
||||
|
||||
function navTo(o,root,hash,relpath)
|
||||
{
|
||||
var link = cachedLink();
|
||||
if (link) {
|
||||
var parts = link.split('#');
|
||||
root = parts[0];
|
||||
if (parts.length>1) hash = '#'+parts[1].replace(/[^\w\-]/g,'');
|
||||
else hash='';
|
||||
}
|
||||
if (hash.match(/^#l\d+$/)) {
|
||||
var anchor=$('a[name='+hash.substring(1)+']');
|
||||
glowEffect(anchor.parent(),1000); // line number
|
||||
hash=''; // strip line number anchors
|
||||
}
|
||||
var url=root+hash;
|
||||
var i=-1;
|
||||
while (NAVTREEINDEX[i+1]<=url) i++;
|
||||
if (i==-1) { i=0; root=NAVTREE[0][1]; } // fallback: show index
|
||||
if (navTreeSubIndices[i]) {
|
||||
gotoNode(o,i,root,hash,relpath)
|
||||
} else {
|
||||
getScript(relpath+'navtreeindex'+i,function(){
|
||||
navTreeSubIndices[i] = eval('NAVTREEINDEX'+i);
|
||||
if (navTreeSubIndices[i]) {
|
||||
gotoNode(o,i,root,hash,relpath);
|
||||
}
|
||||
},true);
|
||||
}
|
||||
}
|
||||
|
||||
function showSyncOff(n,relpath)
|
||||
{
|
||||
n.html('<img src="'+relpath+'sync_off.png" title="'+SYNCOFFMSG+'"/>');
|
||||
}
|
||||
|
||||
function showSyncOn(n,relpath)
|
||||
{
|
||||
n.html('<img src="'+relpath+'sync_on.png" title="'+SYNCONMSG+'"/>');
|
||||
}
|
||||
|
||||
function toggleSyncButton(relpath)
|
||||
{
|
||||
var navSync = $('#nav-sync');
|
||||
if (navSync.hasClass('sync')) {
|
||||
navSync.removeClass('sync');
|
||||
showSyncOff(navSync,relpath);
|
||||
storeLink(stripPath2(pathName())+hashUrl());
|
||||
} else {
|
||||
navSync.addClass('sync');
|
||||
showSyncOn(navSync,relpath);
|
||||
deleteLink();
|
||||
}
|
||||
}
|
||||
|
||||
var loadTriggered = false;
|
||||
var readyTriggered = false;
|
||||
var loadObject,loadToRoot,loadUrl,loadRelPath;
|
||||
|
||||
$(window).on('load',function(){
|
||||
if (readyTriggered) { // ready first
|
||||
navTo(loadObject,loadToRoot,loadUrl,loadRelPath);
|
||||
showRoot();
|
||||
}
|
||||
loadTriggered=true;
|
||||
});
|
||||
|
||||
function initNavTree(toroot,relpath)
|
||||
{
|
||||
var o = new Object();
|
||||
o.toroot = toroot;
|
||||
o.node = new Object();
|
||||
o.node.li = document.getElementById("nav-tree-contents");
|
||||
o.node.childrenData = NAVTREE;
|
||||
o.node.children = new Array();
|
||||
o.node.childrenUL = document.createElement("ul");
|
||||
o.node.getChildrenUL = function() { return o.node.childrenUL; };
|
||||
o.node.li.appendChild(o.node.childrenUL);
|
||||
o.node.depth = 0;
|
||||
o.node.relpath = relpath;
|
||||
o.node.expanded = false;
|
||||
o.node.isLast = true;
|
||||
o.node.plus_img = document.createElement("span");
|
||||
o.node.plus_img.className = 'arrow';
|
||||
o.node.plus_img.innerHTML = arrowRight;
|
||||
|
||||
if (localStorageSupported()) {
|
||||
var navSync = $('#nav-sync');
|
||||
if (cachedLink()) {
|
||||
showSyncOff(navSync,relpath);
|
||||
navSync.removeClass('sync');
|
||||
} else {
|
||||
showSyncOn(navSync,relpath);
|
||||
}
|
||||
navSync.click(function(){ toggleSyncButton(relpath); });
|
||||
}
|
||||
|
||||
if (loadTriggered) { // load before ready
|
||||
navTo(o,toroot,hashUrl(),relpath);
|
||||
showRoot();
|
||||
} else { // ready before load
|
||||
loadObject = o;
|
||||
loadToRoot = toroot;
|
||||
loadUrl = hashUrl();
|
||||
loadRelPath = relpath;
|
||||
readyTriggered=true;
|
||||
}
|
||||
|
||||
$(window).bind('hashchange', function(){
|
||||
if (window.location.hash && window.location.hash.length>1){
|
||||
var a;
|
||||
if ($(location).attr('hash')){
|
||||
var clslink=stripPath(pathName())+':'+hashValue();
|
||||
a=$('.item a[class$="'+clslink.replace(/</g,'\\3c ')+'"]');
|
||||
}
|
||||
if (a==null || !$(a).parent().parent().hasClass('selected')){
|
||||
$('.item').removeClass('selected');
|
||||
$('.item').removeAttr('id');
|
||||
}
|
||||
var link=stripPath2(pathName());
|
||||
navTo(o,link,hashUrl(),relpath);
|
||||
} else if (!animationInProgress) {
|
||||
$('#doc-content').scrollTop(0);
|
||||
$('.item').removeClass('selected');
|
||||
$('.item').removeAttr('id');
|
||||
navTo(o,toroot,hashUrl(),relpath);
|
||||
}
|
||||
})
|
||||
}
|
||||
/* @license-end */
|
||||
55
Utilities/sequencer/html/navtreedata.js
Normal file
@@ -0,0 +1,55 @@
|
||||
/*
|
||||
@licstart The following is the entire license notice for the JavaScript code in this file.
|
||||
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (C) 1997-2020 by Dimitri van Heesch
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
|
||||
and associated documentation files (the "Software"), to deal in the Software without restriction,
|
||||
including without limitation the rights to use, copy, modify, merge, publish, distribute,
|
||||
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or
|
||||
substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
|
||||
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
@licend The above is the entire license notice for the JavaScript code in this file
|
||||
*/
|
||||
var NAVTREE =
|
||||
[
|
||||
[ "STM32 Sequencer", "index.html", [
|
||||
[ "Modules", "modules.html", "modules" ],
|
||||
[ "Data Structures", "annotated.html", [
|
||||
[ "Data Structures", "annotated.html", "annotated_dup" ],
|
||||
[ "Data Structure Index", "classes.html", null ],
|
||||
[ "Data Fields", "functions.html", [
|
||||
[ "All", "functions.html", null ],
|
||||
[ "Variables", "functions_vars.html", null ]
|
||||
] ]
|
||||
] ],
|
||||
[ "Files", "files.html", [
|
||||
[ "File List", "files.html", "files_dup" ],
|
||||
[ "Globals", "globals.html", [
|
||||
[ "All", "globals.html", null ],
|
||||
[ "Functions", "globals_func.html", null ],
|
||||
[ "Typedefs", "globals_type.html", null ],
|
||||
[ "Macros", "globals_defs.html", null ]
|
||||
] ]
|
||||
] ]
|
||||
] ]
|
||||
];
|
||||
|
||||
var NAVTREEINDEX =
|
||||
[
|
||||
"annotated.html"
|
||||
];
|
||||
|
||||
var SYNCONMSG = 'click to disable panel synchronisation';
|
||||
var SYNCOFFMSG = 'click to enable panel synchronisation';
|
||||
110
Utilities/sequencer/html/navtreeindex0.js
Normal file
@@ -0,0 +1,110 @@
|
||||
var NAVTREEINDEX0 =
|
||||
{
|
||||
"annotated.html":[1,0],
|
||||
"classes.html":[1,1],
|
||||
"files.html":[2,0],
|
||||
"functions.html":[1,2,0],
|
||||
"functions_vars.html":[1,2,1],
|
||||
"globals.html":[2,1,0],
|
||||
"globals_defs.html":[2,1,3],
|
||||
"globals_func.html":[2,1,1],
|
||||
"globals_type.html":[2,1,2],
|
||||
"group___s_e_q_u_e_n_c_e_r.html":[0,0],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__const.html":[0,0,5],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__const.html#ga44641e680786c27986945f4d0589c83a":[2,0,1,1],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__const.html#ga44641e680786c27986945f4d0589c83a":[0,0,5,1],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__const.html#ga46541edfe05cb5082dec927f2bcf7b46":[2,0,1,0],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__const.html#ga46541edfe05cb5082dec927f2bcf7b46":[0,0,5,0],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__function.html":[0,0,7],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__function.html#ga20f607dcbe03ca04f5c56a47e3cc846c":[2,0,0,23],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__function.html#ga20f607dcbe03ca04f5c56a47e3cc846c":[0,0,7,14],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__function.html#ga20f607dcbe03ca04f5c56a47e3cc846c":[2,0,1,19],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__function.html#ga2b48c77f677158e69ff072f7c05cded4":[2,0,1,5],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__function.html#ga2b48c77f677158e69ff072f7c05cded4":[0,0,7,0],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__function.html#ga2b48c77f677158e69ff072f7c05cded4":[2,0,0,9],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__function.html#ga3546ca66266d5cc956741505318723a2":[2,0,0,25],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__function.html#ga3546ca66266d5cc956741505318723a2":[0,0,7,16],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__function.html#ga3546ca66266d5cc956741505318723a2":[2,0,1,21],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__function.html#ga373387b03a48559d58eacb919f44a799":[2,0,0,19],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__function.html#ga373387b03a48559d58eacb919f44a799":[0,0,7,10],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__function.html#ga373387b03a48559d58eacb919f44a799":[2,0,1,15],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__function.html#ga481b45c409e4d8180c64efdef67daa7f":[2,0,0,18],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__function.html#ga481b45c409e4d8180c64efdef67daa7f":[0,0,7,9],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__function.html#ga481b45c409e4d8180c64efdef67daa7f":[2,0,1,14],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__function.html#ga58bf5ad581a43e749b60a811353af558":[2,0,0,16],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__function.html#ga58bf5ad581a43e749b60a811353af558":[0,0,7,7],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__function.html#ga58bf5ad581a43e749b60a811353af558":[2,0,1,12],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__function.html#ga5efb8394fc5244b650c8cc8f642e6271":[2,0,0,12],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__function.html#ga5efb8394fc5244b650c8cc8f642e6271":[0,0,7,3],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__function.html#ga5efb8394fc5244b650c8cc8f642e6271":[2,0,1,8],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__function.html#ga66de990da4bde412751f15a7622a0da8":[2,0,0,24],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__function.html#ga66de990da4bde412751f15a7622a0da8":[0,0,7,15],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__function.html#ga66de990da4bde412751f15a7622a0da8":[2,0,1,20],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__function.html#ga66f6a7fbff82b6d397ca054bcf9350ec":[2,0,0,21],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__function.html#ga66f6a7fbff82b6d397ca054bcf9350ec":[0,0,7,12],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__function.html#ga66f6a7fbff82b6d397ca054bcf9350ec":[2,0,1,17],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__function.html#ga6bd90dbfc7e3515391128d1ca1739c17":[0,0,7,2],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__function.html#ga6bd90dbfc7e3515391128d1ca1739c17":[2,0,0,11],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__function.html#ga6bd90dbfc7e3515391128d1ca1739c17":[2,0,1,7],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__function.html#ga8d6c2fd6aac8b833a25602ec4b8c5fc7":[2,0,0,14],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__function.html#ga8d6c2fd6aac8b833a25602ec4b8c5fc7":[0,0,7,5],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__function.html#ga8d6c2fd6aac8b833a25602ec4b8c5fc7":[2,0,1,10],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__function.html#ga91cceef5931daa30c4ec3a6577c11106":[2,0,0,10],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__function.html#ga91cceef5931daa30c4ec3a6577c11106":[2,0,1,6],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__function.html#ga91cceef5931daa30c4ec3a6577c11106":[0,0,7,1],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__function.html#gaa177da1e5c77c8430096356181d12b18":[2,0,0,15],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__function.html#gaa177da1e5c77c8430096356181d12b18":[0,0,7,6],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__function.html#gaa177da1e5c77c8430096356181d12b18":[2,0,1,11],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__function.html#gaad482af89f56e87da251f56d98674c02":[2,0,1,13],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__function.html#gaad482af89f56e87da251f56d98674c02":[2,0,0,17],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__function.html#gaad482af89f56e87da251f56d98674c02":[0,0,7,8],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__function.html#gacb5ddba0d11449d470c840d0bd961c14":[2,0,0,20],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__function.html#gacb5ddba0d11449d470c840d0bd961c14":[2,0,1,16],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__function.html#gacb5ddba0d11449d470c840d0bd961c14":[0,0,7,11],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__function.html#gae047669fe53f205396460fdbd3a5d8f5":[2,0,0,22],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__function.html#gae047669fe53f205396460fdbd3a5d8f5":[0,0,7,13],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__function.html#gae047669fe53f205396460fdbd3a5d8f5":[2,0,1,18],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__function.html#gaef07a06c105da3570c971633460a8aa5":[0,0,7,4],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__function.html#gaef07a06c105da3570c971633460a8aa5":[2,0,0,13],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__function.html#gaef07a06c105da3570c971633460a8aa5":[2,0,1,9],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__macro.html":[0,0,6],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__macro.html#ga99985a546d3297b5fd8ace7f5f045c14":[2,0,1,3],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__macro.html#ga99985a546d3297b5fd8ace7f5f045c14":[0,0,6,1],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__macro.html#gac4b0290fac7278810aa24b9be4574da1":[2,0,1,2],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__macro.html#gac4b0290fac7278810aa24b9be4574da1":[0,0,6,0],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__type.html":[0,0,4],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707":[2,0,1,4],
|
||||
"group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707":[0,0,4,0],
|
||||
"group___s_e_q_u_e_n_c_e_r___private__define.html":[0,0,1],
|
||||
"group___s_e_q_u_e_n_c_e_r___private__define.html#ga13e13f6ac2442ffb667502a9f35df865":[2,0,0,1],
|
||||
"group___s_e_q_u_e_n_c_e_r___private__define.html#ga13e13f6ac2442ffb667502a9f35df865":[0,0,1,1],
|
||||
"group___s_e_q_u_e_n_c_e_r___private__define.html#ga24e4c1a2fd61c0cbda16ba7f42f1703a":[2,0,0,0],
|
||||
"group___s_e_q_u_e_n_c_e_r___private__define.html#ga24e4c1a2fd61c0cbda16ba7f42f1703a":[0,0,1,0],
|
||||
"group___s_e_q_u_e_n_c_e_r___private__define.html#ga2dcda5eb256d445147b385a8374cc658":[0,0,1,4],
|
||||
"group___s_e_q_u_e_n_c_e_r___private__define.html#ga2dcda5eb256d445147b385a8374cc658":[2,0,0,4],
|
||||
"group___s_e_q_u_e_n_c_e_r___private__define.html#ga7af4785dcb8ef602f75b2d8f423010c1":[0,0,1,3],
|
||||
"group___s_e_q_u_e_n_c_e_r___private__define.html#ga7af4785dcb8ef602f75b2d8f423010c1":[2,0,0,3],
|
||||
"group___s_e_q_u_e_n_c_e_r___private__define.html#ga9d782cdb4f3654c8238e9dd3adbabf16":[0,0,1,7],
|
||||
"group___s_e_q_u_e_n_c_e_r___private__define.html#ga9d782cdb4f3654c8238e9dd3adbabf16":[2,0,0,7],
|
||||
"group___s_e_q_u_e_n_c_e_r___private__define.html#gaaf974b4a940fc6a921b3a76344e5c7ed":[2,0,0,2],
|
||||
"group___s_e_q_u_e_n_c_e_r___private__define.html#gaaf974b4a940fc6a921b3a76344e5c7ed":[0,0,1,2],
|
||||
"group___s_e_q_u_e_n_c_e_r___private__define.html#gad03df74638c0f274fa22474f034384bf":[0,0,1,6],
|
||||
"group___s_e_q_u_e_n_c_e_r___private__define.html#gad03df74638c0f274fa22474f034384bf":[2,0,0,6],
|
||||
"group___s_e_q_u_e_n_c_e_r___private__define.html#gad3b4f5f14f4f512725984e6da759871c":[0,0,1,5],
|
||||
"group___s_e_q_u_e_n_c_e_r___private__define.html#gad3b4f5f14f4f512725984e6da759871c":[2,0,0,5],
|
||||
"group___s_e_q_u_e_n_c_e_r___private__function.html":[0,0,3],
|
||||
"group___s_e_q_u_e_n_c_e_r___private__function.html#ga7dcde6efa35f7c100af9bf4117a4bf12":[2,0,0,8],
|
||||
"group___s_e_q_u_e_n_c_e_r___private__function.html#ga7dcde6efa35f7c100af9bf4117a4bf12":[0,0,3,0],
|
||||
"group___s_e_q_u_e_n_c_e_r___private__type.html":[0,0,0],
|
||||
"group___s_e_q_u_e_n_c_e_r___private__varaible.html":[0,0,2],
|
||||
"index.html":[],
|
||||
"modules.html":[0],
|
||||
"pages.html":[],
|
||||
"stm32__seq_8c.html":[2,0,0],
|
||||
"stm32__seq_8c_source.html":[2,0,0],
|
||||
"stm32__seq_8h.html":[2,0,1],
|
||||
"stm32__seq_8h_source.html":[2,0,1],
|
||||
"struct_u_t_i_l___s_e_q___priority__t.html":[0,0,0,0],
|
||||
"struct_u_t_i_l___s_e_q___priority__t.html#a10895a689ca10b69554ba4a822329f54":[0,0,0,0,1],
|
||||
"struct_u_t_i_l___s_e_q___priority__t.html#a59563315cdb7b76c8a482160851cac3f":[0,0,0,0,0]
|
||||
};
|
||||
BIN
Utilities/sequencer/html/open.png
Normal file
|
After Width: | Height: | Size: 123 B |
140
Utilities/sequencer/html/resize.js
Normal file
@@ -0,0 +1,140 @@
|
||||
/*
|
||||
@licstart The following is the entire license notice for the JavaScript code in this file.
|
||||
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (C) 1997-2020 by Dimitri van Heesch
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
|
||||
and associated documentation files (the "Software"), to deal in the Software without restriction,
|
||||
including without limitation the rights to use, copy, modify, merge, publish, distribute,
|
||||
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or
|
||||
substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
|
||||
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
@licend The above is the entire license notice for the JavaScript code in this file
|
||||
*/
|
||||
function initResizable()
|
||||
{
|
||||
var cookie_namespace = 'doxygen';
|
||||
var sidenav,navtree,content,header,collapsed,collapsedWidth=0,barWidth=6,desktop_vp=768,titleHeight;
|
||||
|
||||
function readCookie(cookie)
|
||||
{
|
||||
var myCookie = cookie_namespace+"_"+cookie+"=";
|
||||
if (document.cookie) {
|
||||
var index = document.cookie.indexOf(myCookie);
|
||||
if (index != -1) {
|
||||
var valStart = index + myCookie.length;
|
||||
var valEnd = document.cookie.indexOf(";", valStart);
|
||||
if (valEnd == -1) {
|
||||
valEnd = document.cookie.length;
|
||||
}
|
||||
var val = document.cookie.substring(valStart, valEnd);
|
||||
return val;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
function writeCookie(cookie, val, expiration)
|
||||
{
|
||||
if (val==undefined) return;
|
||||
if (expiration == null) {
|
||||
var date = new Date();
|
||||
date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week
|
||||
expiration = date.toGMTString();
|
||||
}
|
||||
document.cookie = cookie_namespace + "_" + cookie + "=" + val + "; expires=" + expiration+"; path=/";
|
||||
}
|
||||
|
||||
function resizeWidth()
|
||||
{
|
||||
var windowWidth = $(window).width() + "px";
|
||||
var sidenavWidth = $(sidenav).outerWidth();
|
||||
content.css({marginLeft:parseInt(sidenavWidth)+"px"});
|
||||
writeCookie('width',sidenavWidth-barWidth, null);
|
||||
}
|
||||
|
||||
function restoreWidth(navWidth)
|
||||
{
|
||||
var windowWidth = $(window).width() + "px";
|
||||
content.css({marginLeft:parseInt(navWidth)+barWidth+"px"});
|
||||
sidenav.css({width:navWidth + "px"});
|
||||
}
|
||||
|
||||
function resizeHeight()
|
||||
{
|
||||
var headerHeight = header.outerHeight();
|
||||
var footerHeight = footer.outerHeight();
|
||||
var windowHeight = $(window).height() - headerHeight - footerHeight;
|
||||
content.css({height:windowHeight + "px"});
|
||||
navtree.css({height:windowHeight + "px"});
|
||||
sidenav.css({height:windowHeight + "px"});
|
||||
var width=$(window).width();
|
||||
if (width!=collapsedWidth) {
|
||||
if (width<desktop_vp && collapsedWidth>=desktop_vp) {
|
||||
if (!collapsed) {
|
||||
collapseExpand();
|
||||
}
|
||||
} else if (width>desktop_vp && collapsedWidth<desktop_vp) {
|
||||
if (collapsed) {
|
||||
collapseExpand();
|
||||
}
|
||||
}
|
||||
collapsedWidth=width;
|
||||
}
|
||||
if (location.hash.slice(1)) {
|
||||
(document.getElementById(location.hash.slice(1))||document.body).scrollIntoView();
|
||||
}
|
||||
}
|
||||
|
||||
function collapseExpand()
|
||||
{
|
||||
if (sidenav.width()>0) {
|
||||
restoreWidth(0);
|
||||
collapsed=true;
|
||||
}
|
||||
else {
|
||||
var width = readCookie('width');
|
||||
if (width>200 && width<$(window).width()) { restoreWidth(width); } else { restoreWidth(200); }
|
||||
collapsed=false;
|
||||
}
|
||||
}
|
||||
|
||||
header = $("#top");
|
||||
sidenav = $("#side-nav");
|
||||
content = $("#doc-content");
|
||||
navtree = $("#nav-tree");
|
||||
footer = $("#nav-path");
|
||||
$(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } });
|
||||
$(sidenav).resizable({ minWidth: 0 });
|
||||
$(window).resize(function() { resizeHeight(); });
|
||||
var device = navigator.userAgent.toLowerCase();
|
||||
var touch_device = device.match(/(iphone|ipod|ipad|android)/);
|
||||
if (touch_device) { /* wider split bar for touch only devices */
|
||||
$(sidenav).css({ paddingRight:'20px' });
|
||||
$('.ui-resizable-e').css({ width:'20px' });
|
||||
$('#nav-sync').css({ right:'34px' });
|
||||
barWidth=20;
|
||||
}
|
||||
var width = readCookie('width');
|
||||
if (width) { restoreWidth(width); } else { resizeWidth(); }
|
||||
resizeHeight();
|
||||
var url = location.href;
|
||||
var i=url.indexOf("#");
|
||||
if (i>=0) window.location.hash=url.substr(i);
|
||||
var _preventDefault = function(evt) { evt.preventDefault(); };
|
||||
$("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault);
|
||||
$(".ui-resizable-handle").dblclick(collapseExpand);
|
||||
$(window).on('load',resizeHeight);
|
||||
}
|
||||
/* @license-end */
|
||||
37
Utilities/sequencer/html/search/all_0.html
Normal file
@@ -0,0 +1,37 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head><title></title>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta name="generator" content="Doxygen 1.9.1"/>
|
||||
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||
<script type="text/javascript" src="all_0.js"></script>
|
||||
<script type="text/javascript" src="search.js"></script>
|
||||
</head>
|
||||
<body class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div id="SRResults"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
createResults();
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
document.getElementById("Loading").style.display="none";
|
||||
document.getElementById("NoMatches").style.display="none";
|
||||
var searchResults = new SearchResults("searchResults");
|
||||
searchResults.Search();
|
||||
window.addEventListener("message", function(event) {
|
||||
if (event.data == "take_focus") {
|
||||
var elem = searchResults.NavNext(0);
|
||||
if (elem) elem.focus();
|
||||
}
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
4
Utilities/sequencer/html/search/all_0.js
Normal file
@@ -0,0 +1,4 @@
|
||||
var searchData=
|
||||
[
|
||||
['priority_0',['priority',['../struct_u_t_i_l___s_e_q___priority__t.html#a59563315cdb7b76c8a482160851cac3f',1,'UTIL_SEQ_Priority_t']]]
|
||||
];
|
||||
37
Utilities/sequencer/html/search/all_1.html
Normal file
@@ -0,0 +1,37 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head><title></title>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta name="generator" content="Doxygen 1.9.1"/>
|
||||
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||
<script type="text/javascript" src="all_1.js"></script>
|
||||
<script type="text/javascript" src="search.js"></script>
|
||||
</head>
|
||||
<body class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div id="SRResults"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
createResults();
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
document.getElementById("Loading").style.display="none";
|
||||
document.getElementById("NoMatches").style.display="none";
|
||||
var searchResults = new SearchResults("searchResults");
|
||||
searchResults.Search();
|
||||
window.addEventListener("message", function(event) {
|
||||
if (event.data == "take_focus") {
|
||||
var elem = searchResults.NavNext(0);
|
||||
if (elem) elem.focus();
|
||||
}
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
4
Utilities/sequencer/html/search/all_1.js
Normal file
@@ -0,0 +1,4 @@
|
||||
var searchData=
|
||||
[
|
||||
['round_5frobin_1',['round_robin',['../struct_u_t_i_l___s_e_q___priority__t.html#a10895a689ca10b69554ba4a822329f54',1,'UTIL_SEQ_Priority_t']]]
|
||||
];
|
||||
37
Utilities/sequencer/html/search/all_2.html
Normal file
@@ -0,0 +1,37 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head><title></title>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta name="generator" content="Doxygen 1.9.1"/>
|
||||
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||
<script type="text/javascript" src="all_2.js"></script>
|
||||
<script type="text/javascript" src="search.js"></script>
|
||||
</head>
|
||||
<body class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div id="SRResults"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
createResults();
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
document.getElementById("Loading").style.display="none";
|
||||
document.getElementById("NoMatches").style.display="none";
|
||||
var searchResults = new SearchResults("searchResults");
|
||||
searchResults.Search();
|
||||
window.addEventListener("message", function(event) {
|
||||
if (event.data == "take_focus") {
|
||||
var elem = searchResults.NavNext(0);
|
||||
if (elem) elem.focus();
|
||||
}
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
15
Utilities/sequencer/html/search/all_2.js
Normal file
@@ -0,0 +1,15 @@
|
||||
var searchData=
|
||||
[
|
||||
['seq_5fbitposition_2',['SEQ_BitPosition',['../group___s_e_q_u_e_n_c_e_r___private__function.html#ga7dcde6efa35f7c100af9bf4117a4bf12',1,'stm32_seq.c']]],
|
||||
['sequencer_20exported_20constants_3',['SEQUENCER exported constants',['../group___s_e_q_u_e_n_c_e_r___exported__const.html',1,'']]],
|
||||
['sequencer_20exported_20functions_4',['SEQUENCER exported functions',['../group___s_e_q_u_e_n_c_e_r___exported__function.html',1,'']]],
|
||||
['sequencer_20exported_20macros_5',['SEQUENCER exported macros',['../group___s_e_q_u_e_n_c_e_r___exported__macro.html',1,'']]],
|
||||
['sequencer_20exported_20types_6',['SEQUENCER exported types',['../group___s_e_q_u_e_n_c_e_r___exported__type.html',1,'']]],
|
||||
['sequencer_20private_20defines_7',['SEQUENCER private defines',['../group___s_e_q_u_e_n_c_e_r___private__define.html',1,'']]],
|
||||
['sequencer_20private_20functions_8',['SEQUENCER private functions',['../group___s_e_q_u_e_n_c_e_r___private__function.html',1,'']]],
|
||||
['sequencer_20private_20type_9',['SEQUENCER private type',['../group___s_e_q_u_e_n_c_e_r___private__type.html',1,'']]],
|
||||
['sequencer_20private_20variables_10',['SEQUENCER private variables',['../group___s_e_q_u_e_n_c_e_r___private__varaible.html',1,'']]],
|
||||
['sequencer_20utilities_11',['sequencer utilities',['../group___s_e_q_u_e_n_c_e_r.html',1,'']]],
|
||||
['stm32_5fseq_2ec_12',['stm32_seq.c',['../stm32__seq_8c.html',1,'']]],
|
||||
['stm32_5fseq_2eh_13',['stm32_seq.h',['../stm32__seq_8h.html',1,'']]]
|
||||
];
|
||||
37
Utilities/sequencer/html/search/all_3.html
Normal file
@@ -0,0 +1,37 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head><title></title>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta name="generator" content="Doxygen 1.9.1"/>
|
||||
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||
<script type="text/javascript" src="all_3.js"></script>
|
||||
<script type="text/javascript" src="search.js"></script>
|
||||
</head>
|
||||
<body class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div id="SRResults"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
createResults();
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
document.getElementById("Loading").style.display="none";
|
||||
document.getElementById("NoMatches").style.display="none";
|
||||
var searchResults = new SearchResults("searchResults");
|
||||
searchResults.Search();
|
||||
window.addEventListener("message", function(event) {
|
||||
if (event.data == "take_focus") {
|
||||
var elem = searchResults.NavNext(0);
|
||||
if (elem) elem.focus();
|
||||
}
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
34
Utilities/sequencer/html/search/all_3.js
Normal file
@@ -0,0 +1,34 @@
|
||||
var searchData=
|
||||
[
|
||||
['util_5fseq_5fall_5fbit_5fset_14',['UTIL_SEQ_ALL_BIT_SET',['../group___s_e_q_u_e_n_c_e_r___private__define.html#ga24e4c1a2fd61c0cbda16ba7f42f1703a',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5fbm_5ft_15',['UTIL_SEQ_bm_t',['../group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707',1,'stm32_seq.h']]],
|
||||
['util_5fseq_5fclrevt_16',['UTIL_SEQ_ClrEvt',['../group___s_e_q_u_e_n_c_e_r___exported__function.html#ga2b48c77f677158e69ff072f7c05cded4',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5fconf_5fprio_5fnbr_17',['UTIL_SEQ_CONF_PRIO_NBR',['../group___s_e_q_u_e_n_c_e_r___private__define.html#ga13e13f6ac2442ffb667502a9f35df865',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5fconf_5ftask_5fnbr_18',['UTIL_SEQ_CONF_TASK_NBR',['../group___s_e_q_u_e_n_c_e_r___private__define.html#gaaf974b4a940fc6a921b3a76344e5c7ed',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5fdefault_19',['UTIL_SEQ_DEFAULT',['../group___s_e_q_u_e_n_c_e_r___exported__const.html#ga46541edfe05cb5082dec927f2bcf7b46',1,'stm32_seq.h']]],
|
||||
['util_5fseq_5fdeinit_20',['UTIL_SEQ_DeInit',['../group___s_e_q_u_e_n_c_e_r___exported__function.html#ga91cceef5931daa30c4ec3a6577c11106',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5fenter_5fcritical_5fsection_5fidle_21',['UTIL_SEQ_ENTER_CRITICAL_SECTION_IDLE',['../group___s_e_q_u_e_n_c_e_r___private__define.html#ga7af4785dcb8ef602f75b2d8f423010c1',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5fevtidle_22',['UTIL_SEQ_EvtIdle',['../group___s_e_q_u_e_n_c_e_r___exported__function.html#ga6bd90dbfc7e3515391128d1ca1739c17',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5fexit_5fcritical_5fsection_5fidle_23',['UTIL_SEQ_EXIT_CRITICAL_SECTION_IDLE',['../group___s_e_q_u_e_n_c_e_r___private__define.html#ga2dcda5eb256d445147b385a8374cc658',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5fidle_24',['UTIL_SEQ_Idle',['../group___s_e_q_u_e_n_c_e_r___exported__function.html#ga5efb8394fc5244b650c8cc8f642e6271',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5finit_25',['UTIL_SEQ_Init',['../group___s_e_q_u_e_n_c_e_r___exported__function.html#gaef07a06c105da3570c971633460a8aa5',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5fisevtpend_26',['UTIL_SEQ_IsEvtPend',['../group___s_e_q_u_e_n_c_e_r___exported__function.html#ga8d6c2fd6aac8b833a25602ec4b8c5fc7',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5fispausetask_27',['UTIL_SEQ_IsPauseTask',['../group___s_e_q_u_e_n_c_e_r___exported__function.html#gaa177da1e5c77c8430096356181d12b18',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5fisschedulabletask_28',['UTIL_SEQ_IsSchedulableTask',['../group___s_e_q_u_e_n_c_e_r___exported__function.html#ga58bf5ad581a43e749b60a811353af558',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5fmemset8_29',['UTIL_SEQ_MEMSET8',['../group___s_e_q_u_e_n_c_e_r___private__define.html#gad3b4f5f14f4f512725984e6da759871c',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5fno_5fbit_5fset_30',['UTIL_SEQ_NO_BIT_SET',['../group___s_e_q_u_e_n_c_e_r___private__define.html#gad03df74638c0f274fa22474f034384bf',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5fnotaskrunning_31',['UTIL_SEQ_NOTASKRUNNING',['../group___s_e_q_u_e_n_c_e_r___private__define.html#ga9d782cdb4f3654c8238e9dd3adbabf16',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5fpausetask_32',['UTIL_SEQ_PauseTask',['../group___s_e_q_u_e_n_c_e_r___exported__function.html#gaad482af89f56e87da251f56d98674c02',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5fpostidle_33',['UTIL_SEQ_PostIdle',['../group___s_e_q_u_e_n_c_e_r___exported__function.html#ga481b45c409e4d8180c64efdef67daa7f',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5fpreidle_34',['UTIL_SEQ_PreIdle',['../group___s_e_q_u_e_n_c_e_r___exported__function.html#ga373387b03a48559d58eacb919f44a799',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5fpriority_5ft_35',['UTIL_SEQ_Priority_t',['../struct_u_t_i_l___s_e_q___priority__t.html',1,'']]],
|
||||
['util_5fseq_5fregtask_36',['UTIL_SEQ_RegTask',['../group___s_e_q_u_e_n_c_e_r___exported__function.html#gacb5ddba0d11449d470c840d0bd961c14',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5fresumetask_37',['UTIL_SEQ_ResumeTask',['../group___s_e_q_u_e_n_c_e_r___exported__function.html#ga66f6a7fbff82b6d397ca054bcf9350ec',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5frfu_38',['UTIL_SEQ_RFU',['../group___s_e_q_u_e_n_c_e_r___exported__const.html#ga44641e680786c27986945f4d0589c83a',1,'stm32_seq.h']]],
|
||||
['util_5fseq_5frun_39',['UTIL_SEQ_Run',['../group___s_e_q_u_e_n_c_e_r___exported__function.html#gae047669fe53f205396460fdbd3a5d8f5',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5fsetevt_40',['UTIL_SEQ_SetEvt',['../group___s_e_q_u_e_n_c_e_r___exported__function.html#ga20f607dcbe03ca04f5c56a47e3cc846c',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5fsettask_41',['UTIL_SEQ_SetTask',['../group___s_e_q_u_e_n_c_e_r___exported__function.html#ga66de990da4bde412751f15a7622a0da8',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5ftaskfunction_42',['UTIL_SEQ_TaskFunction',['../group___s_e_q_u_e_n_c_e_r___exported__macro.html#gac4b0290fac7278810aa24b9be4574da1',1,'stm32_seq.h']]],
|
||||
['util_5fseq_5ftaskparamdef_43',['UTIL_SEQ_TaskParamDef',['../group___s_e_q_u_e_n_c_e_r___exported__macro.html#ga99985a546d3297b5fd8ace7f5f045c14',1,'stm32_seq.h']]],
|
||||
['util_5fseq_5fwaitevt_44',['UTIL_SEQ_WaitEvt',['../group___s_e_q_u_e_n_c_e_r___exported__function.html#ga3546ca66266d5cc956741505318723a2',1,'stm32_seq.c']]]
|
||||
];
|
||||
30
Utilities/sequencer/html/search/all_4.html
Normal file
@@ -0,0 +1,30 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html><head><title></title>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta name="generator" content="Doxygen 1.8.16"/>
|
||||
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||
<script type="text/javascript" src="all_4.js"></script>
|
||||
<script type="text/javascript" src="search.js"></script>
|
||||
</head>
|
||||
<body class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div id="SRResults"></div>
|
||||
<script type="text/javascript"><!--
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
createResults();
|
||||
/* @license-end */
|
||||
--></script>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
<script type="text/javascript"><!--
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
document.getElementById("Loading").style.display="none";
|
||||
document.getElementById("NoMatches").style.display="none";
|
||||
var searchResults = new SearchResults("searchResults");
|
||||
searchResults.Search();
|
||||
/* @license-end */
|
||||
--></script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
16
Utilities/sequencer/html/search/all_4.js
Normal file
@@ -0,0 +1,16 @@
|
||||
var searchData=
|
||||
[
|
||||
['seq_5fbitposition_5',['SEQ_BitPosition',['../group___s_e_q_u_e_n_c_e_r___private__function.html#ga7dcde6efa35f7c100af9bf4117a4bf12',1,'stm32_seq.c']]],
|
||||
['seq_5fclz_5ftable_5f4bit_6',['SEQ_clz_table_4bit',['../group___s_e_q_u_e_n_c_e_r___private__function.html#gabdb22f5d7f0704e4d2bcf415e8a02e10',1,'stm32_seq.c']]],
|
||||
['sequencer_20utilities_7',['sequencer utilities',['../group___s_e_q_u_e_n_c_e_r.html',1,'']]],
|
||||
['sequencer_20exported_20constants_8',['SEQUENCER exported constants',['../group___s_e_q_u_e_n_c_e_r___exported__const.html',1,'']]],
|
||||
['sequencer_20exported_20functions_9',['SEQUENCER exported functions',['../group___s_e_q_u_e_n_c_e_r___exported__function.html',1,'']]],
|
||||
['sequencer_20exported_20types_10',['SEQUENCER exported types',['../group___s_e_q_u_e_n_c_e_r___exported__type.html',1,'']]],
|
||||
['sequencer_20private_20defines_11',['SEQUENCER private defines',['../group___s_e_q_u_e_n_c_e_r___private__define.html',1,'']]],
|
||||
['sequencer_20private_20functions_12',['SEQUENCER private functions',['../group___s_e_q_u_e_n_c_e_r___private__function.html',1,'']]],
|
||||
['sequencer_20private_20type_13',['SEQUENCER private type',['../group___s_e_q_u_e_n_c_e_r___private__type.html',1,'']]],
|
||||
['sequencer_20private_20variables_14',['SEQUENCER private variables',['../group___s_e_q_u_e_n_c_e_r___private__varaible.html',1,'']]],
|
||||
['stm32_5fseq_2ec_15',['stm32_seq.c',['../stm32__seq_8c.html',1,'']]],
|
||||
['stm32_5fseq_2eh_16',['stm32_seq.h',['../stm32__seq_8h.html',1,'']]],
|
||||
['supermask_17',['SuperMask',['../group___s_e_q_u_e_n_c_e_r___private__varaible.html#ga0c890a69236d5f7438c51df3cf20c480',1,'stm32_seq.c']]]
|
||||
];
|
||||
30
Utilities/sequencer/html/search/all_5.html
Normal file
@@ -0,0 +1,30 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html><head><title></title>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta name="generator" content="Doxygen 1.8.16"/>
|
||||
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||
<script type="text/javascript" src="all_5.js"></script>
|
||||
<script type="text/javascript" src="search.js"></script>
|
||||
</head>
|
||||
<body class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div id="SRResults"></div>
|
||||
<script type="text/javascript"><!--
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
createResults();
|
||||
/* @license-end */
|
||||
--></script>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
<script type="text/javascript"><!--
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
document.getElementById("Loading").style.display="none";
|
||||
document.getElementById("NoMatches").style.display="none";
|
||||
var searchResults = new SearchResults("searchResults");
|
||||
searchResults.Search();
|
||||
/* @license-end */
|
||||
--></script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
7
Utilities/sequencer/html/search/all_5.js
Normal file
@@ -0,0 +1,7 @@
|
||||
var searchData=
|
||||
[
|
||||
['taskcb_18',['TaskCb',['../group___s_e_q_u_e_n_c_e_r___private__varaible.html#ga893dc0e5ab501c52067b7eda416249aa',1,'stm32_seq.c']]],
|
||||
['taskmask_19',['TaskMask',['../group___s_e_q_u_e_n_c_e_r___private__varaible.html#ga5ac59b09d15935337ee4a154db1cde25',1,'stm32_seq.c']]],
|
||||
['taskprio_20',['TaskPrio',['../group___s_e_q_u_e_n_c_e_r___private__varaible.html#ga1a1b2fb52456411a929b68a015a66635',1,'stm32_seq.c']]],
|
||||
['taskset_21',['TaskSet',['../group___s_e_q_u_e_n_c_e_r___private__varaible.html#gacf3f1ab2184d36d2cb57326539e3563b',1,'stm32_seq.c']]]
|
||||
];
|
||||
30
Utilities/sequencer/html/search/all_6.html
Normal file
@@ -0,0 +1,30 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html><head><title></title>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta name="generator" content="Doxygen 1.8.16"/>
|
||||
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||
<script type="text/javascript" src="all_6.js"></script>
|
||||
<script type="text/javascript" src="search.js"></script>
|
||||
</head>
|
||||
<body class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div id="SRResults"></div>
|
||||
<script type="text/javascript"><!--
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
createResults();
|
||||
/* @license-end */
|
||||
--></script>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
<script type="text/javascript"><!--
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
document.getElementById("Loading").style.display="none";
|
||||
document.getElementById("NoMatches").style.display="none";
|
||||
var searchResults = new SearchResults("searchResults");
|
||||
searchResults.Search();
|
||||
/* @license-end */
|
||||
--></script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
28
Utilities/sequencer/html/search/all_6.js
Normal file
@@ -0,0 +1,28 @@
|
||||
var searchData=
|
||||
[
|
||||
['util_5fseq_5fall_5fbit_5fset_22',['UTIL_SEQ_ALL_BIT_SET',['../group___s_e_q_u_e_n_c_e_r___private__define.html#ga24e4c1a2fd61c0cbda16ba7f42f1703a',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5fbm_5ft_23',['UTIL_SEQ_bm_t',['../group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707',1,'stm32_seq.h']]],
|
||||
['util_5fseq_5fclrevt_24',['UTIL_SEQ_ClrEvt',['../group___s_e_q_u_e_n_c_e_r___exported__function.html#ga2b48c77f677158e69ff072f7c05cded4',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5fconf_5fprio_5fnbr_25',['UTIL_SEQ_CONF_PRIO_NBR',['../group___s_e_q_u_e_n_c_e_r___private__define.html#ga13e13f6ac2442ffb667502a9f35df865',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5fconf_5ftask_5fnbr_26',['UTIL_SEQ_CONF_TASK_NBR',['../group___s_e_q_u_e_n_c_e_r___private__define.html#gaaf974b4a940fc6a921b3a76344e5c7ed',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5fdefault_27',['UTIL_SEQ_DEFAULT',['../group___s_e_q_u_e_n_c_e_r___exported__const.html#ga46541edfe05cb5082dec927f2bcf7b46',1,'stm32_seq.h']]],
|
||||
['util_5fseq_5fdeinit_28',['UTIL_SEQ_DeInit',['../group___s_e_q_u_e_n_c_e_r___exported__function.html#ga91cceef5931daa30c4ec3a6577c11106',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5fevtidle_29',['UTIL_SEQ_EvtIdle',['../group___s_e_q_u_e_n_c_e_r___exported__function.html#ga6bd90dbfc7e3515391128d1ca1739c17',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5fidle_30',['UTIL_SEQ_Idle',['../group___s_e_q_u_e_n_c_e_r___exported__function.html#ga5efb8394fc5244b650c8cc8f642e6271',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5finit_31',['UTIL_SEQ_Init',['../group___s_e_q_u_e_n_c_e_r___exported__function.html#gaef07a06c105da3570c971633460a8aa5',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5fisevtpend_32',['UTIL_SEQ_IsEvtPend',['../group___s_e_q_u_e_n_c_e_r___exported__function.html#ga8d6c2fd6aac8b833a25602ec4b8c5fc7',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5fispausetask_33',['UTIL_SEQ_IsPauseTask',['../group___s_e_q_u_e_n_c_e_r___exported__function.html#gaa177da1e5c77c8430096356181d12b18',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5fisschedulabletask_34',['UTIL_SEQ_IsSchedulableTask',['../group___s_e_q_u_e_n_c_e_r___exported__function.html#ga58bf5ad581a43e749b60a811353af558',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5fmemset8_35',['UTIL_SEQ_MEMSET8',['../group___s_e_q_u_e_n_c_e_r___private__define.html#gad3b4f5f14f4f512725984e6da759871c',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5fno_5fbit_5fset_36',['UTIL_SEQ_NO_BIT_SET',['../group___s_e_q_u_e_n_c_e_r___private__define.html#gad03df74638c0f274fa22474f034384bf',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5fpausetask_37',['UTIL_SEQ_PauseTask',['../group___s_e_q_u_e_n_c_e_r___exported__function.html#gaad482af89f56e87da251f56d98674c02',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5fpostidle_38',['UTIL_SEQ_PostIdle',['../group___s_e_q_u_e_n_c_e_r___exported__function.html#ga481b45c409e4d8180c64efdef67daa7f',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5fpreidle_39',['UTIL_SEQ_PreIdle',['../group___s_e_q_u_e_n_c_e_r___exported__function.html#ga373387b03a48559d58eacb919f44a799',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5fpriority_5ft_40',['UTIL_SEQ_Priority_t',['../struct_u_t_i_l___s_e_q___priority__t.html',1,'']]],
|
||||
['util_5fseq_5fregtask_41',['UTIL_SEQ_RegTask',['../group___s_e_q_u_e_n_c_e_r___exported__function.html#gacb5ddba0d11449d470c840d0bd961c14',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5fresumetask_42',['UTIL_SEQ_ResumeTask',['../group___s_e_q_u_e_n_c_e_r___exported__function.html#ga66f6a7fbff82b6d397ca054bcf9350ec',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5frun_43',['UTIL_SEQ_Run',['../group___s_e_q_u_e_n_c_e_r___exported__function.html#gae047669fe53f205396460fdbd3a5d8f5',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5fsetevt_44',['UTIL_SEQ_SetEvt',['../group___s_e_q_u_e_n_c_e_r___exported__function.html#ga20f607dcbe03ca04f5c56a47e3cc846c',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5fsettask_45',['UTIL_SEQ_SetTask',['../group___s_e_q_u_e_n_c_e_r___exported__function.html#ga66de990da4bde412751f15a7622a0da8',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5fwaitevt_46',['UTIL_SEQ_WaitEvt',['../group___s_e_q_u_e_n_c_e_r___exported__function.html#ga3546ca66266d5cc956741505318723a2',1,'stm32_seq.c']]]
|
||||
];
|
||||
30
Utilities/sequencer/html/search/all_7.html
Normal file
@@ -0,0 +1,30 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html><head><title></title>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta name="generator" content="Doxygen 1.8.16"/>
|
||||
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||
<script type="text/javascript" src="all_7.js"></script>
|
||||
<script type="text/javascript" src="search.js"></script>
|
||||
</head>
|
||||
<body class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div id="SRResults"></div>
|
||||
<script type="text/javascript"><!--
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
createResults();
|
||||
/* @license-end */
|
||||
--></script>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
<script type="text/javascript"><!--
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
document.getElementById("Loading").style.display="none";
|
||||
document.getElementById("NoMatches").style.display="none";
|
||||
var searchResults = new SearchResults("searchResults");
|
||||
searchResults.Search();
|
||||
/* @license-end */
|
||||
--></script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
28
Utilities/sequencer/html/search/all_7.js
Normal file
@@ -0,0 +1,28 @@
|
||||
var searchData=
|
||||
[
|
||||
['util_5fseq_5fall_5fbit_5fset_22',['UTIL_SEQ_ALL_BIT_SET',['../group___s_e_q_u_e_n_c_e_r___private__define.html#ga24e4c1a2fd61c0cbda16ba7f42f1703a',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5fbm_5ft_23',['UTIL_SEQ_bm_t',['../group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707',1,'stm32_seq.h']]],
|
||||
['util_5fseq_5fclrevt_24',['UTIL_SEQ_ClrEvt',['../group___s_e_q_u_e_n_c_e_r___exported__function.html#ga9c2f6f673a227b53b13bdfbc071457ae',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5fconf_5fprio_5fnbr_25',['UTIL_SEQ_CONF_PRIO_NBR',['../group___s_e_q_u_e_n_c_e_r___private__define.html#ga13e13f6ac2442ffb667502a9f35df865',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5fconf_5ftask_5fnbr_26',['UTIL_SEQ_CONF_TASK_NBR',['../group___s_e_q_u_e_n_c_e_r___private__define.html#gaaf974b4a940fc6a921b3a76344e5c7ed',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5fdefault_27',['UTIL_SEQ_DEFAULT',['../group___s_e_q_u_e_n_c_e_r___exported__const.html#ga46541edfe05cb5082dec927f2bcf7b46',1,'stm32_seq.h']]],
|
||||
['util_5fseq_5fdeinit_28',['UTIL_SEQ_DeInit',['../group___s_e_q_u_e_n_c_e_r___exported__function.html#ga91cceef5931daa30c4ec3a6577c11106',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5fevtidle_29',['UTIL_SEQ_EvtIdle',['../group___s_e_q_u_e_n_c_e_r___exported__function.html#ga27559db44f6528e614411d167531a448',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5fidle_30',['UTIL_SEQ_Idle',['../group___s_e_q_u_e_n_c_e_r___exported__function.html#ga5efb8394fc5244b650c8cc8f642e6271',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5finit_31',['UTIL_SEQ_Init',['../group___s_e_q_u_e_n_c_e_r___exported__function.html#gaef07a06c105da3570c971633460a8aa5',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5fisevtpend_32',['UTIL_SEQ_IsEvtPend',['../group___s_e_q_u_e_n_c_e_r___exported__function.html#ga8d6c2fd6aac8b833a25602ec4b8c5fc7',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5fispausetask_33',['UTIL_SEQ_IsPauseTask',['../group___s_e_q_u_e_n_c_e_r___exported__function.html#ga6635decf9ec0ce182ef7ced6bd40fdb0',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5fisscheduleabletask_34',['UTIL_SEQ_IsScheduleableTask',['../group___s_e_q_u_e_n_c_e_r___exported__function.html#gae4cfb1f5eab2b9336433a077ccf4412f',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5fmemset8_35',['UTIL_SEQ_MEMSET8',['../group___s_e_q_u_e_n_c_e_r___private__define.html#gad3b4f5f14f4f512725984e6da759871c',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5fno_5fbit_5fset_36',['UTIL_SEQ_NO_BIT_SET',['../group___s_e_q_u_e_n_c_e_r___private__define.html#gad03df74638c0f274fa22474f034384bf',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5fpausetask_37',['UTIL_SEQ_PauseTask',['../group___s_e_q_u_e_n_c_e_r___exported__function.html#ga062e7ae35324c87835d676dfd5997746',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5fpostidle_38',['UTIL_SEQ_PostIdle',['../group___s_e_q_u_e_n_c_e_r___exported__function.html#ga481b45c409e4d8180c64efdef67daa7f',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5fpreidle_39',['UTIL_SEQ_PreIdle',['../group___s_e_q_u_e_n_c_e_r___exported__function.html#ga373387b03a48559d58eacb919f44a799',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5fpriority_5ft_40',['UTIL_SEQ_Priority_t',['../struct_u_t_i_l___s_e_q___priority__t.html',1,'']]],
|
||||
['util_5fseq_5fregtask_41',['UTIL_SEQ_RegTask',['../group___s_e_q_u_e_n_c_e_r___exported__function.html#gafd9eb67f9d5b4b23aa49cdcf23292690',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5fresumetask_42',['UTIL_SEQ_ResumeTask',['../group___s_e_q_u_e_n_c_e_r___exported__function.html#gaae400a0af6d437c180efc74a16cff098',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5frun_43',['UTIL_SEQ_Run',['../group___s_e_q_u_e_n_c_e_r___exported__function.html#gaa83e3a3a3047c60462d6eef47a231fd1',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5fsetevt_44',['UTIL_SEQ_SetEvt',['../group___s_e_q_u_e_n_c_e_r___exported__function.html#ga3fe0ca834aec773ae7abc26a582290c1',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5fsettask_45',['UTIL_SEQ_SetTask',['../group___s_e_q_u_e_n_c_e_r___exported__function.html#gaf03bbf53370c034c03d73e27edc70b06',1,'stm32_seq.c']]],
|
||||
['util_5fseq_5fwaitevt_46',['UTIL_SEQ_WaitEvt',['../group___s_e_q_u_e_n_c_e_r___exported__function.html#ga6d3729ecf65e82a92d0ad27063382765',1,'stm32_seq.c']]]
|
||||
];
|
||||
37
Utilities/sequencer/html/search/classes_0.html
Normal file
@@ -0,0 +1,37 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head><title></title>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta name="generator" content="Doxygen 1.9.1"/>
|
||||
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||
<script type="text/javascript" src="classes_0.js"></script>
|
||||
<script type="text/javascript" src="search.js"></script>
|
||||
</head>
|
||||
<body class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div id="SRResults"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
createResults();
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
document.getElementById("Loading").style.display="none";
|
||||
document.getElementById("NoMatches").style.display="none";
|
||||
var searchResults = new SearchResults("searchResults");
|
||||
searchResults.Search();
|
||||
window.addEventListener("message", function(event) {
|
||||
if (event.data == "take_focus") {
|
||||
var elem = searchResults.NavNext(0);
|
||||
if (elem) elem.focus();
|
||||
}
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
4
Utilities/sequencer/html/search/classes_0.js
Normal file
@@ -0,0 +1,4 @@
|
||||
var searchData=
|
||||
[
|
||||
['util_5fseq_5fpriority_5ft_45',['UTIL_SEQ_Priority_t',['../struct_u_t_i_l___s_e_q___priority__t.html',1,'']]]
|
||||
];
|
||||
BIN
Utilities/sequencer/html/search/close.png
Normal file
|
After Width: | Height: | Size: 273 B |
31
Utilities/sequencer/html/search/close.svg
Normal file
@@ -0,0 +1,31 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 11 11"
|
||||
height="11"
|
||||
width="11"
|
||||
id="svg2"
|
||||
version="1.1">
|
||||
<metadata
|
||||
id="metadata8">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs6" />
|
||||
<path
|
||||
id="path12"
|
||||
d="M 5.5 0.5 A 5 5 0 0 0 0.5 5.5 A 5 5 0 0 0 5.5 10.5 A 5 5 0 0 0 10.5 5.5 A 5 5 0 0 0 5.5 0.5 z M 3.5820312 3 A 0.58291923 0.58291923 0 0 1 4 3.1757812 L 5.5 4.6757812 L 7 3.1757812 A 0.58291923 0.58291923 0 0 1 7.4003906 3 A 0.58291923 0.58291923 0 0 1 7.8242188 4 L 6.3242188 5.5 L 7.8242188 7 A 0.58291923 0.58291923 0 1 1 7 7.8242188 L 5.5 6.3242188 L 4 7.8242188 A 0.58291923 0.58291923 0 1 1 3.1757812 7 L 4.6757812 5.5 L 3.1757812 4 A 0.58291923 0.58291923 0 0 1 3.5820312 3 z "
|
||||
style="stroke-width:1.09870648;fill:#bababa;fill-opacity:1" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.3 KiB |
37
Utilities/sequencer/html/search/files_0.html
Normal file
@@ -0,0 +1,37 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head><title></title>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta name="generator" content="Doxygen 1.9.1"/>
|
||||
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||
<script type="text/javascript" src="files_0.js"></script>
|
||||
<script type="text/javascript" src="search.js"></script>
|
||||
</head>
|
||||
<body class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div id="SRResults"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
createResults();
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
||||
document.getElementById("Loading").style.display="none";
|
||||
document.getElementById("NoMatches").style.display="none";
|
||||
var searchResults = new SearchResults("searchResults");
|
||||
searchResults.Search();
|
||||
window.addEventListener("message", function(event) {
|
||||
if (event.data == "take_focus") {
|
||||
var elem = searchResults.NavNext(0);
|
||||
if (elem) elem.focus();
|
||||
}
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
5
Utilities/sequencer/html/search/files_0.js
Normal file
@@ -0,0 +1,5 @@
|
||||
var searchData=
|
||||
[
|
||||
['stm32_5fseq_2ec_46',['stm32_seq.c',['../stm32__seq_8c.html',1,'']]],
|
||||
['stm32_5fseq_2eh_47',['stm32_seq.h',['../stm32__seq_8h.html',1,'']]]
|
||||
];
|
||||