[修改] 增加freeRTOS

1. 版本FreeRTOSv202212.01,命名为kernel;
This commit is contained in:
2023-05-06 16:43:01 +00:00
commit a345df017b
20944 changed files with 11094377 additions and 0 deletions

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,20 @@
<table>
<tr>
<td colspan="3"><center><b>Code Size of AWS IoT Fleet Provisioning (example generated with GCC for ARM Cortex-M)</b></center></td>
</tr>
<tr>
<td><b>File</b></td>
<td><b><center>With -O1 Optimization</center></b></td>
<td><b><center>With -Os Optimization</center></b></td>
</tr>
<tr>
<td>fleet_provisioning.c</td>
<td><center>1.0K</center></td>
<td><center>0.9K</center></td>
</tr>
<tr>
<td><b>Total estimates</b></td>
<td><b><center>1.0K</center></b></td>
<td><b><center>0.9K</center></b></td>
</tr>
</table>

View File

@ -0,0 +1,228 @@
<doxygenlayout version="1.0">
<!-- Generated by doxygen 1.8.20 -->
<!-- Navigation index tabs for HTML output -->
<navindex>
<tab type="mainpage" visible="yes" title=""/>
<tab type="pages" visible="yes" title="" intro=""/>
<!-- Hide the default "Data Structures" tab and use the "Modules" tab for data
structures. This allows internal data structures to be hidden. -->
<tab type="modules" visible="yes" title="Data types and Constants" intro="This library defines the following data types and constants."/>
<tab type="namespaces" visible="yes" title="">
<tab type="namespacelist" visible="yes" title="" intro=""/>
<tab type="namespacemembers" visible="yes" title="" intro=""/>
</tab>
<tab type="interfaces" visible="no" title="">
<tab type="interfacelist" visible="no" title="" intro=""/>
<tab type="interfaceindex" visible="no" title=""/>
<tab type="interfacehierarchy" visible="yes" title="" intro=""/>
</tab>
<tab type="classes" visible="no" title="">
<tab type="classlist" visible="no" title="" intro=""/>
<tab type="classindex" visible="no" title=""/>
<tab type="hierarchy" visible="no" title="" intro=""/>
<tab type="classmembers" visible="no" title="" intro=""/>
</tab>
<tab type="structs" visible="no" title="">
<tab type="structlist" visible="no" title="" intro=""/>
<tab type="structindex" visible="no" title=""/>
</tab>
<tab type="exceptions" visible="no" title="">
<tab type="exceptionlist" visible="no" title="" intro=""/>
<tab type="exceptionindex" visible="no" title=""/>
<tab type="exceptionhierarchy" visible="yes" title="" intro=""/>
</tab>
<tab type="files" visible="no" title="">
<tab type="filelist" visible="yes" title="Files" intro="The following files are associated with this library."/>
<tab type="globals" visible="no" title="" intro=""/>
</tab>
<tab type="examples" visible="yes" title="" intro=""/>
</navindex>
<!-- Layout definition for a class page -->
<class>
<briefdescription visible="yes"/>
<includes visible="$SHOW_INCLUDE_FILES"/>
<inheritancegraph visible="$CLASS_GRAPH"/>
<collaborationgraph visible="$COLLABORATION_GRAPH"/>
<memberdecl>
<nestedclasses visible="yes" title=""/>
<publictypes title=""/>
<services title=""/>
<interfaces title=""/>
<publicslots title=""/>
<signals title=""/>
<publicmethods title=""/>
<publicstaticmethods title=""/>
<publicattributes title=""/>
<publicstaticattributes title=""/>
<protectedtypes title=""/>
<protectedslots title=""/>
<protectedmethods title=""/>
<protectedstaticmethods title=""/>
<protectedattributes title=""/>
<protectedstaticattributes title=""/>
<packagetypes title=""/>
<packagemethods title=""/>
<packagestaticmethods title=""/>
<packageattributes title=""/>
<packagestaticattributes title=""/>
<properties title=""/>
<events title=""/>
<privatetypes title=""/>
<privateslots title=""/>
<privatemethods title=""/>
<privatestaticmethods title=""/>
<privateattributes title=""/>
<privatestaticattributes title=""/>
<friends title=""/>
<related title="" subtitle=""/>
<membergroups visible="yes"/>
</memberdecl>
<detaileddescription title=""/>
<memberdef>
<inlineclasses title=""/>
<typedefs title=""/>
<enums title=""/>
<services title=""/>
<interfaces title=""/>
<constructors title=""/>
<functions title=""/>
<related title=""/>
<variables title=""/>
<properties title=""/>
<events title=""/>
</memberdef>
<allmemberslink visible="yes"/>
<usedfiles visible="$SHOW_USED_FILES"/>
<authorsection visible="yes"/>
</class>
<!-- Layout definition for a namespace page -->
<namespace>
<briefdescription visible="yes"/>
<memberdecl>
<nestednamespaces visible="yes" title=""/>
<constantgroups visible="yes" title=""/>
<interfaces visible="yes" title=""/>
<classes visible="yes" title=""/>
<structs visible="yes" title=""/>
<exceptions visible="yes" title=""/>
<typedefs title=""/>
<sequences title=""/>
<dictionaries title=""/>
<enums title=""/>
<functions title=""/>
<variables title=""/>
<membergroups visible="yes"/>
</memberdecl>
<detaileddescription title=""/>
<memberdef>
<inlineclasses title=""/>
<typedefs title=""/>
<sequences title=""/>
<dictionaries title=""/>
<enums title=""/>
<functions title=""/>
<variables title=""/>
</memberdef>
<authorsection visible="yes"/>
</namespace>
<!-- Layout definition for a file page -->
<file>
<briefdescription visible="yes"/>
<includes visible="$SHOW_INCLUDE_FILES"/>
<includegraph visible="$INCLUDE_GRAPH"/>
<includedbygraph visible="$INCLUDED_BY_GRAPH"/>
<sourcelink visible="yes"/>
<memberdecl>
<interfaces visible="yes" title=""/>
<classes visible="yes" title=""/>
<structs visible="yes" title=""/>
<exceptions visible="yes" title=""/>
<namespaces visible="yes" title=""/>
<constantgroups visible="yes" title=""/>
<defines title=""/>
<typedefs title=""/>
<sequences title=""/>
<dictionaries title=""/>
<enums title=""/>
<functions title=""/>
<variables title=""/>
<membergroups visible="yes"/>
</memberdecl>
<detaileddescription title=""/>
<memberdef>
<inlineclasses title=""/>
<defines title=""/>
<typedefs title=""/>
<sequences title=""/>
<dictionaries title=""/>
<enums title=""/>
<functions title=""/>
<variables title=""/>
</memberdef>
<authorsection/>
</file>
<!-- Layout definition for a group page -->
<group>
<briefdescription visible="yes"/>
<groupgraph visible="$GROUP_GRAPHS"/>
<memberdecl>
<nestedgroups visible="yes" title=""/>
<dirs visible="yes" title=""/>
<files visible="yes" title=""/>
<namespaces visible="yes" title=""/>
<classes visible="yes" title=""/>
<defines title=""/>
<typedefs title=""/>
<sequences title=""/>
<dictionaries title=""/>
<enums title=""/>
<enumvalues title=""/>
<functions title=""/>
<variables title=""/>
<signals title=""/>
<publicslots title=""/>
<protectedslots title=""/>
<privateslots title=""/>
<events title=""/>
<properties title=""/>
<friends title=""/>
<membergroups visible="yes"/>
</memberdecl>
<detaileddescription title=""/>
<memberdef>
<pagedocs/>
<inlineclasses title=""/>
<defines title=""/>
<typedefs title=""/>
<sequences title=""/>
<dictionaries title=""/>
<enums title=""/>
<enumvalues title=""/>
<functions title=""/>
<variables title=""/>
<signals title=""/>
<publicslots title=""/>
<protectedslots title=""/>
<privateslots title=""/>
<events title=""/>
<properties title=""/>
<friends title=""/>
</memberdef>
<authorsection visible="yes"/>
</group>
<!-- Layout definition for a directory page -->
<directory>
<briefdescription visible="yes"/>
<directorygraph visible="yes"/>
<memberdecl>
<dirs visible="yes"/>
<files visible="yes"/>
</memberdecl>
<detaileddescription title=""/>
</directory>
</doxygenlayout>

