Update version of Reliance Edge.
This commit is contained in:
@ -11,5 +11,5 @@
|
|||||||
|
|
||||||
const VOLCONF gaRedVolConf[REDCONF_VOLUME_COUNT] =
|
const VOLCONF gaRedVolConf[REDCONF_VOLUME_COUNT] =
|
||||||
{
|
{
|
||||||
{ 512U, 65536U, false, 256U, "" }
|
{ 512U, 65536U, false, 256U, 0, "" }
|
||||||
};
|
};
|
||||||
|
@ -189,7 +189,6 @@
|
|||||||
<ClInclude Include="..\..\..\FreeRTOS\Source\include\task.h" />
|
<ClInclude Include="..\..\..\FreeRTOS\Source\include\task.h" />
|
||||||
<ClInclude Include="..\..\..\FreeRTOS\Source\include\timers.h" />
|
<ClInclude Include="..\..\..\FreeRTOS\Source\include\timers.h" />
|
||||||
<ClInclude Include="..\..\Source\FreeRTOS-Plus-CLI\FreeRTOS_CLI.h" />
|
<ClInclude Include="..\..\Source\FreeRTOS-Plus-CLI\FreeRTOS_CLI.h" />
|
||||||
<ClInclude Include="..\..\Source\Reliance-Edge\os\freertos\include\ostypes.h" />
|
|
||||||
<ClInclude Include="ConfigurationFiles\FreeRTOSConfig.h" />
|
<ClInclude Include="ConfigurationFiles\FreeRTOSConfig.h" />
|
||||||
<ClInclude Include="ConfigurationFiles\redconf.h" />
|
<ClInclude Include="ConfigurationFiles\redconf.h" />
|
||||||
<ClInclude Include="ConfigurationFiles\redtypes.h" />
|
<ClInclude Include="ConfigurationFiles\redtypes.h" />
|
||||||
|
@ -209,9 +209,6 @@
|
|||||||
<ClInclude Include="ConfigurationFiles\FreeRTOSConfig.h">
|
<ClInclude Include="ConfigurationFiles\FreeRTOSConfig.h">
|
||||||
<Filter>Configuration Files</Filter>
|
<Filter>Configuration Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\..\Source\Reliance-Edge\os\freertos\include\ostypes.h">
|
|
||||||
<Filter>FreeRTOS+\FreeRTOS+Reliance Edge\port</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="ConfigurationFiles\redconf.h">
|
<ClInclude Include="ConfigurationFiles\redconf.h">
|
||||||
<Filter>Configuration Files</Filter>
|
<Filter>Configuration Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,61 +1,102 @@
|
|||||||
# Reliance Edge Release Notes
|
# Reliance Edge Release Notes
|
||||||
|
|
||||||
This file contains a list of updates made to Reliance Edge over the course of
|
This file contains a list of updates made to Reliance Edge over the course of
|
||||||
recent releases and a list of known issues.
|
recent releases and a list of known issues.
|
||||||
|
|
||||||
## Release History and Changes
|
## Release History and Changes
|
||||||
|
|
||||||
### Reliance Edge v1.0, July 2015
|
### Reliance Edge v1.0.4, July 2016
|
||||||
|
|
||||||
#### Common Code Changes
|
- Added ARM mbed and ARM mbed OS support in the commercial kit, with an example
|
||||||
|
projects for ARM mbed OS on the NXP FRDM-K64F board.
|
||||||
- First release of commercial kit and MISRA C:2012 Design Assurance Package.
|
- Some minor deficiencies in the POSIX-like API test suite have been addressed.
|
||||||
The commercial kit includes many new tools and tests which were not previously
|
|
||||||
available.
|
### Reliance Edge v1.0.3, June 2016
|
||||||
- Overhauled parsing of command-line parameters to be consistent for all tools
|
|
||||||
and tests. Command-line tools now use Unix-style short and long options (such
|
- Added support for static memory allocation configuration in FreeRTOS
|
||||||
as `-H` and `--help`) instead of DOS-style switches (such as `/?`).
|
version 9. No common code changes.
|
||||||
- Renamed all os/\*/include/ostypes.h headers to os/\*/include/redostypes.h, so
|
|
||||||
that all headers use the product prefix. If you created a port using v0.9,
|
### Reliance Edge v1.0.2, February 2016
|
||||||
this header needs to be renamed and its header guard (#ifndef OSTYPES_H etc.)
|
|
||||||
should also be updated.
|
#### Common Code Changes
|
||||||
- Add a new header for OS-specific MISRA C:2012 deviation macros, located at
|
- A new per-volume configuration option has been added: users can specify a
|
||||||
os/\*/include/redosdeviations.h. If you created a port using v0.9, copy the
|
number of times to retry a block device read, write or flush operation before
|
||||||
template from os/stub/include/redosdeviations.h into the include directory.
|
returning a failure. The configuration tool has been updated to version 1.0.2
|
||||||
- Eliminated support for sector sizes less than 256. If using a smaller sector
|
with this change.
|
||||||
size (say for a RAM disk), this must now be emulated in the implementation of
|
- This added a new field to the volume configuration in to redconf.c: existing
|
||||||
the block device OS service.
|
redconf.c files from v1.0.1 and earlier must be updated to work with v1.0.2.
|
||||||
- Added RedFseFormat() as an optional FSE API, allowing FSE applications to
|
Open redconf.h and redconf.c with the configuration tool, enable
|
||||||
format the volume at run-time.
|
"Retry block device I/O on failure" for any volumes if desired, and save the
|
||||||
- This added a new macro to redconf.h: existing redconf.h files from v0.9 must
|
redconf files.
|
||||||
be updated to work with v1.0. Open redconf.h with the configuration tool,
|
|
||||||
ignore the warning about the missing macro, and save it.
|
#### FreeRTOS Port Changes
|
||||||
- Internal restructuring has renamed the macros for the string and memory
|
- Added support for the STM32 HAL SD card driver in the FreeRTOS block device
|
||||||
functions used in redconf.h. An existing redconf.h file from v0.9 will need
|
interface. Two boards are supported out-of-the-box: the STM324xG-EVAL and the
|
||||||
to be updated; for a file containing the old names, the new config tool will
|
STM32F746NG-Discovery. A sample project is included for the STM324xG-EVAL.
|
||||||
default to using the (slow) Reliance Edge string/memory functions; to use the
|
|
||||||
C library or custom versions, this will need to be selected in the
|
#### MQX Port Changes
|
||||||
configuration utility.
|
- Fixed a bug which prevented Reliance Edge from compiling if the File System
|
||||||
- Fix a bug which would result in an error when attempting to create a name with
|
Essentials API was selected in the configuration.
|
||||||
one or more trailing path separators (such as `red_mkdir("/foo/bar/")`).
|
- Fixed a bug which would have returned an uninitialized value from
|
||||||
- Fix a bug where an open handle for an inode on one volume would prevent the
|
`RedOsBDevFlush()` for block devices that support flushing.
|
||||||
same inode number from being deleted on a different volume.
|
|
||||||
|
### Reliance Edge v1.0.1, October 2015
|
||||||
#### FreeRTOS Port Changes
|
|
||||||
|
- Added MQX RTOS support in the commercial kit, with example projects for
|
||||||
- The implementation of the timestamp OS service no longer requires that
|
the Kinetis Design Studio.
|
||||||
`configUSE_TIMERS` be set to `1`.
|
- Bug fix in the F_DRIVER implementation of the FreeRTOS block device service.
|
||||||
|
|
||||||
### Reliance Edge v0.9 (Beta), April 2015
|
### Reliance Edge v1.0, July 2015
|
||||||
|
|
||||||
First public release.
|
#### Common Code Changes
|
||||||
|
|
||||||
## Known Issues
|
- First release of commercial kit and MISRA C:2012 Design Assurance Package.
|
||||||
|
The commercial kit includes many new tools and tests which were not previously
|
||||||
### Visual Studio 2005
|
available.
|
||||||
|
- Overhauled parsing of command-line parameters to be consistent for all tools
|
||||||
The Reliance Edge Win32 port (used for the host tools and the Win32 test
|
and tests. Command-line tools now use Unix-style short and long options (such
|
||||||
project) cannot be compiled by Visual Studio 2005. This is not going to be
|
as `-H` and `--help`) instead of DOS-style switches (such as `/?`).
|
||||||
fixed since VS2005 is an old toolset. Newer versions of Visual Studio, starting
|
- Renamed all os/\*/include/ostypes.h headers to os/\*/include/redostypes.h, so
|
||||||
with Visual Studio 2008, work just fine.
|
that all headers use the product prefix. If you created a port using v0.9,
|
||||||
|
this header needs to be renamed and its header guard (#ifndef OSTYPES_H etc.)
|
||||||
|
should also be updated.
|
||||||
|
- Add a new header for OS-specific MISRA C:2012 deviation macros, located at
|
||||||
|
os/\*/include/redosdeviations.h. If you created a port using v0.9, copy the
|
||||||
|
template from os/stub/include/redosdeviations.h into the include directory.
|
||||||
|
- Eliminated support for sector sizes less than 256. If using a smaller sector
|
||||||
|
size (say for a RAM disk), this must now be emulated in the implementation of
|
||||||
|
the block device OS service.
|
||||||
|
- Added RedFseFormat() as an optional FSE API, allowing FSE applications to
|
||||||
|
format the volume at run-time.
|
||||||
|
- This added a new macro to redconf.h: existing redconf.h files from v0.9 must
|
||||||
|
be updated to work with v1.0. Open redconf.h with the configuration tool,
|
||||||
|
ignore the warning about the missing macro, and save it.
|
||||||
|
- Internal restructuring has renamed the macros for the string and memory
|
||||||
|
functions used in redconf.h. An existing redconf.h file from v0.9 will need
|
||||||
|
to be updated; for a file containing the old names, the new config tool will
|
||||||
|
default to using the (slow) Reliance Edge string/memory functions; to use the
|
||||||
|
C library or custom versions, this will need to be selected in the
|
||||||
|
configuration utility.
|
||||||
|
- Fix a bug which would result in an error when attempting to create a name with
|
||||||
|
one or more trailing path separators (such as `red_mkdir("/foo/bar/")`).
|
||||||
|
- Fix a bug where an open handle for an inode on one volume would prevent the
|
||||||
|
same inode number from being deleted on a different volume.
|
||||||
|
|
||||||
|
#### FreeRTOS Port Changes
|
||||||
|
|
||||||
|
- The implementation of the timestamp OS service no longer requires that
|
||||||
|
`configUSE_TIMERS` be set to `1`.
|
||||||
|
|
||||||
|
### Reliance Edge v0.9 (Beta), April 2015
|
||||||
|
|
||||||
|
First public release.
|
||||||
|
|
||||||
|
## Known Issues
|
||||||
|
|
||||||
|
### Visual Studio 2005
|
||||||
|
|
||||||
|
The Reliance Edge Win32 port (used for the host tools and the Win32 test
|
||||||
|
project) cannot be compiled by Visual Studio 2005. This is not going to be
|
||||||
|
fixed since VS2005 is an old toolset. Newer versions of Visual Studio, starting
|
||||||
|
with Visual Studio 2008, work just fine.
|
||||||
|
|
||||||
|
@ -1,71 +1,118 @@
|
|||||||
|
|
||||||
|
|
||||||
RELIANCE EDGE RELEASE NOTES
|
RELIANCE EDGE RELEASE NOTES
|
||||||
|
|
||||||
|
|
||||||
This file contains a list of updates made to Reliance Edge over the
|
This file contains a list of updates made to Reliance Edge over the
|
||||||
course of recent releases and a list of known issues.
|
course of recent releases and a list of known issues.
|
||||||
|
|
||||||
|
|
||||||
Release History and Changes
|
Release History and Changes
|
||||||
|
|
||||||
Reliance Edge v1.0, July 2015
|
Reliance Edge v1.0.4, July 2016
|
||||||
|
|
||||||
Common Code Changes
|
- Added ARM mbed and ARM mbed OS support in the commercial kit, with
|
||||||
|
an example projects for ARM mbed OS on the NXP FRDM-K64F board.
|
||||||
- First release of commercial kit and MISRA C:2012 Design
|
- Some minor deficiencies in the POSIX-like API test suite have
|
||||||
Assurance Package. The commercial kit includes many new tools and
|
been addressed.
|
||||||
tests which were not previously available.
|
|
||||||
- Overhauled parsing of command-line parameters to be consistent for
|
Reliance Edge v1.0.3, June 2016
|
||||||
all tools and tests. Command-line tools now use Unix-style short and
|
|
||||||
long options (such as -H and --help) instead of DOS-style switches
|
- Added support for static memory allocation configuration in FreeRTOS
|
||||||
(such as /?).
|
version 9. No common code changes.
|
||||||
- Renamed all os/*/include/ostypes.h headers to
|
|
||||||
os/*/include/redostypes.h, so that all headers use the
|
Reliance Edge v1.0.2, February 2016
|
||||||
product prefix. If you created a port using v0.9, this header needs
|
|
||||||
to be renamed and its header guard (#ifndef OSTYPES_H etc.) should
|
Common Code Changes
|
||||||
also be updated.
|
|
||||||
- Add a new header for OS-specific MISRA C:2012 deviation macros,
|
- A new per-volume configuration option has been added: users can
|
||||||
located at os/*/include/redosdeviations.h. If you created a port
|
specify a number of times to retry a block device read, write or
|
||||||
using v0.9, copy the template from os/stub/include/redosdeviations.h
|
flush operation before returning a failure. The configuration tool
|
||||||
into the include directory.
|
has been updated to version 1.0.2 with this change.
|
||||||
- Eliminated support for sector sizes less than 256. If using a
|
- This added a new field to the volume configuration in to redconf.c:
|
||||||
smaller sector size (say for a RAM disk), this must now be emulated
|
existing redconf.c files from v1.0.1 and earlier must be updated to
|
||||||
in the implementation of the block device OS service.
|
work with v1.0.2. Open redconf.h and redconf.c with the
|
||||||
- Added RedFseFormat() as an optional FSE API, allowing FSE
|
configuration tool, enable "Retry block device I/O on failure" for
|
||||||
applications to format the volume at run-time.
|
any volumes if desired, and save the redconf files.
|
||||||
- This added a new macro to redconf.h: existing redconf.h files from
|
|
||||||
v0.9 must be updated to work with v1.0. Open redconf.h with the
|
FreeRTOS Port Changes
|
||||||
configuration tool, ignore the warning about the missing macro, and
|
|
||||||
save it.
|
- Added support for the STM32 HAL SD card driver in the FreeRTOS block
|
||||||
- Internal restructuring has renamed the macros for the string and
|
device interface. Two boards are supported out-of-the-box: the
|
||||||
memory functions used in redconf.h. An existing redconf.h file from
|
STM324xG-EVAL and the STM32F746NG-Discovery. A sample project is
|
||||||
v0.9 will need to be updated; for a file containing the old names,
|
included for the STM324xG-EVAL.
|
||||||
the new config tool will default to using the (slow) Reliance Edge
|
|
||||||
string/memory functions; to use the C library or custom versions,
|
MQX Port Changes
|
||||||
this will need to be selected in the configuration utility.
|
|
||||||
- Fix a bug which would result in an error when attempting to create a
|
- Fixed a bug which prevented Reliance Edge from compiling if the File
|
||||||
name with one or more trailing path separators (such as
|
System Essentials API was selected in the configuration.
|
||||||
red_mkdir("/foo/bar/")).
|
- Fixed a bug which would have returned an uninitialized value from
|
||||||
- Fix a bug where an open handle for an inode on one volume would
|
RedOsBDevFlush() for block devices that support flushing.
|
||||||
prevent the same inode number from being deleted on a
|
|
||||||
different volume.
|
Reliance Edge v1.0.1, October 2015
|
||||||
|
|
||||||
FreeRTOS Port Changes
|
- Added MQX RTOS support in the commercial kit, with example projects
|
||||||
|
for the Kinetis Design Studio.
|
||||||
- The implementation of the timestamp OS service no longer requires
|
- Bug fix in the F_DRIVER implementation of the FreeRTOS block
|
||||||
that configUSE_TIMERS be set to 1.
|
device service.
|
||||||
|
|
||||||
Reliance Edge v0.9 (Beta), April 2015
|
Reliance Edge v1.0, July 2015
|
||||||
|
|
||||||
First public release.
|
Common Code Changes
|
||||||
|
|
||||||
|
- First release of commercial kit and MISRA C:2012 Design
|
||||||
Known Issues
|
Assurance Package. The commercial kit includes many new tools and
|
||||||
|
tests which were not previously available.
|
||||||
Visual Studio 2005
|
- Overhauled parsing of command-line parameters to be consistent for
|
||||||
|
all tools and tests. Command-line tools now use Unix-style short and
|
||||||
The Reliance Edge Win32 port (used for the host tools and the Win32 test
|
long options (such as -H and --help) instead of DOS-style switches
|
||||||
project) cannot be compiled by Visual Studio 2005. This is not going to
|
(such as /?).
|
||||||
be fixed since VS2005 is an old toolset. Newer versions of Visual
|
- Renamed all os/*/include/ostypes.h headers to
|
||||||
Studio, starting with Visual Studio 2008, work just fine.
|
os/*/include/redostypes.h, so that all headers use the
|
||||||
|
product prefix. If you created a port using v0.9, this header needs
|
||||||
|
to be renamed and its header guard (#ifndef OSTYPES_H etc.) should
|
||||||
|
also be updated.
|
||||||
|
- Add a new header for OS-specific MISRA C:2012 deviation macros,
|
||||||
|
located at os/*/include/redosdeviations.h. If you created a port
|
||||||
|
using v0.9, copy the template from os/stub/include/redosdeviations.h
|
||||||
|
into the include directory.
|
||||||
|
- Eliminated support for sector sizes less than 256. If using a
|
||||||
|
smaller sector size (say for a RAM disk), this must now be emulated
|
||||||
|
in the implementation of the block device OS service.
|
||||||
|
- Added RedFseFormat() as an optional FSE API, allowing FSE
|
||||||
|
applications to format the volume at run-time.
|
||||||
|
- This added a new macro to redconf.h: existing redconf.h files from
|
||||||
|
v0.9 must be updated to work with v1.0. Open redconf.h with the
|
||||||
|
configuration tool, ignore the warning about the missing macro, and
|
||||||
|
save it.
|
||||||
|
- Internal restructuring has renamed the macros for the string and
|
||||||
|
memory functions used in redconf.h. An existing redconf.h file from
|
||||||
|
v0.9 will need to be updated; for a file containing the old names,
|
||||||
|
the new config tool will default to using the (slow) Reliance Edge
|
||||||
|
string/memory functions; to use the C library or custom versions,
|
||||||
|
this will need to be selected in the configuration utility.
|
||||||
|
- Fix a bug which would result in an error when attempting to create a
|
||||||
|
name with one or more trailing path separators (such as
|
||||||
|
red_mkdir("/foo/bar/")).
|
||||||
|
- Fix a bug where an open handle for an inode on one volume would
|
||||||
|
prevent the same inode number from being deleted on a
|
||||||
|
different volume.
|
||||||
|
|
||||||
|
FreeRTOS Port Changes
|
||||||
|
|
||||||
|
- The implementation of the timestamp OS service no longer requires
|
||||||
|
that configUSE_TIMERS be set to 1.
|
||||||
|
|
||||||
|
Reliance Edge v0.9 (Beta), April 2015
|
||||||
|
|
||||||
|
First public release.
|
||||||
|
|
||||||
|
|
||||||
|
Known Issues
|
||||||
|
|
||||||
|
Visual Studio 2005
|
||||||
|
|
||||||
|
The Reliance Edge Win32 port (used for the host tools and the Win32 test
|
||||||
|
project) cannot be compiled by Visual Studio 2005. This is not going to
|
||||||
|
be fixed since VS2005 is an old toolset. Newer versions of Visual
|
||||||
|
Studio, starting with Visual Studio 2008, work just fine.
|
||||||
|
@ -1,38 +1,38 @@
|
|||||||
/* ----> DO NOT REMOVE THE FOLLOWING NOTICE <----
|
/* ----> DO NOT REMOVE THE FOLLOWING NOTICE <----
|
||||||
|
|
||||||
Copyright (c) 2014-2015 Datalight, Inc.
|
Copyright (c) 2014-2015 Datalight, Inc.
|
||||||
All Rights Reserved Worldwide.
|
All Rights Reserved Worldwide.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
the Free Software Foundation; use version 2 of the License.
|
the Free Software Foundation; use version 2 of the License.
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
This program is distributed in the hope that it will be useful,
|
||||||
but "AS-IS," WITHOUT ANY WARRANTY; without even the implied warranty
|
but "AS-IS," WITHOUT ANY WARRANTY; without even the implied warranty
|
||||||
of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
GNU General Public License for more details.
|
GNU General Public License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
*/
|
*/
|
||||||
/* Businesses and individuals that for commercial or other reasons cannot
|
/* Businesses and individuals that for commercial or other reasons cannot
|
||||||
comply with the terms of the GPLv2 license may obtain a commercial license
|
comply with the terms of the GPLv2 license may obtain a commercial license
|
||||||
before incorporating Reliance Edge into proprietary software for
|
before incorporating Reliance Edge into proprietary software for
|
||||||
distribution in any form. Visit http://www.datalight.com/reliance-edge for
|
distribution in any form. Visit http://www.datalight.com/reliance-edge for
|
||||||
more information.
|
more information.
|
||||||
*/
|
*/
|
||||||
/** @file
|
/** @file
|
||||||
@brief Interfaces of path utilities for the POSIX-like API layer.
|
@brief Interfaces of path utilities for the POSIX-like API layer.
|
||||||
*/
|
*/
|
||||||
#ifndef REDPATH_H
|
#ifndef REDPATH_H
|
||||||
#define REDPATH_H
|
#define REDPATH_H
|
||||||
|
|
||||||
|
|
||||||
REDSTATUS RedPathSplit(const char *pszPath, uint8_t *pbVolNum, const char **ppszLocalPath);
|
REDSTATUS RedPathSplit(const char *pszPath, uint8_t *pbVolNum, const char **ppszLocalPath);
|
||||||
REDSTATUS RedPathLookup(const char *pszLocalPath, uint32_t *pulInode);
|
REDSTATUS RedPathLookup(const char *pszLocalPath, uint32_t *pulInode);
|
||||||
REDSTATUS RedPathToName(const char *pszLocalPath, uint32_t *pulPInode, const char **ppszName);
|
REDSTATUS RedPathToName(const char *pszLocalPath, uint32_t *pulPInode, const char **ppszName);
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
@ -33,7 +33,7 @@
|
|||||||
|
|
||||||
<!-- This macro is updated automatically: do not edit! -->
|
<!-- This macro is updated automatically: do not edit! -->
|
||||||
*/
|
*/
|
||||||
#define RED_BUILD_NUMBER "664"
|
#define RED_BUILD_NUMBER "677"
|
||||||
|
|
||||||
#define RED_KIT_GPL 0U /* Open source GPL kit. */
|
#define RED_KIT_GPL 0U /* Open source GPL kit. */
|
||||||
#define RED_KIT_COMMERCIAL 1U /* Commercially-licensed kit. */
|
#define RED_KIT_COMMERCIAL 1U /* Commercially-licensed kit. */
|
||||||
@ -48,7 +48,7 @@
|
|||||||
|
|
||||||
/** @brief Version number to display in output.
|
/** @brief Version number to display in output.
|
||||||
*/
|
*/
|
||||||
#define RED_VERSION "v1.0"
|
#define RED_VERSION "v1.0.4"
|
||||||
|
|
||||||
|
|
||||||
/** @brief On-disk version number.
|
/** @brief On-disk version number.
|
||||||
@ -78,12 +78,12 @@
|
|||||||
|
|
||||||
/** @brief Full product name and version.
|
/** @brief Full product name and version.
|
||||||
*/
|
*/
|
||||||
#define RED_PRODUCT_NAME "Datalight "RED_PRODUCT_BASE_NAME" "RED_VERSION" Build "RED_BUILD_NUMBER ALPHABETA
|
#define RED_PRODUCT_NAME "Datalight " RED_PRODUCT_BASE_NAME " " RED_VERSION " Build " RED_BUILD_NUMBER ALPHABETA
|
||||||
|
|
||||||
|
|
||||||
/** @brief Product copyright.
|
/** @brief Product copyright.
|
||||||
*/
|
*/
|
||||||
#define RED_PRODUCT_LEGAL "Copyright (c) 2014-2015 Datalight, Inc. All Rights Reserved Worldwide."
|
#define RED_PRODUCT_LEGAL "Copyright (c) 2014-2016 Datalight, Inc. All Rights Reserved Worldwide."
|
||||||
|
|
||||||
|
|
||||||
/** @brief Product patents.
|
/** @brief Product patents.
|
||||||
@ -94,11 +94,11 @@
|
|||||||
/** @brief Product edition.
|
/** @brief Product edition.
|
||||||
*/
|
*/
|
||||||
#if RED_KIT == RED_KIT_GPL
|
#if RED_KIT == RED_KIT_GPL
|
||||||
#define RED_PRODUCT_EDITION "Open-Source GPLv2 Edition -- Compiled "__DATE__" at "__TIME__
|
#define RED_PRODUCT_EDITION "Open-Source GPLv2 Edition -- Compiled " __DATE__ " at " __TIME__
|
||||||
#elif RED_KIT == RED_KIT_COMMERCIAL
|
#elif RED_KIT == RED_KIT_COMMERCIAL
|
||||||
#define RED_PRODUCT_EDITION "Commercial Edition -- Compiled "__DATE__" at "__TIME__
|
#define RED_PRODUCT_EDITION "Commercial Edition -- Compiled " __DATE__ " at " __TIME__
|
||||||
#else
|
#else
|
||||||
#define RED_PRODUCT_EDITION "Developer Sandbox -- Compiled "__DATE__" at "__TIME__
|
#define RED_PRODUCT_EDITION "Developer Sandbox -- Compiled " __DATE__ " at " __TIME__
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,134 +1,141 @@
|
|||||||
/* ----> DO NOT REMOVE THE FOLLOWING NOTICE <----
|
/* ----> DO NOT REMOVE THE FOLLOWING NOTICE <----
|
||||||
|
|
||||||
Copyright (c) 2014-2015 Datalight, Inc.
|
Copyright (c) 2014-2015 Datalight, Inc.
|
||||||
All Rights Reserved Worldwide.
|
All Rights Reserved Worldwide.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
the Free Software Foundation; use version 2 of the License.
|
the Free Software Foundation; use version 2 of the License.
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
This program is distributed in the hope that it will be useful,
|
||||||
but "AS-IS," WITHOUT ANY WARRANTY; without even the implied warranty
|
but "AS-IS," WITHOUT ANY WARRANTY; without even the implied warranty
|
||||||
of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
GNU General Public License for more details.
|
GNU General Public License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
*/
|
*/
|
||||||
/* Businesses and individuals that for commercial or other reasons cannot
|
/* Businesses and individuals that for commercial or other reasons cannot
|
||||||
comply with the terms of the GPLv2 license may obtain a commercial license
|
comply with the terms of the GPLv2 license may obtain a commercial license
|
||||||
before incorporating Reliance Edge into proprietary software for
|
before incorporating Reliance Edge into proprietary software for
|
||||||
distribution in any form. Visit http://www.datalight.com/reliance-edge for
|
distribution in any form. Visit http://www.datalight.com/reliance-edge for
|
||||||
more information.
|
more information.
|
||||||
*/
|
*/
|
||||||
/** @file
|
/** @file
|
||||||
*/
|
*/
|
||||||
#ifndef REDVOLUME_H
|
#ifndef REDVOLUME_H
|
||||||
#define REDVOLUME_H
|
#define REDVOLUME_H
|
||||||
|
|
||||||
|
|
||||||
/** @brief Per-volume configuration structure.
|
/** @brief Per-volume configuration structure.
|
||||||
|
|
||||||
Contains the configuration values that may differ between volumes. Must be
|
Contains the configuration values that may differ between volumes. Must be
|
||||||
declared in an array in redconf.c in the Reliance Edge project directory and
|
declared in an array in redconf.c in the Reliance Edge project directory and
|
||||||
statically initialized with values representing the volume configuration of
|
statically initialized with values representing the volume configuration of
|
||||||
the target system.
|
the target system.
|
||||||
*/
|
*/
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
/** The sector size for the block device underlying the volume: the basic
|
/** The sector size for the block device underlying the volume: the basic
|
||||||
unit for reading and writing to the storage media. Commonly ranges
|
unit for reading and writing to the storage media. Commonly ranges
|
||||||
between 512 and 4096, but any power-of-two value not greater than the
|
between 512 and 4096, but any power-of-two value not greater than the
|
||||||
block size will work.
|
block size will work.
|
||||||
*/
|
*/
|
||||||
uint32_t ulSectorSize;
|
uint32_t ulSectorSize;
|
||||||
|
|
||||||
/** The number of sectors in this file system volume.
|
/** The number of sectors in this file system volume.
|
||||||
*/
|
*/
|
||||||
uint64_t ullSectorCount;
|
uint64_t ullSectorCount;
|
||||||
|
|
||||||
/** Whether a sector write on the block device underlying the volume is
|
/** Whether a sector write on the block device underlying the volume is
|
||||||
atomic. It is atomic if when the sector write is interrupted, the
|
atomic. It is atomic if when the sector write is interrupted, the
|
||||||
contents of the sector are guaranteed to be either all of the new data,
|
contents of the sector are guaranteed to be either all of the new data,
|
||||||
or all of the old data. If unsure, leave as false.
|
or all of the old data. If unsure, leave as false.
|
||||||
*/
|
*/
|
||||||
bool fAtomicSectorWrite;
|
bool fAtomicSectorWrite;
|
||||||
|
|
||||||
/** This is the maximum number of inodes (files and directories). This
|
/** This is the maximum number of inodes (files and directories). This
|
||||||
number includes the root directory inode (inode 2; created during
|
number includes the root directory inode (inode 2; created during
|
||||||
format), but does not include inodes 0 or 1, which do not exist on
|
format), but does not include inodes 0 or 1, which do not exist on
|
||||||
disk. The number of inodes cannot be less than 1.
|
disk. The number of inodes cannot be less than 1.
|
||||||
*/
|
*/
|
||||||
uint32_t ulInodeCount;
|
uint32_t ulInodeCount;
|
||||||
|
|
||||||
#if REDCONF_API_POSIX == 1
|
/** This is the maximum number of times a block device I/O operation will
|
||||||
/** The path prefix for the volume; for example, "VOL1:", "FlashDisk", etc.
|
be retried. If a block device read, write, or flush fails, Reliance
|
||||||
*/
|
Edge will try again up to this number of times until the operation is
|
||||||
const char *pszPathPrefix;
|
successful. Set this to 0 to disable retries.
|
||||||
#endif
|
*/
|
||||||
} VOLCONF;
|
uint8_t bBlockIoRetries;
|
||||||
|
|
||||||
extern const VOLCONF gaRedVolConf[REDCONF_VOLUME_COUNT];
|
#if REDCONF_API_POSIX == 1
|
||||||
extern const VOLCONF * CONST_IF_ONE_VOLUME gpRedVolConf;
|
/** The path prefix for the volume; for example, "VOL1:", "FlashDisk", etc.
|
||||||
|
*/
|
||||||
|
const char *pszPathPrefix;
|
||||||
/** @brief Per-volume run-time data.
|
#endif
|
||||||
*/
|
} VOLCONF;
|
||||||
typedef struct
|
|
||||||
{
|
extern const VOLCONF gaRedVolConf[REDCONF_VOLUME_COUNT];
|
||||||
/** Whether the volume is currently mounted.
|
extern const VOLCONF * CONST_IF_ONE_VOLUME gpRedVolConf;
|
||||||
*/
|
|
||||||
bool fMounted;
|
|
||||||
|
/** @brief Per-volume run-time data.
|
||||||
#if REDCONF_READ_ONLY == 0
|
*/
|
||||||
/** Whether the volume is read-only.
|
typedef struct
|
||||||
*/
|
{
|
||||||
bool fReadOnly;
|
/** Whether the volume is currently mounted.
|
||||||
|
*/
|
||||||
/** The active automatic transaction mask.
|
bool fMounted;
|
||||||
*/
|
|
||||||
uint32_t ulTransMask;
|
#if REDCONF_READ_ONLY == 0
|
||||||
#endif
|
/** Whether the volume is read-only.
|
||||||
|
*/
|
||||||
/** The power of 2 difference between sector size and block size.
|
bool fReadOnly;
|
||||||
*/
|
|
||||||
uint8_t bBlockSectorShift;
|
/** The active automatic transaction mask.
|
||||||
|
*/
|
||||||
/** The number of logical blocks in this file system volume. The unit here
|
uint32_t ulTransMask;
|
||||||
is the global block size.
|
#endif
|
||||||
*/
|
|
||||||
uint32_t ulBlockCount;
|
/** The power of 2 difference between sector size and block size.
|
||||||
|
*/
|
||||||
/** The total number of allocable blocks; Also the maximum count of free
|
uint8_t bBlockSectorShift;
|
||||||
blocks.
|
|
||||||
*/
|
/** The number of logical blocks in this file system volume. The unit here
|
||||||
uint32_t ulBlocksAllocable;
|
is the global block size.
|
||||||
|
*/
|
||||||
/** The maximum number of bytes that an inode is capable of addressing.
|
uint32_t ulBlockCount;
|
||||||
*/
|
|
||||||
uint64_t ullMaxInodeSize;
|
/** The total number of allocable blocks; Also the maximum count of free
|
||||||
|
blocks.
|
||||||
/** The current metadata sequence number. This value is included in all
|
*/
|
||||||
metadata nodes and incremented every time a metadata node is written.
|
uint32_t ulBlocksAllocable;
|
||||||
It is assumed to never wrap around.
|
|
||||||
*/
|
/** The maximum number of bytes that an inode is capable of addressing.
|
||||||
uint64_t ullSequence;
|
*/
|
||||||
} VOLUME;
|
uint64_t ullMaxInodeSize;
|
||||||
|
|
||||||
/* Array of VOLUME structures, populated at during RedCoreInit().
|
/** The current metadata sequence number. This value is included in all
|
||||||
*/
|
metadata nodes and incremented every time a metadata node is written.
|
||||||
extern VOLUME gaRedVolume[REDCONF_VOLUME_COUNT];
|
It is assumed to never wrap around.
|
||||||
|
*/
|
||||||
/* Volume number currently being accessed; populated during
|
uint64_t ullSequence;
|
||||||
RedCoreVolSetCurrent().
|
} VOLUME;
|
||||||
*/
|
|
||||||
extern CONST_IF_ONE_VOLUME uint8_t gbRedVolNum;
|
/* Array of VOLUME structures, populated at during RedCoreInit().
|
||||||
|
*/
|
||||||
/* Pointer to the volume currently being accessed; populated during
|
extern VOLUME gaRedVolume[REDCONF_VOLUME_COUNT];
|
||||||
RedCoreVolSetCurrent().
|
|
||||||
*/
|
/* Volume number currently being accessed; populated during
|
||||||
extern VOLUME * CONST_IF_ONE_VOLUME gpRedVolume;
|
RedCoreVolSetCurrent().
|
||||||
|
*/
|
||||||
#endif
|
extern CONST_IF_ONE_VOLUME uint8_t gbRedVolNum;
|
||||||
|
|
||||||
|
/* Pointer to the volume currently being accessed; populated during
|
||||||
|
RedCoreVolSetCurrent().
|
||||||
|
*/
|
||||||
|
extern VOLUME * CONST_IF_ONE_VOLUME gpRedVolume;
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,54 +1,56 @@
|
|||||||
/* ----> DO NOT REMOVE THE FOLLOWING NOTICE <----
|
/* ----> DO NOT REMOVE THE FOLLOWING NOTICE <----
|
||||||
|
|
||||||
Copyright (c) 2014-2015 Datalight, Inc.
|
Copyright (c) 2014-2015 Datalight, Inc.
|
||||||
All Rights Reserved Worldwide.
|
All Rights Reserved Worldwide.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
the Free Software Foundation; use version 2 of the License.
|
the Free Software Foundation; use version 2 of the License.
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
This program is distributed in the hope that it will be useful,
|
||||||
but "AS-IS," WITHOUT ANY WARRANTY; without even the implied warranty
|
but "AS-IS," WITHOUT ANY WARRANTY; without even the implied warranty
|
||||||
of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
GNU General Public License for more details.
|
GNU General Public License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
*/
|
*/
|
||||||
/* Businesses and individuals that for commercial or other reasons cannot
|
/* Businesses and individuals that for commercial or other reasons cannot
|
||||||
comply with the terms of the GPLv2 license may obtain a commercial license
|
comply with the terms of the GPLv2 license may obtain a commercial license
|
||||||
before incorporating Reliance Edge into proprietary software for
|
before incorporating Reliance Edge into proprietary software for
|
||||||
distribution in any form. Visit http://www.datalight.com/reliance-edge for
|
distribution in any form. Visit http://www.datalight.com/reliance-edge for
|
||||||
more information.
|
more information.
|
||||||
*/
|
*/
|
||||||
/** @file
|
/** @file
|
||||||
@brief Implements assertion handling.
|
@brief Implements assertion handling.
|
||||||
*/
|
*/
|
||||||
#include <redfs.h>
|
#include <redfs.h>
|
||||||
|
|
||||||
#if REDCONF_ASSERTS == 1
|
#if REDCONF_ASSERTS == 1
|
||||||
|
|
||||||
#include <redosdeviations.h>
|
#include <redosdeviations.h>
|
||||||
|
|
||||||
|
|
||||||
/** @brief Invoke the native assertion handler.
|
/** @brief Invoke the native assertion handler.
|
||||||
|
|
||||||
@param pszFileName Null-terminated string containing the name of the file
|
@param pszFileName Null-terminated string containing the name of the file
|
||||||
where the assertion fired.
|
where the assertion fired.
|
||||||
@param ulLineNum Line number in @p pszFileName where the assertion
|
@param ulLineNum Line number in @p pszFileName where the assertion
|
||||||
fired.
|
fired.
|
||||||
*/
|
*/
|
||||||
void RedOsAssertFail(
|
void RedOsAssertFail(
|
||||||
const char *pszFileName,
|
const char *pszFileName,
|
||||||
uint32_t ulLineNum)
|
uint32_t ulLineNum)
|
||||||
{
|
{
|
||||||
PRINT_ASSERT(pszFileName, ulLineNum);
|
#if REDCONF_OUTPUT == 1
|
||||||
|
IGNORE_ERRORS(PRINT_ASSERT(pszFileName, ulLineNum));
|
||||||
for( ;; )
|
#endif
|
||||||
{
|
|
||||||
}
|
while(true)
|
||||||
}
|
{
|
||||||
|
}
|
||||||
#endif
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,120 +1,134 @@
|
|||||||
/* ----> DO NOT REMOVE THE FOLLOWING NOTICE <----
|
/* ----> DO NOT REMOVE THE FOLLOWING NOTICE <----
|
||||||
|
|
||||||
Copyright (c) 2014-2015 Datalight, Inc.
|
Copyright (c) 2014-2015 Datalight, Inc.
|
||||||
All Rights Reserved Worldwide.
|
All Rights Reserved Worldwide.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
the Free Software Foundation; use version 2 of the License.
|
the Free Software Foundation; use version 2 of the License.
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
This program is distributed in the hope that it will be useful,
|
||||||
but "AS-IS," WITHOUT ANY WARRANTY; without even the implied warranty
|
but "AS-IS," WITHOUT ANY WARRANTY; without even the implied warranty
|
||||||
of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
GNU General Public License for more details.
|
GNU General Public License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
*/
|
*/
|
||||||
/* Businesses and individuals that for commercial or other reasons cannot
|
/* Businesses and individuals that for commercial or other reasons cannot
|
||||||
comply with the terms of the GPLv2 license may obtain a commercial license
|
comply with the terms of the GPLv2 license may obtain a commercial license
|
||||||
before incorporating Reliance Edge into proprietary software for
|
before incorporating Reliance Edge into proprietary software for
|
||||||
distribution in any form. Visit http://www.datalight.com/reliance-edge for
|
distribution in any form. Visit http://www.datalight.com/reliance-edge for
|
||||||
more information.
|
more information.
|
||||||
*/
|
*/
|
||||||
/** @file
|
/** @file
|
||||||
@brief Implements a synchronization object to provide mutual exclusion.
|
@brief Implements a synchronization object to provide mutual exclusion.
|
||||||
*/
|
*/
|
||||||
#include <FreeRTOS.h>
|
#include <FreeRTOS.h>
|
||||||
#include <semphr.h>
|
#include <semphr.h>
|
||||||
|
|
||||||
#include <redfs.h>
|
#include <redfs.h>
|
||||||
|
#include <redosdeviations.h>
|
||||||
#if REDCONF_TASK_COUNT > 1U
|
|
||||||
|
#if REDCONF_TASK_COUNT > 1U
|
||||||
|
|
||||||
static SemaphoreHandle_t xMutex;
|
|
||||||
|
static SemaphoreHandle_t xMutex;
|
||||||
|
#if defined(configSUPPORT_STATIC_ALLOCATION) && (configSUPPORT_STATIC_ALLOCATION == 1)
|
||||||
/** @brief Initialize the mutex.
|
static StaticSemaphore_t xMutexBuffer;
|
||||||
|
#endif
|
||||||
After initialization, the mutex is in the released state.
|
|
||||||
|
|
||||||
The behavior of calling this function when the mutex is still initialized
|
/** @brief Initialize the mutex.
|
||||||
is undefined.
|
|
||||||
|
After initialization, the mutex is in the released state.
|
||||||
@return A negated ::REDSTATUS code indicating the operation result.
|
|
||||||
|
The behavior of calling this function when the mutex is still initialized
|
||||||
@retval 0 Operation was successful.
|
is undefined.
|
||||||
*/
|
|
||||||
REDSTATUS RedOsMutexInit(void)
|
@return A negated ::REDSTATUS code indicating the operation result.
|
||||||
{
|
|
||||||
REDSTATUS ret;
|
@retval 0 Operation was successful.
|
||||||
|
*/
|
||||||
xMutex = xSemaphoreCreateMutex();
|
REDSTATUS RedOsMutexInit(void)
|
||||||
if(xMutex != NULL)
|
{
|
||||||
{
|
REDSTATUS ret = 0;
|
||||||
ret = 0;
|
|
||||||
}
|
#if defined(configSUPPORT_STATIC_ALLOCATION) && (configSUPPORT_STATIC_ALLOCATION == 1)
|
||||||
else
|
xMutex = xSemaphoreCreateMutexStatic(&xMutexBuffer);
|
||||||
{
|
|
||||||
ret = -RED_ENOMEM;
|
if(xMutex == NULL)
|
||||||
}
|
{
|
||||||
|
/* The only error case for xSemaphoreCreateMutexStatic is that the mutex
|
||||||
return ret;
|
buffer parameter is NULL, which is not the case.
|
||||||
}
|
*/
|
||||||
|
REDERROR();
|
||||||
|
ret = -RED_EINVAL;
|
||||||
/** @brief Uninitialize the mutex.
|
}
|
||||||
|
|
||||||
The behavior of calling this function when the mutex is not initialized is
|
#else
|
||||||
undefined; likewise, the behavior of uninitializing the mutex when it is
|
xMutex = xSemaphoreCreateMutex();
|
||||||
in the acquired state is undefined.
|
if(xMutex == NULL)
|
||||||
|
{
|
||||||
@return A negated ::REDSTATUS code indicating the operation result.
|
ret = -RED_ENOMEM;
|
||||||
|
}
|
||||||
@retval 0 Operation was successful.
|
#endif
|
||||||
*/
|
|
||||||
REDSTATUS RedOsMutexUninit(void)
|
return ret;
|
||||||
{
|
}
|
||||||
vSemaphoreDelete(xMutex);
|
|
||||||
xMutex = NULL;
|
|
||||||
|
/** @brief Uninitialize the mutex.
|
||||||
return 0;
|
|
||||||
}
|
The behavior of calling this function when the mutex is not initialized is
|
||||||
|
undefined; likewise, the behavior of uninitializing the mutex when it is
|
||||||
|
in the acquired state is undefined.
|
||||||
/** @brief Acquire the mutex.
|
|
||||||
|
@return A negated ::REDSTATUS code indicating the operation result.
|
||||||
The behavior of calling this function when the mutex is not initialized is
|
|
||||||
undefined; likewise, the behavior of recursively acquiring the mutex is
|
@retval 0 Operation was successful.
|
||||||
undefined.
|
*/
|
||||||
*/
|
REDSTATUS RedOsMutexUninit(void)
|
||||||
void RedOsMutexAcquire(void)
|
{
|
||||||
{
|
vSemaphoreDelete(xMutex);
|
||||||
while(xSemaphoreTake(xMutex, portMAX_DELAY) != pdTRUE)
|
xMutex = NULL;
|
||||||
{
|
|
||||||
}
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/** @brief Release the mutex.
|
/** @brief Acquire the mutex.
|
||||||
|
|
||||||
The behavior is undefined in the following cases:
|
The behavior of calling this function when the mutex is not initialized is
|
||||||
|
undefined; likewise, the behavior of recursively acquiring the mutex is
|
||||||
- Releasing the mutex when the mutex is not initialized.
|
undefined.
|
||||||
- Releasing the mutex when it is not in the acquired state.
|
*/
|
||||||
- Releasing the mutex from a task or thread other than the one which
|
void RedOsMutexAcquire(void)
|
||||||
acquired the mutex.
|
{
|
||||||
*/
|
while(xSemaphoreTake(xMutex, portMAX_DELAY) != pdTRUE)
|
||||||
void RedOsMutexRelease(void)
|
{
|
||||||
{
|
}
|
||||||
BaseType_t xSuccess;
|
}
|
||||||
|
|
||||||
xSuccess = xSemaphoreGive(xMutex);
|
|
||||||
REDASSERT(xSuccess == pdTRUE);
|
/** @brief Release the mutex.
|
||||||
(void)xSuccess;
|
|
||||||
}
|
The behavior is undefined in the following cases:
|
||||||
|
|
||||||
#endif
|
- Releasing the mutex when the mutex is not initialized.
|
||||||
|
- Releasing the mutex when it is not in the acquired state.
|
||||||
|
- Releasing the mutex from a task or thread other than the one which
|
||||||
|
acquired the mutex.
|
||||||
|
*/
|
||||||
|
void RedOsMutexRelease(void)
|
||||||
|
{
|
||||||
|
BaseType_t xSuccess;
|
||||||
|
|
||||||
|
xSuccess = xSemaphoreGive(xMutex);
|
||||||
|
REDASSERT(xSuccess == pdTRUE);
|
||||||
|
IGNORE_ERRORS(xSuccess);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
@ -891,6 +891,7 @@ static PRINTTYPE ParseFormatType(
|
|||||||
case 'u':
|
case 'u':
|
||||||
fmtType = MAPULONGLONG;
|
fmtType = MAPULONGLONG;
|
||||||
break;
|
break;
|
||||||
|
case 'x':
|
||||||
case 'X':
|
case 'X':
|
||||||
fmtType = MAPHEXULONGLONG;
|
fmtType = MAPHEXULONGLONG;
|
||||||
break;
|
break;
|
||||||
|
Reference in New Issue
Block a user