Updated Documentation to Doxygen 1.9.2 and new layout.

pull/32/head
Vladimir Marchenko 4 years ago
parent 532e97c225
commit 155759586a

@ -29,21 +29,21 @@ jobs:
sudo apt-get install --no-install-recommends -y libclang1-9 libclang-cpp1-9 p7zip libxml2-utils sudo apt-get install --no-install-recommends -y libclang1-9 libclang-cpp1-9 p7zip libxml2-utils
sudo pip install LinkChecker sudo pip install LinkChecker
- name: Install Doxygen 1.8.6 # - name: Install Doxygen 1.8.6
run: |
wget http://archive.ubuntu.com/ubuntu/pool/main/d/doxygen/doxygen_1.8.6-2_amd64.deb
sudo dpkg -i doxygen_1.8.6-2_amd64.deb
which doxygen
doxygen --version
# - name: Install doxygen 1.9.2
# run: | # run: |
# wget https://doxygen.nl/files/doxygen-1.9.2.linux.bin.tar.gz # wget http://archive.ubuntu.com/ubuntu/pool/main/d/doxygen/doxygen_1.8.6-2_amd64.deb
# sudo tar -C /opt -xf doxygen-1.9.2.linux.bin.tar.gz # sudo dpkg -i doxygen_1.8.6-2_amd64.deb
# sudo ln -s /opt/doxygen-1.9.2/bin/doxygen /usr/local/bin/
# which doxygen # which doxygen
# doxygen --version # doxygen --version
- name: Install doxygen 1.9.2
run: |
wget https://doxygen.nl/files/doxygen-1.9.2.linux.bin.tar.gz
sudo tar -C /opt -xf doxygen-1.9.2.linux.bin.tar.gz
sudo ln -s /opt/doxygen-1.9.2/bin/doxygen /usr/local/bin/
which doxygen
doxygen --version
- name: Install PackChk 1.3.95 - name: Install PackChk 1.3.95
run: | run: |
wget https://github.com/Open-CMSIS-Pack/devtools/releases/download/tools%2Fpackchk%2F1.3.95/packchk-1.3.95-linux64.zip wget https://github.com/Open-CMSIS-Pack/devtools/releases/download/tools%2Fpackchk%2F1.3.95/packchk-1.3.95-linux64.zip

File diff suppressed because it is too large Load Diff

@ -5,7 +5,7 @@
# #
# Pre-requisites: # Pre-requisites:
# - bash shell (for Windows: install git for Windows) # - bash shell (for Windows: install git for Windows)
# - doxygen 1.8.6 # - doxygen 1.9.2
set -o pipefail set -o pipefail
@ -22,8 +22,8 @@ if [[ ! -f "${DOXYGEN}" ]]; then
else else
version=$("${DOXYGEN}" --version) version=$("${DOXYGEN}" --version)
echo "DOXYGEN is ${DOXYGEN} at version ${version}" echo "DOXYGEN is ${DOXYGEN} at version ${version}"
if [[ "${version}" != "1.8.6" ]]; then if [[ "${version}" != "1.9.2" ]]; then
echo " >> Version is different from 1.8.6 !" >&2 echo " >> Version is different from 1.9.2 !" >&2
fi fi
fi fi

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

@ -1,12 +1,20 @@
<doxygenlayout version="1.0"> <doxygenlayout version="1.0">
<!-- Generated by doxygen 1.9.2 -->
<!-- Navigation index tabs for HTML output --> <!-- Navigation index tabs for HTML output -->
<navindex> <navindex>
<tab type="mainpage" visible="yes" title=""/> <tab type="mainpage" visible="yes" title=""/>
<tab type="pages" visible="yes" title="Usage and Description" intro=""/> <tab type="pages" visible="yes" title="Usage and Description" intro=""/>
<tab type="modules" visible="yes" title="Reference" intro=""/> <tab type="modules" visible="yes" title=" API Reference" intro=""/>
<tab type="namespaces" visible="no" title="Namespaces"> <tab type="namespaces" visible="no" title="Namespaces">
<tab type="namespacelist" visible="no" title="" intro=""/> <tab type="namespacelist" visible="no" title="Namespace list" intro=""/>
<tab type="namespacemembers" visible="no" title="" intro=""/> <tab type="namespacemembers" visible="no" title="Namespace members" intro=""/>
</tab>
<tab type="concepts" visible="yes" title="">
</tab>
<tab type="interfaces" visible="no" title="">
<tab type="interfacelist" visible="no" title="" intro=""/>
<tab type="interfaceindex" visible="no" title=""/>
<tab type="interfacehierarchy" visible="no" title="" intro=""/>
</tab> </tab>
<tab type="classes" visible="no" title="Data Structures"> <tab type="classes" visible="no" title="Data Structures">
<tab type="classlist" visible="yes" title="" intro=""/> <tab type="classlist" visible="yes" title="" intro=""/>
@ -14,6 +22,15 @@
<tab type="hierarchy" visible="yes" title="" intro=""/> <tab type="hierarchy" visible="yes" title="" intro=""/>
<tab type="classmembers" visible="yes" title="" intro=""/> <tab type="classmembers" visible="yes" title="" intro=""/>
</tab> </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="$ALPHABETICAL_INDEX" title=""/>
<tab type="exceptionhierarchy" visible="no" title="" intro=""/>
</tab>
<tab type="files" visible="no" title="Files"> <tab type="files" visible="no" title="Files">
<tab type="filelist" visible="no" title="" intro=""/> <tab type="filelist" visible="no" title="" intro=""/>
<tab type="globals" visible="no" title="" intro=""/> <tab type="globals" visible="no" title="" intro=""/>
@ -24,13 +41,14 @@
<!-- Layout definition for a class page --> <!-- Layout definition for a class page -->
<class> <class>
<briefdescription visible="yes"/> <briefdescription visible="yes"/>
<includes visible="$SHOW_INCLUDE_FILES"/> <includes visible="$SHOW_HEADERFILE"/>
<inheritancegraph visible="$CLASS_GRAPH"/> <inheritancegraph visible="$CLASS_GRAPH"/>
<collaborationgraph visible="$COLLABORATION_GRAPH"/> <collaborationgraph visible="$COLLABORATION_GRAPH"/>
<allmemberslink visible="yes"/>
<memberdecl> <memberdecl>
<nestedclasses visible="yes" title=""/> <nestedclasses visible="yes" title=""/>
<publictypes title=""/> <publictypes title=""/>
<services title=""/>
<interfaces title=""/>
<publicslots title=""/> <publicslots title=""/>
<signals title=""/> <signals title=""/>
<publicmethods title=""/> <publicmethods title=""/>
@ -65,6 +83,8 @@
<inlineclasses title=""/> <inlineclasses title=""/>
<typedefs title=""/> <typedefs title=""/>
<enums title=""/> <enums title=""/>
<services title=""/>
<interfaces title=""/>
<constructors title=""/> <constructors title=""/>
<functions title=""/> <functions title=""/>
<related title=""/> <related title=""/>
@ -72,6 +92,7 @@
<properties title=""/> <properties title=""/>
<events title=""/> <events title=""/>
</memberdef> </memberdef>
<allmemberslink visible="yes"/>
<usedfiles visible="$SHOW_USED_FILES"/> <usedfiles visible="$SHOW_USED_FILES"/>
<authorsection visible="yes"/> <authorsection visible="yes"/>
</class> </class>
@ -81,17 +102,26 @@
<briefdescription visible="yes"/> <briefdescription visible="yes"/>
<memberdecl> <memberdecl>
<nestednamespaces visible="yes" title=""/> <nestednamespaces visible="yes" title=""/>
<constantgroups visible="yes" title=""/>
<interfaces visible="yes" title=""/>
<classes visible="yes" title=""/> <classes visible="yes" title=""/>
<concepts visible="yes" title=""/>
<structs visible="yes" title=""/>
<exceptions visible="yes" title=""/>
<typedefs title=""/> <typedefs title=""/>
<sequences title=""/>
<dictionaries title=""/>
<enums title=""/> <enums title=""/>
<functions title=""/> <functions title=""/>
<variables title=""/> <variables title=""/>
<membergroups visible="yes"/> <membergroups visible="yes"/>
</memberdecl> </memberdecl>
<detaileddescription title="Description"/> <detaileddescription title=""/>
<memberdef> <memberdef>
<inlineclasses title=""/> <inlineclasses title=""/>
<typedefs title=""/> <typedefs title=""/>
<sequences title=""/>
<dictionaries title=""/>
<enums title=""/> <enums title=""/>
<functions title=""/> <functions title=""/>
<variables title=""/> <variables title=""/>
@ -99,6 +129,14 @@
<authorsection visible="yes"/> <authorsection visible="yes"/>
</namespace> </namespace>
<!-- Layout definition for a concept page -->
<concept>
<briefdescription visible="yes"/>
<includes visible="$SHOW_HEADERFILE"/>
<definition visible="yes" title=""/>
<detaileddescription title=""/>
<authorsection visible="yes"/>
</concept>
<!-- Layout definition for a file page --> <!-- Layout definition for a file page -->
<file> <file>
<briefdescription visible="yes"/> <briefdescription visible="yes"/>
@ -107,20 +145,29 @@
<includedbygraph visible="$INCLUDED_BY_GRAPH"/> <includedbygraph visible="$INCLUDED_BY_GRAPH"/>
<sourcelink visible="yes"/> <sourcelink visible="yes"/>
<memberdecl> <memberdecl>
<interfaces visible="yes" title=""/>
<classes visible="yes" title=""/> <classes visible="yes" title=""/>
<structs visible="yes" title=""/>
<exceptions visible="yes" title=""/>
<namespaces visible="yes" title=""/> <namespaces visible="yes" title=""/>
<concepts visible="yes" title=""/>
<constantgroups visible="yes" title=""/>
<defines title=""/> <defines title=""/>
<typedefs title=""/> <typedefs title=""/>
<sequences title=""/>
<dictionaries title=""/>
<enums title=""/> <enums title=""/>
<functions title=""/> <functions title=""/>
<variables title=""/> <variables title=""/>
<membergroups visible="yes"/> <membergroups visible="yes"/>
</memberdecl> </memberdecl>
<detaileddescription title="Description"/> <detaileddescription title=""/>
<memberdef> <memberdef>
<inlineclasses title=""/> <inlineclasses title=""/>
<defines title=""/> <defines title=""/>
<typedefs title=""/> <typedefs title=""/>
<sequences title=""/>
<dictionaries title=""/>
<enums title=""/> <enums title=""/>
<functions title=""/> <functions title=""/>
<variables title=""/> <variables title=""/>
@ -137,9 +184,12 @@
<dirs visible="yes" title=""/> <dirs visible="yes" title=""/>
<files visible="yes" title=""/> <files visible="yes" title=""/>
<namespaces visible="yes" title=""/> <namespaces visible="yes" title=""/>
<concepts visible="yes" title=""/>
<classes visible="yes" title=""/> <classes visible="yes" title=""/>
<defines title=""/> <defines title=""/>
<typedefs title=""/> <typedefs title=""/>
<sequences title=""/>
<dictionaries title=""/>
<enums title=""/> <enums title=""/>
<enumvalues title=""/> <enumvalues title=""/>
<functions title=""/> <functions title=""/>
@ -159,6 +209,8 @@
<inlineclasses title=""/> <inlineclasses title=""/>
<defines title=""/> <defines title=""/>
<typedefs title=""/> <typedefs title=""/>
<sequences title=""/>
<dictionaries title=""/>
<enums title=""/> <enums title=""/>
<enumvalues title=""/> <enumvalues title=""/>
<functions title=""/> <functions title=""/>

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