View File

@ -0,0 +1,101 @@
/**
@mainpage Overview
@anchor fleet_provisioning
@brief AWS IoT Fleet Provisioning Library
> By using AWS IoT fleet provisioning, AWS IoT can generate and securely deliver device certificates and private keys to your devices when they connect to AWS IoT for the first time. AWS IoT provides client certificates that are signed by the Amazon Root certificate authority (CA).
<span style="float:right;margin-right:4em"> &mdash; <i>Description of Fleet Provisioning from AWS IoT documentation <https://docs.aws.amazon.com/iot/latest/developerguide/provision-wo-cert.html></i></span><br>
For an overview of device provisioning options available with AWS IoT, see
[Device Provisioning](https://docs.aws.amazon.com/iot/latest/developerguide/provision-wo-cert.html).
AWS IoT Fleet Provisioning allows you to provision devices without
pre-installed unique client certificates. There are two ways to use Fleet
Provisioning: by claim, or by trusted user. If provisioning by claim, devices
used a provisioning claim certificate and private key registered with AWS IoT
to obtain unique device certificates. If provisioning by trusted user, a
trusted user, such as an end user or installation technician, uses a mobile
app to configure the device in its deployed location.
There are two options for obtaining unique client certificates with AWS IoT
Fleet Provisioning: CreateCertificateFromCsr and CreateKeysAndCertificate.
CreateCertificateFromCsr allows the device to obtain a certificate by providing
a certificate signing request, keeping the private key secure on the device.
CreateKeysAndCertificate provides a new certificate and corresponding private
key.
@section fleet_provisioning_memory_requirements Memory Requirements
@brief Memory requirements of the AWS IoT Fleet Provisioning Library.
@include{doc} size_table.md
*/
/**
@page fleet_provisioning_design Design
AWS IoT Fleet Provisioning Library Design
The AWS IoT Fleet Provisioning library provides macros and functions to
assemble and parse MQTT topic strings reserved for the Fleet Provisioning
feature of AWS IoT core. Applications can use this library in conjunction with
any MQTT library to interact with the AWS IoT Fleet Provisioning APIs.
The diagram below demonstrates the happy path an application can take to use
the Fleet Provisioning library, a MQTT library, and a JSON or CBOR library to
interact with the AWS IoT Fleet Provisioning APIs.
\image html fleet_provisioning_operations.png "Fleet Provisioning Library example operation diagram" width=90%
*/
/**
@page fleet_provisioning_config Configurations
@brief Configurations of the AWS IoT Fleet Provisioning Library.
<!-- @par configpagestyle allows the @section titles to be styled according to
style.css -->
@par configpagestyle
Configuration settings are C pre-processor constants. They can be set with a
`\#define` in the config file (`fleet_provisioning_config.h`) or by using a
compiler option such as -D in gcc.
@section FLEET_PROVISIONING_DO_NOT_USE_CUSTOM_CONFIG
@copydoc FLEET_PROVISIONING_DO_NOT_USE_CUSTOM_CONFIG
@section fleet_provisioning_logerror LogError
@copydoc LogError
@section fleet_provisioning_logwarn LogWarn
@copydoc LogWarn
@section fleet_provisioning_loginfo LogInfo
@copydoc LogInfo
@section fleet_provisioning_logdebug LogDebug
@copydoc LogDebug
*/
/**
@page fleet_provisioning_functions Functions
@brief Primary functions of the AWS IoT Fleet Provisioning Library:<br><br>
@subpage fleet_provisioning_getregisterthingtopic_function <br>
@subpage fleet_provisioning_matchtopic_function <br>
@page fleet_provisioning_getregisterthingtopic_function FleetProvisioning_GetRegisterThingTopic
@snippet fleet_provisioning.h declare_fleet_provisioning_getregisterthingtopic
@copydoc FleetProvisioning_GetRegisterThingTopic
@page fleet_provisioning_matchtopic_function FleetProvisioning_MatchTopic
@snippet fleet_provisioning.h declare_fleet_provisioning_matchtopic
@copydoc FleetProvisioning_MatchTopic
*/
<!-- We do not use doxygen ALIASes here because there have been issues in the
past versions with "^^" newlines within the alias definition. -->
/**
@defgroup fleet_provisioning_enum_types Enumerated Types
@brief Enumerated types of the AWS IoT Fleet Provisioning Library
*/
/**
@defgroup fleet_provisioning_constants Constants
@brief Constants defined in the AWS IoT Fleet Provisioning Library
*/