@ -1,18 +1,31 @@
/* The standard CSS for doxygen */ /* The standard CSS for doxygen */
:root {
--arm_light_blue: #00C1DE;
--arm_blue: #11809F;
--arm_blue1: #0091BD;
--arm_dark_blue: #002B49;
--arm_light_gray: #E5ECEB;
--arm_light_gray1: #EFF5F4;
--arm_light_gray2: #EBEBEB;
--arm_light_gray3: #F7F7F7;
--arm_dark_gray: #7D868C;
--arm_black: #333E48;
--arm_orange: #FF6B00;
}
body, table, div, p, dl { body, table, div, p, dl {
font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif; font-family: Lato, Calibri, sans-serif;
font-size: 13px; font-size: 16px;
line-height: 1.3; line-height: 22px;
} }
/* CMSIS styles */ /* styles */
.style1 { .style1 {
text-align: center; text-align: center;
} }
.style2 { .style2 {
color: #0000FF; color: var(--arm_blue);
font-weight: normal; font-weight: normal;
} }
.style3 { .style3 {
@ -35,7 +48,7 @@ body, table, div, p, dl {
color: #008000; color: #008000;
} }
.cond { .cond {
color: #990000; color: var(--arm_orange);
} }
.choice .choice
@ -55,13 +68,44 @@ body, table, div, p, dl {
background-color:#DCEDEA; background-color:#DCEDEA;
} }
.arrow {
color: var(--arm_blue);
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
cursor: pointer;
font-size: 100%;
width: 16px;
height: 22px;
display: inline-block;
}
ul ul { .main-menu {
margin: 0;
padding: 0;
display: table;
line-height: 24px;
}
ul {
list-style-type: disc; list-style-type: disc;
padding-left: 2em;
margin-block-start: 0em;
}
li {
margin-top: 0.25em;
line-height: 24px;
}
ul ul {
list-style-type: circle;
} }
ul ul ul { ul ul ul {
list-style-type: disc; list-style-type: square;
} }
ul.hierarchy { ul.hierarchy {
@ -69,23 +113,29 @@ ul.hierarchy {
} }
em { em {
color: #000000;
font-style:italic; font-style:italic;
} }
code {
font-family: monospace;
font-size: 85%;
line-height: 1.6;
background-color: var(--arm_light_gray2);
border-radius: 6px;
padding: 0.2em 0.4em;
}
/* Tables */
/* CMSIS Tables */
table.cmtab1 { table.cmtab1 {
padding: 4px; padding: 4px;
border-collapse: collapse; border-collapse: collapse;
border: 1px solid #A3B4D7; border: 1px solid var(--arm_dark_gray);
text-align: justify; text-align: justify;
width:70%; width:70%;
} }
th.cmtab1 { th.cmtab1 {
background: #EBEFF6; background: var(--arm_light_gray3);
font-weight: bold; font-weight: bold;
height: 28px; height: 28px;
} }
@ -97,20 +147,23 @@ td.cmtab1 {
table.cmtable { table.cmtable {
border-collapse:collapse; border-collapse:collapse;
text-align: justify; margin-top: 4px;
margin-bottom: 4px;
} }
table.cmtable td, table.cmtable th { table.cmtable td, table.cmtable th {
border: 1px solid #2D4068; border: 1px solid var(--arm_light_gray);
padding: 3px 7px 2px; padding: 7px 10px 5px;
text-align:left;
} }
table.cmtable th { table.cmtable th {
background-color: #EBEFF6; background-color: var(--arm_blue);
font-size: 110%; color: white;
padding-bottom: 4px; }
padding-top: 5px;
text-align:left; table.cmtable tr:nth-child(even) {
background-color: var(--arm_light_gray3);
} }
td.MonoTxt { td.MonoTxt {
@ -123,7 +176,6 @@ td.XML-Token
font-style:italic; font-style:italic;
color:Maroon; color:Maroon;
z-index:20; z-index:20;
} }
span.XML-Token span.XML-Token
@ -132,7 +184,6 @@ span.XML-Token
font-style:italic; font-style:italic;
color:Maroon; color:Maroon;
z-index:20; z-index:20;
} }
span.h2 span.h2
@ -160,8 +211,23 @@ div.del
h1 { h1 {
font-size: 150%; font-size: 150%;
border-top-color: var(--arm_light_gray3);
border-top-width: 2px;
border-top-style: solid;
padding: 1em 0 0;
margin-top: 0.5em;
margin-bottom: 0.75em;
} }
/*
h1:before {
margin-bottom: 1em;
content: "";
background-color: var(--arm_light_gray3);
height: 2px;
display: block;
width: 100%;
}
*/
.title { .title {
font-size: 150%; font-size: 150%;
font-weight: bold; font-weight: bold;
@ -170,10 +236,19 @@ h1 {
h2 { h2 {
font-size: 120%; font-size: 120%;
margin-top: 1.25em;
margin-bottom: 0.25em;
} }
h3 { h3 {
font-size: 100%; font-size: 100%;
margin-top: 1.25em;
margin-bottom: 0.25em;
}
h4 {
font-size: 100%;
color: #505050;
} }
h1, h2, h3, h4, h5, h6 { h1, h2, h3, h4, h5, h6 {
@ -200,6 +275,11 @@ div.multicol {
-webkit-column-count: 3; -webkit-column-count: 3;
} }
p {
margin-block-start: 1em;
margin-block-end: 0.5em;
}
p.startli, p.startdd, p.starttd { p.startli, p.startdd, p.starttd {
margin-top: 2px; margin-top: 2px;
} }
@ -250,13 +330,12 @@ div.navtab {
/* @group Link Styling */ /* @group Link Styling */
a { a {
color: #3A568E; color: var(--arm_blue);
font-weight: normal;
text-decoration: none; text-decoration: none;
} }
.contents a:visited { .contents a:visited {
color: #4464A5; color: var(--arm_blue);
} }
a:hover { a:hover {
@ -299,30 +378,30 @@ dl.el {
margin-left: -1cm; margin-left: -1cm;
} }
pre.fragment { pre.fragment {
border: 1px solid #C4CFE5; font-family: monospace;
background-color: #FBFCFD; background-color: var(--arm_light_gray2);
padding: 4px 6px; border-radius: 6px;
margin: 4px 8px 4px 2px; padding: 0.2em 0.4em;
overflow: auto; font-size: 85%;
word-wrap: break-word; line-height: 1.45;
font-size: 9pt; margin: 0.5em 0px;
line-height: 125%;
font-family: monospace, fixed;
font-size: 105%;
} }
div.fragment { div.fragment {
padding: 4px; font-family: monospace;
margin: 4px; background-color: var(--arm_light_gray2);
background-color: #FBFCFD; border-radius: 6px;
border: 1px solid #C3CFE6; padding: 0.2em 0.4em;
font-size: 85%;
line-height: 1.45;
} }
div.line { div.line {
font-family: monospace, fixed; font-family: monospace;
font-size: 13px; font-size: 100%;
line-height: 1.0; line-height: 1.45;
text-wrap: unrestricted; text-wrap: unrestricted;
white-space: -moz-pre-wrap; /* Moz */ white-space: -moz-pre-wrap; /* Moz */
white-space: -pre-wrap; /* Opera 4-6 */ white-space: -pre-wrap; /* Opera 4-6 */
@ -361,11 +440,6 @@ div.ah {
border-radius: 0.5em; border-radius: 0.5em;
-webkit-border-radius: .5em; -webkit-border-radius: .5em;
-moz-border-radius: .5em; -moz-border-radius: .5em;
box-shadow: 2px 2px 3px #999;
-webkit-box-shadow: 2px 2px 3px #999;
-moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444));
background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000);
} }
div.groupHeader { div.groupHeader {
@ -566,7 +640,7 @@ table.memberdecls {
.memberdecls td.glow { .memberdecls td.glow {
background-color: cyan; background-color: cyan;
box-shadow: 0 0 15px cyan; /*box-shadow: 0 0 15px cyan; */
} }
.mdescLeft, .mdescRight, .mdescLeft, .mdescRight,
@ -584,7 +658,7 @@ table.memberdecls {
} }
.memItemLeft, .memItemRight, .memTemplParams { .memItemLeft, .memItemRight, .memTemplParams {
border-top: 1px solid #C3CFE6; border-top: 1px solid var(--arm_light_gray);/*#C3CFE6;*/
} }
.memItemLeft, .memTemplItemLeft { .memItemLeft, .memTemplItemLeft {
@ -606,6 +680,31 @@ table.memberdecls {
/* Styles for detailed member documentation */ /* Styles for detailed member documentation */
.memtitle {
display: inline-block;
padding: 8px;
padding-bottom: 12px;
padding-right: 12px;
border-top: 1px solid var(--arm_dark_gray);
border-left: 1px solid var(--arm_dark_gray);
border-right: 1px solid var(--arm_dark_gray);
border-top-right-radius: 4px;
border-top-left-radius: 4px;
margin-bottom: -1px;
background-color: var(--arm_light_gray2);
line-height: 1.25;
font-weight: 600;
float:top;
}
.permalink
{
font-size: 100%;
display: inline-block;
vertical-align: middle;
padding-bottom:6px;
}
.memtemplate { .memtemplate {
font-size: 80%; font-size: 80%;
color: #4464A5; color: #4464A5;
@ -638,7 +737,7 @@ table.memberdecls {
} }
.memitem.glow { .memitem.glow {
box-shadow: 0 0 15px cyan; /*box-shadow: 0 0 15px cyan; */
} }
.memname { .memname {
@ -651,53 +750,36 @@ table.memberdecls {
} }
.memproto, dl.reflist dt { .memproto, dl.reflist dt {
border-top: 1px solid #A7B8DA; border-top: 1px solid var(--arm_dark_gray);
border-left: 1px solid #A7B8DA; border-left: 1px solid var(--arm_dark_gray);
border-right: 1px solid #A7B8DA; border-right: 1px solid var(--arm_dark_gray);
padding: 6px 0px 6px 0px; padding: 6px 0px 6px 0px;
color: #233456; color: var(--arm_black);
font-weight: bold; font-weight: bold;
text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); background-color: var(--arm_light_gray2);
background-image:url('nav_f.png');
background-repeat:repeat-x;
background-color: #E2E7F3;
/* opera specific markup */
box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
border-top-right-radius: 4px; border-top-right-radius: 4px;
border-top-left-radius: 4px; border-top-left-radius: 0px;
/* firefox specific markup */ /* firefox specific markup */
-moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
-moz-border-radius-topright: 4px; -moz-border-radius-topright: 4px;
-moz-border-radius-topleft: 4px; -moz-border-radius-topleft: 0px;
/* webkit specific markup */ /* webkit specific markup */
-webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
-webkit-border-top-right-radius: 4px; -webkit-border-top-right-radius: 4px;
-webkit-border-top-left-radius: 4px; -webkit-border-top-left-radius: 0px;
} }
.memdoc, dl.reflist dd { .memdoc, dl.reflist dd {
border-bottom: 1px solid #A7B8DA; border: 1px solid var(--arm_dark_gray);
border-left: 1px solid #A7B8DA;
border-right: 1px solid #A7B8DA;
padding: 6px 10px 2px 10px; padding: 6px 10px 2px 10px;
background-color: #FBFCFD;
border-top-width: 0;
background-image:url('nav_g.png');
background-repeat:repeat-x;
background-color: #FFFFFF; background-color: #FFFFFF;
/* opera specific markup */ /* opera specific markup */
border-bottom-left-radius: 4px; border-bottom-left-radius: 4px;
border-bottom-right-radius: 4px; border-bottom-right-radius: 4px;
box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
/* firefox specific markup */ /* firefox specific markup */
-moz-border-radius-bottomleft: 4px; -moz-border-radius-bottomleft: 4px;
-moz-border-radius-bottomright: 4px; -moz-border-radius-bottomright: 4px;
-moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
/* webkit specific markup */ /* webkit specific markup */
-webkit-border-bottom-left-radius: 4px; -webkit-border-bottom-left-radius: 4px;
-webkit-border-bottom-right-radius: 4px; -webkit-border-bottom-right-radius: 4px;
-webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
} }
dl.reflist dt { dl.reflist dt {
@ -787,8 +869,8 @@ span.mlabel {
div.directory { div.directory {
margin: 10px 0px; margin: 10px 0px;
border-top: 1px solid #A8B8D9; border-top: 1px solid var(--arm_dark_gray);
border-bottom: 1px solid #A8B8D9; border-bottom: 1px solid var(--arm_dark_gray);
width: 100%; width: 100%;
} }
@ -798,7 +880,7 @@ div.directory {
.directory td { .directory td {
margin: 0px; margin: 0px;
padding: 0px; padding: 0px 0px 15px 0px;
vertical-align: top; vertical-align: top;
} }
@ -809,6 +891,7 @@ div.directory {
.directory td.entry a { .directory td.entry a {
outline:none; outline:none;
padding-left: 6px;
} }
.directory td.desc { .directory td.desc {
@ -863,57 +946,58 @@ table.doxtable {
} }
table.doxtable td, table.doxtable th { table.doxtable td, table.doxtable th {
border: 1px solid #2B4069; border: 1px solid var(--arm_light_gray);
padding: 3px 7px 2px; padding: 7px 10px 5px;
text-align:left;
} }
table.doxtable th { table.doxtable th {
background-color: #EBEFF6; background-color: var(--arm_blue);
color: #000000; color: white;
font-size: 110%; }
padding-bottom: 4px;
padding-top: 5px; table.doxtable tr:nth-child(even) {
background-color: #F9FAFC; /*var(--arm_light_gray3); */
} }
table.fieldtable { table.fieldtable {
width: 100%; width: 100%;
margin-bottom: 10px; margin-bottom: 10px;
border: 1px solid #A7B8DA; border: 1px solid var(--arm_dark_gray);
border-spacing: 0px; border-spacing: 0px;
-moz-border-radius: 4px; -moz-border-radius: 4px;
-webkit-border-radius: 4px; -webkit-border-radius: 4px;
border-radius: 4px; border-radius: 4px;
-moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
-webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
} }
.fieldtable td, .fieldtable th { .fieldtable td, .fieldtable th {
padding: 3px 7px 2px; padding: 3px 7px 2px;
} }
.fieldtable td.fieldtype, .fieldtable td.fieldname { .fieldtable td.fieldtype, .fieldtable td.fieldname, td.fieldoc{
white-space: nowrap; white-space: nowrap;
border-right: 1px solid #A7B8DA; border-right: 1px solid var(--arm_dark_gray);
border-bottom: 1px solid #A7B8DA; border-bottom: 1px solid var(--arm_dark_gray);
vertical-align: top; vertical-align: top;
} }
.fieldtable td.fielddoc { .fieldtable td.fielddoc {
border-bottom: 1px solid #A7B8DA; border-bottom: 1px solid var(--arm_dark_gray);
width: 100%; width: 100%;
} }
.fieldtable td.fielddoc p {
margin-top: 0px;
}
.fieldtable tr:last-child td { .fieldtable tr:last-child td {
border-bottom: none; border-bottom: none;
} }
.fieldtable th { .fieldtable th {
background-image:url('nav_f.png'); background-color: var(--arm_light_gray1);
background-repeat:repeat-x; font-size: 100%;
background-color: #E2E7F3; color: var(--arm_black);
font-size: 90%;
color: #233456;
padding-bottom: 4px; padding-bottom: 4px;
padding-top: 5px; padding-top: 5px;
text-align:left; text-align:left;
@ -923,10 +1007,50 @@ table.fieldtable {
-webkit-border-top-right-radius: 4px; -webkit-border-top-right-radius: 4px;
border-top-left-radius: 4px; border-top-left-radius: 4px;
border-top-right-radius: 4px; border-top-right-radius: 4px;
border-bottom: 1px solid #A7B8DA; border-bottom: 1px solid var(--arm_dark_gray);
} }
/* @group Markdown */
table.markdownTable {
border-collapse:collapse;
margin-top: 4px;
margin-bottom: 4px;
}
table.markdownTable td, table.markdownTable th {
border: 1px solid var(--arm_light_gray);
padding: 7px 10px 5px;
text-align:left;
}
table.markdownTable th {
background-color: var(--arm_blue);
color: white;
}
table.markdownTable tr:nth-child(even) {
background-color: var(--arm_light_gray3);
}
/* for hyperlinks in table head rows */
table.markdownTable th a{
color: white;
text-decoration: underline;
}
table.markdownTable th a:visited{
color: white;
}
table.markdownTable th a:hover{
color: var(--arm_yellow);
}
/* @end */
.tabsearch { .tabsearch {
top: 0px; top: 0px;
left: 10px; left: 10px;
@ -940,11 +1064,10 @@ table.fieldtable {
.navpath ul .navpath ul
{ {
font-size: 11px; font-size: 11px;
background-image:url('tab_b.png'); background-color:var(--arm_black);
background-repeat:repeat-x;
height:30px; height:30px;
line-height:30px; line-height:30px;
color:#889FCE; color:white;
border:solid 1px #C1CDE5; border:solid 1px #C1CDE5;
overflow:hidden; overflow:hidden;
margin:0px; margin:0px;
@ -957,9 +1080,6 @@ table.fieldtable {
float:left; float:left;
padding-left:10px; padding-left:10px;
padding-right:15px; padding-right:15px;
background-image:url('bc_s.png');
background-repeat:no-repeat;
background-position:right;
color:#344D7E; color:#344D7E;
} }
@ -982,14 +1102,10 @@ table.fieldtable {
float:right; float:right;
padding-left:10px; padding-left:10px;
padding-right:15px; padding-right:15px;
background-image:none; color:var(--arm_white);
background-repeat:no-repeat;
background-position:right;
color:#344D7E;
font-size: 8pt; font-size: 8pt;
} }
div.summary div.summary
{ {
float: right; float: right;
@ -1020,11 +1136,8 @@ div.ingroups a
div.header div.header
{ {
background-image:url('nav_h.png'); background-color: white;
background-repeat:repeat-x;
background-color: #F9FAFC;
margin: 0px; margin: 0px;
border-bottom: 1px solid #C3CFE6;
} }
div.headertitle div.headertitle
@ -1100,6 +1213,15 @@ dl.bug
border-color: #C08050; border-color: #C08050;
} }
dl.safety
{
margin-left:-7px;
padding-left: 3px;
border-left:4px solid;
border-color: #008000;
}
dl.section dd { dl.section dd {
margin-bottom: 6px; margin-bottom: 6px;
} }
@ -1108,7 +1230,7 @@ dl.section dd {
#projectlogo #projectlogo
{ {
text-align: center; text-align: center;
vertical-align: bottom; vertical-align: middle;
border-collapse: separate; border-collapse: separate;
} }
@ -1119,22 +1241,26 @@ dl.section dd {
#projectname #projectname
{ {
font: 300% Tahoma, Arial,sans-serif; font: 270% 'Lato Lite', Lato, Caibri, sans-serif;
font-weight: 600;
margin: 0px; margin: 0px;
color: white;
padding: 2px 0px; padding: 2px 0px;
} }
#projectbrief #projectbrief
{ {
font: 120% Tahoma, Arial,sans-serif; font: 140% "Lato Lite", Lato, Caibri, sans-serif;
margin: 0px; margin: 0px;
padding: 0px; color: white;
padding: 4px 0px 4px;
} }
#projectnumber #projectnumber
{ {
font: 50% Tahoma, Arial,sans-serif; font: 50% "Lato Lite", Lato, Caibri, sans-serif;
margin: 0px; margin: 0px;
color: white;
padding: 0px; padding: 0px;
} }
@ -1143,12 +1269,17 @@ dl.section dd {
padding: 0px; padding: 0px;
margin: 0px; margin: 0px;
width: 100%; width: 100%;
border-bottom: 1px solid #5072B7; border-bottom: 1px solid var(--arm_dark_gray);
background-color: var(--arm_black);
} }
.image .image
{ {
text-align: left; text-align: left;
display: grid;
justify-content: start;
align-items: baseline;
justify-items: center;
} }
.dotgraph .dotgraph
@ -1164,6 +1295,7 @@ dl.section dd {
.caption .caption
{ {
font-weight: bold; font-weight: bold;
font-size: 80%;
} }
div.zoom div.zoom

@ -1,61 +1,78 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <!-- HTML header for doxygen 1.9.2-->
<!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"> <html xmlns="http://www.w3.org/1999/xhtml">
<head> <head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta http-equiv="X-UA-Compatible" content="IE=11"/>
<title>$title</title> <meta name="viewport" content="width=device-width, initial-scale=1"/>
<!--BEGIN PROJECT_NAME--><title>$projectname: $title</title><!--END PROJECT_NAME--> <!--BEGIN PROJECT_NAME--><title>$projectname: $title</title><!--END PROJECT_NAME-->
<!--BEGIN !PROJECT_NAME--><title>$title</title><!--END !PROJECT_NAME--> <!--BEGIN !PROJECT_NAME--><title>$title</title><!--END !PROJECT_NAME-->
<link href="$relpath$tabs.css" rel="stylesheet" type="text/css"/> <link href="$relpath^tabs.css" rel="stylesheet" type="text/css"/>
<link href="$relpath$cmsis.css" rel="stylesheet" type="text/css" /> <!--BEGIN DISABLE_INDEX-->
<script type="text/javascript" src="$relpath$jquery.js"></script> <!--BEGIN FULL_SIDEBAR-->
<script type="text/javascript" src="$relpath$dynsections.js"></script> <script type="text/javascript">var page_layout=1;</script>
<script type="text/javascript" src="$relpath$footer.js"></script> <!--END FULL_SIDEBAR-->
<!--END DISABLE_INDEX-->
<script type="text/javascript" src="$relpath^jquery.js"></script>
<script type="text/javascript" src="$relpath^dynsections.js"></script>
<script type="text/javascript" src="$relpath^printComponentTabs.js"></script>
<script type="text/javascript" src="$relpath^footer.js"></script>
$treeview $treeview
$search $search
$mathjax $mathjax
<link href="../version.css" rel="stylesheet" type="text/css" /> <link href="$relpath^$extra_stylesheet" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="../version.js"></script> $extrastylesheet
</head> </head>
<body> <body>
<!--BEGIN DISABLE_INDEX-->
<!--BEGIN FULL_SIDEBAR-->
<div id="side-nav" class="ui-resizable side-nav-resizable"><!-- do not remove this div, it is closed by doxygen! -->
<!--END FULL_SIDEBAR-->
<!--END DISABLE_INDEX-->
<div id="top"><!-- do not remove this div, it is closed by doxygen! --> <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<!--BEGIN TITLEAREA--> <!--BEGIN TITLEAREA-->
<div id="titlearea"> <div id="titlearea">
<table cellspacing="0" cellpadding="0"> <table cellspacing="0" cellpadding="0">
<tbody> <tbody>
<tr style="height: 46px;"> <tr style="height: 55px;">
<!--BEGIN PROJECT_LOGO--> <!--BEGIN PROJECT_LOGO-->
<td id="projectlogo"><img alt="Logo" src="$relpath$$projectlogo"/></td> <td id="projectlogo" style="padding: 1.5em;"><img alt="Logo" src="$relpath^$projectlogo"/></td>
<!--END PROJECT_LOGO--> <!--END PROJECT_LOGO-->
<td style="padding-left: 1em; padding-bottom: 1em;padding-top: 1em;">
<!--BEGIN PROJECT_NAME--> <!--BEGIN PROJECT_NAME-->
<td style="padding-left: 0.5em;">
<div id="projectname">$projectname <div id="projectname">$projectname
<!--BEGIN PROJECT_NUMBER-->&#160;<span id="projectnumber" class=""><script type="text/javascript"> <!--END PROJECT_NAME-->
<!-- <!--BEGIN PROJECT_NUMBER-->&#160;<span id="projectnumber">$projectnumber</span><!--END PROJECT_NUMBER-->
writeHeader.call(this);
writeVersionDropdown(this);
//-->
</script>
</span><!--END PROJECT_NUMBER-->
</div> </div>
<!--BEGIN PROJECT_BRIEF--><div id="projectbrief">$projectbrief</div><!--END PROJECT_BRIEF--> <!--BEGIN PROJECT_BRIEF--><div id="projectbrief">$projectbrief</div><!--END PROJECT_BRIEF-->
</td> </td>
<!--END PROJECT_NAME-->
<!--BEGIN !PROJECT_NAME-->
<!--BEGIN PROJECT_BRIEF-->
<td style="padding-left: 0.5em;">
<div id="projectbrief">$projectbrief</div>
</td>
<!--END PROJECT_BRIEF-->
<!--END !PROJECT_NAME--> <!--END !PROJECT_NAME-->
<!--BEGIN DISABLE_INDEX--> <!--BEGIN DISABLE_INDEX-->
<!--BEGIN SEARCHENGINE--> <!--BEGIN SEARCHENGINE-->
<!--BEGIN !FULL_SIDEBAR-->
<td>$searchbox</td> <td>$searchbox</td>
<!--END !FULL_SIDEBAR-->
<!--END SEARCHENGINE--> <!--END SEARCHENGINE-->
<!--END DISABLE_INDEX--> <!--END DISABLE_INDEX-->
</tr> </tr>
<!--BEGIN SEARCHENGINE-->
<!--BEGIN FULL_SIDEBAR-->
<tr><td colspan="2">$searchbox</td></tr>
<!--END FULL_SIDEBAR-->
<!--END SEARCHENGINE-->
</tbody> </tbody>
</table> </table>
</div> </div>
<!--END TITLEAREA--> <!--END TITLEAREA-->
<!-- end header part --> <!-- end header part -->
<div id="Compnav" class="tabs1">
<ul class="tablist">
<script type="text/javascript">
<!--
writeComponentTabs.call(this);
//-->
</script>
</ul>
</div>

@ -1,6 +1,15 @@
#nav-tree .children_ul { :root {
margin:0; --arm_light_blue: #00C1DE;
padding:4px; --arm_blue: #11809F;
--arm_blue1: #0091BD;
--arm_dark_blue: #002B49;
--arm_light_gray: #E5ECEB;
--arm_light_gray1: #EFF5F4;
--arm_light_gray2: #EBEBEB;
--arm_light_gray3: #F7F7F7;
--arm_dark_gray: #7D868C;
--arm_black: #333E48;
--arm_orange: #FF6B00;
} }
#nav-tree ul { #nav-tree ul {
@ -20,10 +29,9 @@
} }
#nav-tree .selected { #nav-tree .selected {
background-image: url('tab_a.png'); border: 1.5px solid var(--arm_blue);
background-repeat:repeat-x; border-left-width: 5px;
color: #fff; margin-left:-10px; /*correction to place selection border on the edge screen edge */
text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
} }
#nav-tree img { #nav-tree img {
@ -36,6 +44,7 @@
#nav-tree a { #nav-tree a {
text-decoration:none; text-decoration:none;
padding:0px; padding:0px;
padding-left:0px;
margin:0px; margin:0px;
outline:none; outline:none;
} }
@ -43,33 +52,37 @@
#nav-tree .label { #nav-tree .label {
margin:0px; margin:0px;
padding:0px; padding:0px;
font: 15px Lato, Calibri, sans-serif;
}
#nav-tree .label:hover {
color: var(--arm_orange);
} }
#nav-tree .label a { #nav-tree .label a {
padding:2px; padding-left:6px;
line-height: 30px;
color: var(--arm_black);
} }
#nav-tree .selected a { #nav-tree .selected a {
text-decoration:none; font-weight: bold;
padding:2px;
margin:0px;
color:#fff;
} }
#nav-tree .children_ul { /*correction for the larger box border on the left (10px-5px) */
margin:0px; #nav-tree .selected .arrow {
padding:0px; margin-left:5px;
} }
#nav-tree .item { #nav-tree .children_ul {
margin:0px; margin:0px;
padding:0px; padding:0px;
} }
#nav-tree { #nav-tree {
padding: 0px 0px; padding: 0px 0px;
padding-left: 10px; /*correction to add space before the first arrow in nav-tree */
background-color: #FAFAFF; background-color: #FAFAFF;
font-size:14px;
overflow:auto; overflow:auto;
} }
@ -78,15 +91,16 @@
display:block; display:block;
padding:0px; padding:0px;
margin:0px; margin:0px;
-webkit-overflow-scrolling : touch; /* iOS 5+ */
} }
#side-nav { #side-nav {
padding:0 6px 0 0; padding:0 2px 0 0;
margin: 0px; margin: 0px;
display:block; display:block;
position: absolute; position: absolute;
left: 0px; left: 0px;
width: 300px; width: 340px;
} }
.ui-resizable .ui-resizable-handle { .ui-resizable .ui-resizable-handle {
@ -94,12 +108,14 @@
} }
.ui-resizable-e { .ui-resizable-e {
background:url("ftv2splitbar.png") repeat scroll right center transparent; background-color: var(--arm_light_gray);
cursor:e-resize; background-repeat:repeat-y;
background-attachment: scroll;
cursor:ew-resize;
height:100%; height:100%;
right:0; right:0;
top:0; top:0;
width:6px; width:2px;
} }
.ui-resizable-handle { .ui-resizable-handle {
@ -114,10 +130,32 @@
} }
#nav-tree { #nav-tree {
background-image:url('nav_h.png'); background-color: white;
background-repeat:repeat-x; -webkit-overflow-scrolling : touch; /* iOS 5+ */
background-color: #F9FAFC;
} }
#nav-sync {
position:absolute;
top:5px;
right:24px;
z-index:0;
}
#nav-sync img {
opacity:0.0;
}
#nav-sync img:hover {
opacity:0.0;
}
#nav-tree a:hover {
color: var(--arm_orange);
}
@media print
{
#nav-tree { display: none; }
div.ui-resizable-handle { display: none; position: relative; }
}

@ -0,0 +1,551 @@
/*
@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 = '&#9660;';
var arrowRight = '&#9658;';
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 = '&#160;';
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');
}
var topOffset=5;
if (typeof page_layout!=='undefined' && page_layout==1) {
topOffset+=$('#top').outerHeight();
}
if ($('#nav-tree-contents .item:first').hasClass('selected')) {
topOffset+=25;
}
$('#nav-sync').css('top',topOffset+'px');
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 {
/* vlamar01: Commented two lines below to ensure nav. tree expands on all selections */
//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 */

@ -13,26 +13,14 @@ function tabElement(id, folderName, tabTxt ) {
var arr = []; var arr = [];
// fill array // fill array
arr.push( new tabElement( "GEN", "/General/html/", "General") ); // arr.push( new tabElement( "GEN", "/General/html/", "General"));
arr.push( new tabElement( "CORE_A", "/Core_A/html/", "Core(A)") );
arr.push( new tabElement( "CORE_M", "/Core/html/", "Core(M)") );
arr.push( new tabElement( "DRV", "/Driver/html/", "Driver") );
arr.push( new tabElement( "DSP&ML", "/DSP/html/", "DSP") );
arr.push( new tabElement( "NN", "/NN/html/", "NN") );
arr.push( new tabElement( "RTOSv1", "/RTOS/html/", "RTOS v1") );
arr.push( new tabElement( "RTOSv2", "/RTOS2/html/", "RTOS v2") );
arr.push( new tabElement( "PACK", "/Pack/html/", "Pack") );
arr.push( new tabElement( "Build", "/Build/html/", "Build") );
arr.push( new tabElement( "SVD", "/SVD/html/", "SVD") );
arr.push( new tabElement( "DAP", "/DAP/html/", "DAP") );
arr.push( new tabElement( "ZONE", "/Zone/html/", "Zone") );
// write tabs // write tabs
// called from the header file. // called from the header file.
function writeComponentTabs() { function writeComponentTabs() {
for ( var i=0; i < arr.length; i++ ) { for ( var i=0; i < arr.length; i++ ) {
if (strgURL.search(arr[i].folderName) > 0) { // if this is the current folder if (strgURL.search(arr[i].folderName) > 0) { // if this is the current folder
document.write(arr[i].currentListItem); // then print and hightlight the tab document.write(arr[i].currentListItem); // then print and highlight the tab
} else { } else {
document.write(arr[i].listItem); // else, print the tab document.write(arr[i].listItem); // else, print the tab
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 232 B

@ -1,71 +1,103 @@
.tabs, .tabs1, .tabs2, .tabs3 { :root {
background-image: url('tab_b.png'); --arm_light_blue: #00C1DE;
--arm_blue: #11809F;
--arm_blue1: #0091BD;
--arm_dark_blue: #002B49;
--arm_light_gray: #E5ECEB;
--arm_light_gray1: #EFF5F4;
--arm_light_gray2: #EBEBEB;
--arm_light_gray3: #F7F7F7;
--arm_dark_gray: #7D868C;
--arm_black: #333E48;
--arm_orange: #FF6B00;
--arm_yellow: #FFC700;
}
/* in Doxygen 1.9.2 'tabs' is assigned to second navigation row (navrow1) with
'Main Page', 'Namespaces', etc */
.tabs, .tabs1, .tabs2, .tabs3, .main-nav {
background-color: var(--arm_light_gray);
color: var(--arm_black);
width: 100%; width: 100%;
z-index: 101; z-index: 101;
font-size: 10px; font-family: 'Futura PT W01 Medium', 'Lato Light', Lato, Calibri, sans-serif;
font-size: 14px;
font-weight: 800;
} }
.tabs1 { .tabs1 {
background-image: url('tab_topnav.png'); background-color: var(--arm_black);
font-size: 12px; font-size: 16px;
} }
.tabs2 { .tabs {
font-size: 10px; background-color: var(--arm_light_gray);
}
.tabs3 {
font-size: 9px;
} }
.tablist { .tablist, .main-menu {
margin: 0; margin: 0;
padding: 0; padding: 0;
display: table; display: table;
line-height: 24px; line-height: 28px;
} }
.tablist li { .tablist li {
float: left; float: left;
display: table-cell; display: table-cell;
background-image: url('tab_b.png'); background-color: var(--arm_light_gray);
border-right-style:solid;
border-right-width:1px;
border-right-color:var(--arm_dark_gray);
list-style: none; list-style: none;
margin:0px;
}
.tablist .MSearchBoxInactive {
opacity:0.75;
} }
.tablist .MSearchBoxInactive:hover {
opacity:1.0;
}
.tabs1 .tablist li { .tabs1 .tablist li {
float: left; background-color: var(--arm_black);
display: table-cell; font-weight: 1000;
background-image: url('tab_topnav.png');
list-style: none;
} }
.tablist a { .tablist a {
display: block; display: block;
padding: 0 20px; padding: 0 10px;
font-weight: bold; color: var(--arm_dark_gray);
background-image:url('tab_s.png'); font-weight: 600;
background-repeat:no-repeat;
background-position:right;
color: #283A5D;
text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
text-decoration: none;
outline: none; outline: none;
} }
.tabs3 .tablist a { .tabs1 .tablist a {
padding: 0 10px; padding: 3px 20px;
color: white;
background-color:var(--arm_black);
}
.tablist li.current a {
background-color: var(--arm_dark_gray);
color: white;
}
.tabs1 .tablist li.current a {
background-color: var(--arm_blue);
} }
.tablist a:hover { .tablist a:hover {
background-image: url('tab_h.png'); color: var(--arm_orange);
background-repeat:repeat-x;
color: #fff;
text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
text-decoration: none;
} }
.tablist li.current a { .tabs1 a:hover {
background-image: url('tab_a.png'); color: var(--arm_yellow);
background-repeat:repeat-x; }
color: #fff;
text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); .tablist li.current :hover {
color: white;
} }

@ -33,20 +33,20 @@
* based devices. * based devices.
* *
* The library is divided into a number of functions each covering a specific category: * The library is divided into a number of functions each covering a specific category:
* - Basic math functions * - \ref groupMath "Basic math functions"
* - Fast math functions * - \ref groupFastMath "Fast math functions"
* - Complex math functions * - \ref groupCmplxMath "Complex math functions"
* - Filtering functions * - \ref groupFilters "Filtering functions"
* - Matrix functions * - \ref groupMatrix "Matrix functions"
* - Transform functions * - \ref groupTransforms "Transform functions"
* - Motor control functions * - \ref groupController "Motor control functions"
* - Statistical functions * - \ref groupStats "Statistical functions"
* - Support functions * - \ref groupSupport "Support functions"
* - Interpolation functions * - \ref groupInterpolation "Interpolation functions"
* - Support Vector Machine functions (SVM) * - \ref groupSVM "Support Vector Machine functions (SVM)"
* - Bayes classifier functions * - \ref groupBayes "Bayes classifier functions"
* - Distance functions * - \ref groupDistance "Distance functions"
* - Quaternion functions * - \ref groupQuaternionMath "Quaternion functions"
* *
* The library has generally separate functions for operating on 8-bit integers, 16-bit integers, * The library has generally separate functions for operating on 8-bit integers, 16-bit integers,
* 32-bit integer and 32-bit floating-point values. * 32-bit integer and 32-bit floating-point values.
@ -64,13 +64,13 @@
* The library is released in source form. It is strongly advised to compile the library using -Ofast to * The library is released in source form. It is strongly advised to compile the library using -Ofast to
* have the best performances. * have the best performances.
* *
* The library functions are declared in the public file <code>arm_math.h</code> which is placed in the <code>Include</code> folder. * The library functions are declared in the public file `arm_math.h` which is placed in the `Include` folder.
* Simply include this file. If you don't want to include everything, you can also rely * Simply include this file. If you don't want to include everything, you can also rely
* on headers in Include/dsp folder and use only what you need. * on headers in `Include/dsp` folder and use only what you need.
* *
* \section example Examples * \section example Examples
* *
* The library ships with a number of examples which demonstrate how to use the library functions. * The library ships with a number of examples which demonstrate how to use the library functions. Please refer to \ref groupExamples.
* *
* \section toolchain Toolchain Support * \section toolchain Toolchain Support
* *
@ -80,72 +80,58 @@
* *
* \section preprocessor Preprocessor Macros * \section preprocessor Preprocessor Macros
* *
* Each library project have different preprocessor macros. * Each library project has different preprocessor macros.
* *
* - ARM_MATH_BIG_ENDIAN: * - `ARM_MATH_BIG_ENDIAN`:
* * - Define macro ARM_MATH_BIG_ENDIAN to build the library for big endian targets. By default library builds for little endian targets.
* Define macro ARM_MATH_BIG_ENDIAN to build the library for big endian targets. By default library builds for little endian targets. * .
* * - `ARM_MATH_MATRIX_CHECK`:
* - ARM_MATH_MATRIX_CHECK: * - Define macro ARM_MATH_MATRIX_CHECK for checking on the input and output sizes of matrices
* * .
* Define macro ARM_MATH_MATRIX_CHECK for checking on the input and output sizes of matrices * - `ARM_MATH_ROUNDING`:
* * - Define macro ARM_MATH_ROUNDING for rounding on support functions
* - ARM_MATH_ROUNDING: * .
* * - `ARM_MATH_LOOPUNROLL`:
* Define macro ARM_MATH_ROUNDING for rounding on support functions * - Define macro ARM_MATH_LOOPUNROLL to enable manual loop unrolling in DSP functions
* * .
* - ARM_MATH_LOOPUNROLL: * - `ARM_MATH_NEON`:
* * - Define macro ARM_MATH_NEON to enable Neon versions of the DSP functions.
* Define macro ARM_MATH_LOOPUNROLL to enable manual loop unrolling in DSP functions
*
* - ARM_MATH_NEON:
*
* Define macro ARM_MATH_NEON to enable Neon versions of the DSP functions.
* It is not enabled by default when Neon is available because performances are * It is not enabled by default when Neon is available because performances are
* dependent on the compiler and target architecture. * dependent on the compiler and target architecture.
* * .
* - ARM_MATH_NEON_EXPERIMENTAL: * - `ARM_MATH_NEON_EXPERIMENTAL`:
* * - Define macro ARM_MATH_NEON_EXPERIMENTAL to enable experimental Neon versions of
* Define macro ARM_MATH_NEON_EXPERIMENTAL to enable experimental Neon versions of
* of some DSP functions. Experimental Neon versions currently do not have better * of some DSP functions. Experimental Neon versions currently do not have better
* performances than the scalar versions. * performances than the scalar versions.
* * .
* - ARM_MATH_HELIUM: * - `ARM_MATH_HELIUM`:
* * - It implies the flags ARM_MATH_MVEF and ARM_MATH_MVEI and ARM_MATH_MVE_FLOAT16.
* It implies the flags ARM_MATH_MVEF and ARM_MATH_MVEI and ARM_MATH_MVE_FLOAT16. * .
* * - `ARM_MATH_HELIUM_EXPERIMENTAL`:
* - ARM_MATH_HELIUM_EXPERIMENTAL: * - Only taken into account when ARM_MATH_MVEF, ARM_MATH_MVEI or ARM_MATH_MVE_FLOAT16 are defined.
*
* Only taken into account when ARM_MATH_MVEF, ARM_MATH_MVEI or ARM_MATH_MVE_FLOAT16 are defined.
* Enable some vector versions which may have worse performance than scalar * Enable some vector versions which may have worse performance than scalar
* depending on the core / compiler configuration. * depending on the core / compiler configuration.
* * .
* - ARM_MATH_MVEF: * - `ARM_MATH_MVEF`:
* * - Select Helium versions of the f32 algorithms.
* Select Helium versions of the f32 algorithms.
* It implies ARM_MATH_FLOAT16 and ARM_MATH_MVEI. * It implies ARM_MATH_FLOAT16 and ARM_MATH_MVEI.
* * .
* - ARM_MATH_MVEI: * - `ARM_MATH_MVEI`:
* * - Select Helium versions of the int and fixed point algorithms.
* Select Helium versions of the int and fixed point algorithms. * .
* * - `ARM_MATH_MVE_FLOAT16`:
* - ARM_MATH_MVE_FLOAT16: * - MVE Float16 implementations of some algorithms (Requires MVE extension).
* * .
* MVE Float16 implementations of some algorithms (Requires MVE extension). * - `DISABLEFLOAT16`:
* * - Disable float16 algorithms when __fp16 is not supported for a
* - DISABLEFLOAT16:
*
* Disable float16 algorithms when __fp16 is not supported for a
* specific compiler / core configuration. * specific compiler / core configuration.
* This is only valid for scalar. When vector architecture is * This is only valid for scalar. When vector architecture is
* supporting f16 then it can't be disabled. * supporting f16 then it can't be disabled.
* * .
* - ARM_MATH_AUTOVECTORIZE: * - `ARM_MATH_AUTOVECTORIZE`:
* * - With Helium or Neon, disable the use of vectorized code with C intrinsics
* With Helium or Neon, disable the use of vectorized code with C intrinsics
* and use pure C instead. The vectorization is then done by the compiler. * and use pure C instead. The vectorization is then done by the compiler.
* *
* <hr>
* \section pack CMSIS-DSP in ARM::CMSIS Pack * \section pack CMSIS-DSP in ARM::CMSIS Pack
* *
* The following files relevant to CMSIS-DSP are present in the <b>ARM::CMSIS</b> Pack directories: * The following files relevant to CMSIS-DSP are present in the <b>ARM::CMSIS</b> Pack directories:
@ -158,9 +144,12 @@
* |\b CMSIS\\DSP\\PrivateInclude | private include files for building the lib | * |\b CMSIS\\DSP\\PrivateInclude | private include files for building the lib |
* |\b CMSIS\\DSP\\Source | source files | * |\b CMSIS\\DSP\\Source | source files |
* *
* <hr>
* \section rev Revision History of CMSIS-DSP * \section rev Revision History of CMSIS-DSP
* Please refer to \ref ChangeLog_pg. * Please refer to \ref ChangeLog_pg.
*
* \section license License
*
* The CMSIS-DSP is provided free of charge under the <a href="LICENSE.txt">Apache 2.0 License</a>.
*/ */

@ -52,13 +52,33 @@ extern "C"
*/ */
/** /**
* @ingroup groupController @ingroup groupController
*/ */
/** /**
* @addtogroup SinCos @defgroup SinCos Sine Cosine
* @{
Computes the trigonometric sine and cosine values using a combination of table lookup
and linear interpolation.
There are separate functions for Q31 and floating-point data types.
The input to the floating-point version is in degrees while the
fixed-point Q31 have a scaled input with the range
[-1 0.9999] mapping to [-180 +180] degrees.
The floating point function also allows values that are out of the usual range. When this happens, the function will
take extra time to adjust the input value to the range of [-180 180].
The result is accurate to 5 digits after the decimal point.
The implementation is based on table lookup using 360 values together with linear interpolation.
The steps used are:
-# Calculation of the nearest integer table index.
-# Compute the fractional portion (fract) of the input.
-# Fetch the value corresponding to \c index from sine table to \c y0 and also value from \c index+1 to \c y1.
-# Sine value is computed as <code> *psinVal = y0 + (fract * (y1 - y0))</code>.
-# Fetch the value corresponding to \c index from cosine table to \c y0 and also value from \c index+1 to \c y1.
-# Cosine value is computed as <code> *pcosVal = y0 + (fract * (y1 - y0))</code>.
*/ */
/** /**
@ -84,10 +104,6 @@ extern "C"
q31_t * pSinVal, q31_t * pSinVal,
q31_t * pCosVal); q31_t * pCosVal);
/**
* @} end of SinCos group
*/
/** /**
* @ingroup groupController * @ingroup groupController
*/ */

@ -63,17 +63,8 @@ extern "C"
* *
*/ */
/**
* @ingroup groupFastMath
*/
/** /**
@addtogroup sin
@{
*/
/**
* @brief Fast approximation to the trigonometric sine function for floating-point data. * @brief Fast approximation to the trigonometric sine function for floating-point data.
* @param[in] x input value in radians. * @param[in] x input value in radians.
* @return sin(x). * @return sin(x).
@ -90,7 +81,6 @@ extern "C"
q31_t arm_sin_q31( q31_t arm_sin_q31(
q31_t x); q31_t x);
/** /**
* @brief Fast approximation to the trigonometric sine function for Q15 data. * @brief Fast approximation to the trigonometric sine function for Q15 data.
* @param[in] x Scaled input value in radians. * @param[in] x Scaled input value in radians.
@ -99,14 +89,6 @@ extern "C"
q15_t arm_sin_q15( q15_t arm_sin_q15(
q15_t x); q15_t x);
/**
@} end of sin group
*/
/**
@addtogroup cos
@{
*/
/** /**
* @brief Fast approximation to the trigonometric cosine function for floating-point data. * @brief Fast approximation to the trigonometric cosine function for floating-point data.
@ -134,10 +116,6 @@ extern "C"
q15_t arm_cos_q15( q15_t arm_cos_q15(
q15_t x); q15_t x);
/**
@} end of cos group
*/
/** /**
@brief Floating-point vector of log values. @brief Floating-point vector of log values.

@ -121,18 +121,6 @@ extern "C"
} arm_spline_instance_f32; } arm_spline_instance_f32;
/**
* @ingroup groupInterpolation
*/
/**
* @addtogroup SplineInterpolate
* @{
*/
/** /**
* @brief Processing function for the floating-point cubic spline interpolation. * @brief Processing function for the floating-point cubic spline interpolation.
* @param[in] S points to an instance of the floating-point spline structure. * @param[in] S points to an instance of the floating-point spline structure.
@ -166,17 +154,6 @@ extern "C"
float32_t * tempBuffer); float32_t * tempBuffer);
/**
* @} end of SplineInterpolate group
*/
/**
* @addtogroup LinearInterpolate
* @{
*/
/** /**
* @brief Process function for the floating-point Linear Interpolation Function. * @brief Process function for the floating-point Linear Interpolation Function.
* @param[in,out] S is an instance of the floating-point Linear Interpolation structure * @param[in,out] S is an instance of the floating-point Linear Interpolation structure
@ -241,23 +218,6 @@ q7_t arm_linear_interp_q7(
q31_t x, q31_t x,
uint32_t nValues); uint32_t nValues);
/**
* @} end of LinearInterpolate group
*/
/**
* @ingroup groupInterpolation
*/
/**
* @addtogroup BilinearInterpolate
* @{
*/
/** /**
* @brief Floating-point bilinear interpolation. * @brief Floating-point bilinear interpolation.
* @param[in,out] S points to an instance of the interpolation structure. * @param[in,out] S points to an instance of the interpolation structure.
@ -306,10 +266,6 @@ q7_t arm_linear_interp_q7(
arm_bilinear_interp_instance_q7 * S, arm_bilinear_interp_instance_q7 * S,
q31_t X, q31_t X,
q31_t Y); q31_t Y);
/**
* @} end of BilinearInterpolate group
*/
#ifdef __cplusplus #ifdef __cplusplus

@ -29,35 +29,6 @@
#include "dsp/controller_functions.h" #include "dsp/controller_functions.h"
#include "arm_common_tables.h" #include "arm_common_tables.h"
/**
@ingroup groupController
*/
/**
@defgroup SinCos Sine Cosine
Computes the trigonometric sine and cosine values using a combination of table lookup
and linear interpolation.
There are separate functions for Q31 and floating-point data types.
The input to the floating-point version is in degrees while the
fixed-point Q31 have a scaled input with the range
[-1 0.9999] mapping to [-180 +180] degrees.
The floating point function also allows values that are out of the usual range. When this happens, the function will
take extra time to adjust the input value to the range of [-180 180].
The result is accurate to 5 digits after the decimal point.
The implementation is based on table lookup using 360 values together with linear interpolation.
The steps used are:
-# Calculation of the nearest integer table index.
-# Compute the fractional portion (fract) of the input.
-# Fetch the value corresponding to \c index from sine table to \c y0 and also value from \c index+1 to \c y1.
-# Sine value is computed as <code> *psinVal = y0 + (fract * (y1 - y0))</code>.
-# Fetch the value corresponding to \c index from cosine table to \c y0 and also value from \c index+1 to \c y1.
-# Cosine value is computed as <code> *pcosVal = y0 + (fract * (y1 - y0))</code>.
*/
/** /**
@addtogroup SinCos @addtogroup SinCos
@{ @{

@ -33,6 +33,7 @@
/** /**
@ingroup barycenter @ingroup barycenter
@{
*/ */

@ -41,10 +41,6 @@ extern void arm_bitreversal_64(
const uint16_t bitRevLen, const uint16_t bitRevLen,
const uint16_t * pBitRevTable); const uint16_t * pBitRevTable);
/**
* @} end of ComplexFFT group
*/
/* ---------------------------------------------------------------------- /* ----------------------------------------------------------------------
* Internal helper function used by the FFTs * Internal helper function used by the FFTs
* ---------------------------------------------------------------------- */ * ---------------------------------------------------------------------- */

Loading…
Cancel
Save