View File

@ -0,0 +1,25 @@
/**
@page fleet_provisioning_porting Porting Guide
@brief Guide for porting the AWS IoT Fleet Provisioning Library to a new
platform.
@section fleet_provisioning_porting_config Configuration Macros
@brief Configuration macros that can be set in the config header
`fleet_provisioning_config.h`, or passed in as compiler options.
The following optional logging macros are used throughout the library:
- @ref LogError
- @ref LogWarn
- @ref LogInfo
- @ref LogDebug
@see [Configurations](@ref fleet_provisioning_config) for more information.
@note Regardless of whether the above macros are defined in
`fleet_provisioning_config.h` or passed as compiler options, by default the
`fleet_provisioning_config.h` file is needed to build the AWS IoT Fleet
Provisioning Library. To disable this requirement and build the library with
default configuration values, provide
`FLEET_PROVISIONING_DO_NOT_USE_CUSTOM_CONFIG` as a compile time preprocessor
macro.
*/

View File

@ -0,0 +1,136 @@
/*
* Stylesheet for Doxygen HTML output.
*
* This file defines styles for custom elements in the header/footer and
* overrides some of the default Doxygen styles.
*
* Styles in this file do not affect the treeview sidebar.
*/
/* Set the margins to place a small amount of whitespace on the left and right
* side of the page. */
div.contents {
margin-left:4em;
margin-right:4em;
}
/* Justify text in paragraphs. */
p {
text-align: justify;
}
/* Style of section headings. */
h1 {
border-bottom: 1px solid #879ECB;
color: #354C7B;
font-size: 160%;
font-weight: normal;
padding-bottom: 4px;
padding-top: 8px;
}
/* Style of subsection headings. */
h2:not(.memtitle):not(.groupheader) {
font-size: 125%;
margin-bottom: 0px;
margin-top: 16px;
padding: 0px;
}
/* Style of paragraphs immediately after subsection headings. */
h2 + p {
margin: 0px;
padding: 0px;
}
/* Style of subsection headings. */
h3 {
font-size: 100%;
margin-bottom: 0px;
margin-left: 2em;
margin-right: 2em;
}
/* Style of paragraphs immediately after subsubsection headings. */
h3 + p {
margin-top: 0px;
margin-left: 2em;
margin-right: 2em;
}
/* Style of the prefix "AWS IoT Device SDK C" that appears in the header. */
#csdkprefix {
color: #757575;
}
/* Style of the "Return to main page" link that appears in the header. */
#returntomain {
padding: 0.5em;
}
/* Style of the dividers on Configuration Settings pages. */
div.configpagedivider {
margin-left: 0px !important;
margin-right: 0px !important;
margin-top: 20px !important;
}
/* Style of configuration setting names. */
dl.section.user ~ h1 {
border-bottom: none;
color: #000000;
font-family: monospace, fixed;
font-size: 16px;
margin-bottom: 0px;
margin-left: 2em;
margin-top: 1.5em;
}
/* Style of paragraphs on a configuration settings page. */
dl.section.user ~ * {
margin-bottom: 10px;
margin-left: 4em;
margin-right: 4em;
margin-top: 0px;
}
/* Hide the configuration setting marker. */
dl.section.user {
display: none;
}
/* Overrides for code fragments and lines. */
div.fragment {
background: #ffffff;
border: none;
padding: 5px;
}
div.line {
color: #3a3a3a;
}
/* Overrides for code syntax highlighting colors. */
span.comment {
color: #008000;
}
span.keyword, span.keywordtype, span.keywordflow {
color: #0000ff;
}
span.preprocessor {
color: #50015a;
}
span.stringliteral, span.charliteral {
color: #800c0c;
}
a.code, a.code:visited, a.line, a.line:visited {
color: #496194;
}
div.image img[src="fleet_provisioning_operations.png"] {
max-width: 1000px;
}