diff options
author | Ben V. Brown <[email protected]> | 2017-12-13 22:07:25 +1100 |
---|---|---|
committer | Ben V. Brown <[email protected]> | 2017-12-13 22:07:25 +1100 |
commit | b2f97933fd0fec21472bf3b04aad77e122c0ed35 (patch) | |
tree | f8d2e77a25054e1c42d96ed784ed4c2b1380ea45 | |
parent | c618cd066582f4493473396ea056a51751c38638 (diff) | |
download | IronOS-b2f97933fd0fec21472bf3b04aad77e122c0ed35.tar.gz IronOS-b2f97933fd0fec21472bf3b04aad77e122c0ed35.zip |
Making rough Makefile
14 files changed, 222 insertions, 3219 deletions
diff --git a/workspace/TS100/.gitignore b/workspace/TS100/.gitignore index ac01e665..1fb2a390 100644 --- a/workspace/TS100/.gitignore +++ b/workspace/TS100/.gitignore @@ -1,2 +1,5 @@ /Debug/ /Release/ +/Hexfile/ +/Objects/ + diff --git a/workspace/TS100/HAL_Driver/Release_Notes.html b/workspace/TS100/HAL_Driver/Release_Notes.html deleted file mode 100644 index b21b32ac..00000000 --- a/workspace/TS100/HAL_Driver/Release_Notes.html +++ /dev/null @@ -1,1515 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head> - - - - - - - - - -<meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> -<link rel="File-List" href="Release_Notes_for_STM32F45x_StdPeriph_Driver_files/filelist.xml"> -<link rel="Edit-Time-Data" href="Release_Notes_for_STM32F45x_StdPeriph_Driver_files/editdata.mso"><!--[if !mso]> -<style> -v\:* {behavior:url(#default#VML);} -o\:* {behavior:url(#default#VML);} -w\:* {behavior:url(#default#VML);} -.shape {behavior:url(#default#VML);} -</style> -<![endif]--><title>Release Notes for STM32F1xx HAL Drivers</title><!--[if gte mso 9]><xml> - <o:DocumentProperties> - <o:Author>STMicroelectronics</o:Author> - <o:LastAuthor>Raouf Hosni</o:LastAuthor> - <o:Revision>39</o:Revision> - <o:TotalTime>137</o:TotalTime> - <o:Created>2009-02-27T19:26:00Z</o:Created> - <o:LastSaved>2010-10-15T11:07:00Z</o:LastSaved> - <o:Pages>3</o:Pages> - <o:Words>973</o:Words> - <o:Characters>5548</o:Characters> - <o:Company>STMicroelectronics</o:Company> - <o:Lines>46</o:Lines> - <o:Paragraphs>13</o:Paragraphs> - <o:CharactersWithSpaces>6508</o:CharactersWithSpaces> - <o:Version>12.00</o:Version> - </o:DocumentProperties> -</xml><![endif]--> - - - -<link rel="themeData" href="Release_Notes_for_STM32F45x_StdPeriph_Driver_files/themedata.thmx"> -<link rel="colorSchemeMapping" href="Release_Notes_for_STM32F45x_StdPeriph_Driver_files/colorschememapping.xml"><!--[if gte mso 9]><xml> - <w:WordDocument> - <w:Zoom>110</w:Zoom> - <w:TrackMoves>false</w:TrackMoves> - <w:TrackFormatting/> - <w:ValidateAgainstSchemas/> - <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> - <w:IgnoreMixedContent>false</w:IgnoreMixedContent> - <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> - <w:DoNotPromoteQF/> - <w:LidThemeOther>EN-US</w:LidThemeOther> - <w:LidThemeAsian>X-NONE</w:LidThemeAsian> - <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript> - <w:Compatibility> - <w:BreakWrappedTables/> - <w:SnapToGridInCell/> - <w:WrapTextWithPunct/> - <w:UseAsianBreakRules/> - <w:DontGrowAutofit/> - <w:SplitPgBreakAndParaMark/> - <w:DontVertAlignCellWithSp/> - <w:DontBreakConstrainedForcedTables/> - <w:DontVertAlignInTxbx/> - <w:Word11KerningPairs/> - <w:CachedColBalance/> - </w:Compatibility> - <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> - <m:mathPr> - <m:mathFont m:val="Cambria Math"/> - <m:brkBin m:val="before"/> - <m:brkBinSub m:val="--"/> - <m:smallFrac m:val="off"/> - <m:dispDef/> - <m:lMargin m:val="0"/> - <m:rMargin m:val="0"/> - <m:defJc m:val="centerGroup"/> - <m:wrapIndent m:val="1440"/> - <m:intLim m:val="subSup"/> - <m:naryLim m:val="undOvr"/> - </m:mathPr></w:WordDocument> -</xml><![endif]--><!--[if gte mso 9]><xml> - <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="false" - DefSemiHidden="false" DefQFormat="false" LatentStyleCount="267"> - <w:LsdException Locked="false" QFormat="true" Name="Normal"/> - <w:LsdException Locked="false" QFormat="true" Name="heading 1"/> - <w:LsdException Locked="false" QFormat="true" Name="heading 2"/> - <w:LsdException Locked="false" QFormat="true" Name="heading 3"/> - <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" - QFormat="true" Name="heading 4"/> - <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" - QFormat="true" Name="heading 5"/> - <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" - QFormat="true" Name="heading 6"/> - <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" - QFormat="true" Name="heading 7"/> - <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" - QFormat="true" Name="heading 8"/> - <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" - QFormat="true" Name="heading 9"/> - <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" - QFormat="true" Name="caption"/> - <w:LsdException Locked="false" QFormat="true" Name="Title"/> - <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/> - <w:LsdException Locked="false" QFormat="true" Name="Subtitle"/> - <w:LsdException Locked="false" QFormat="true" Name="Strong"/> - <w:LsdException Locked="false" QFormat="true" Name="Emphasis"/> - <w:LsdException Locked="false" Priority="99" Name="No List"/> - <w:LsdException Locked="false" Priority="99" SemiHidden="true" - Name="Placeholder Text"/> - <w:LsdException Locked="false" Priority="1" QFormat="true" Name="No Spacing"/> - <w:LsdException Locked="false" Priority="60" Name="Light Shading"/> - <w:LsdException Locked="false" Priority="61" Name="Light List"/> - <w:LsdException Locked="false" Priority="62" Name="Light Grid"/> - <w:LsdException Locked="false" Priority="63" Name="Medium Shading 1"/> - <w:LsdException Locked="false" Priority="64" Name="Medium Shading 2"/> - <w:LsdException Locked="false" Priority="65" Name="Medium List 1"/> - <w:LsdException Locked="false" Priority="66" Name="Medium List 2"/> - <w:LsdException Locked="false" Priority="67" Name="Medium Grid 1"/> - <w:LsdException Locked="false" Priority="68" Name="Medium Grid 2"/> - <w:LsdException Locked="false" Priority="69" Name="Medium Grid 3"/> - <w:LsdException Locked="false" Priority="70" Name="Dark List"/> - <w:LsdException Locked="false" Priority="71" Name="Colorful Shading"/> - <w:LsdException Locked="false" Priority="72" Name="Colorful List"/> - <w:LsdException Locked="false" Priority="73" Name="Colorful Grid"/> - <w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 1"/> - <w:LsdException Locked="false" Priority="61" Name="Light List Accent 1"/> - <w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 1"/> - <w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 1"/> - <w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 1"/> - <w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 1"/> - <w:LsdException Locked="false" Priority="99" SemiHidden="true" Name="Revision"/> - <w:LsdException Locked="false" Priority="34" QFormat="true" - Name="List Paragraph"/> - <w:LsdException Locked="false" Priority="29" QFormat="true" Name="Quote"/> - <w:LsdException Locked="false" Priority="30" QFormat="true" - Name="Intense Quote"/> - <w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 1"/> - <w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 1"/> - <w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 1"/> - <w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 1"/> - <w:LsdException Locked="false" Priority="70" Name="Dark List Accent 1"/> - <w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 1"/> - <w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 1"/> - <w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 1"/> - <w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 2"/> - <w:LsdException Locked="false" Priority="61" Name="Light List Accent 2"/> - <w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 2"/> - <w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 2"/> - <w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 2"/> - <w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 2"/> - <w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 2"/> - <w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 2"/> - <w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 2"/> - <w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 2"/> - <w:LsdException Locked="false" Priority="70" Name="Dark List Accent 2"/> - <w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 2"/> - <w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 2"/> - <w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 2"/> - <w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 3"/> - <w:LsdException Locked="false" Priority="61" Name="Light List Accent 3"/> - <w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 3"/> - <w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 3"/> - <w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 3"/> - <w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 3"/> - <w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 3"/> - <w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 3"/> - <w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 3"/> - <w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 3"/> - <w:LsdException Locked="false" Priority="70" Name="Dark List Accent 3"/> - <w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 3"/> - <w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 3"/> - <w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 3"/> - <w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 4"/> - <w:LsdException Locked="false" Priority="61" Name="Light List Accent 4"/> - <w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 4"/> - <w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 4"/> - <w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 4"/> - <w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 4"/> - <w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 4"/> - <w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 4"/> - <w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 4"/> - <w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 4"/> - <w:LsdException Locked="false" Priority="70" Name="Dark List Accent 4"/> - <w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 4"/> - <w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 4"/> - <w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 4"/> - <w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 5"/> - <w:LsdException Locked="false" Priority="61" Name="Light List Accent 5"/> - <w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 5"/> - <w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 5"/> - <w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 5"/> - <w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 5"/> - <w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 5"/> - <w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 5"/> - <w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 5"/> - <w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 5"/> - <w:LsdException Locked="false" Priority="70" Name="Dark List Accent 5"/> - <w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 5"/> - <w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 5"/> - <w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 5"/> - <w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 6"/> - <w:LsdException Locked="false" Priority="61" Name="Light List Accent 6"/> - <w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 6"/> - <w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 6"/> - <w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 6"/> - <w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 6"/> - <w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 6"/> - <w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 6"/> - <w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 6"/> - <w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 6"/> - <w:LsdException Locked="false" Priority="70" Name="Dark List Accent 6"/> - <w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 6"/> - <w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 6"/> - <w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 6"/> - <w:LsdException Locked="false" Priority="19" QFormat="true" - Name="Subtle Emphasis"/> - <w:LsdException Locked="false" Priority="21" QFormat="true" - Name="Intense Emphasis"/> - <w:LsdException Locked="false" Priority="31" QFormat="true" - Name="Subtle Reference"/> - <w:LsdException Locked="false" Priority="32" QFormat="true" - Name="Intense Reference"/> - <w:LsdException Locked="false" Priority="33" QFormat="true" Name="Book Title"/> - <w:LsdException Locked="false" Priority="37" SemiHidden="true" - UnhideWhenUsed="true" Name="Bibliography"/> - <w:LsdException Locked="false" Priority="39" SemiHidden="true" - UnhideWhenUsed="true" QFormat="true" Name="TOC Heading"/> - </w:LatentStyles> -</xml><![endif]--> - -<style> -<!-- - /* Font Definitions */ - @font-face - {font-family:"Cambria Math"; - panose-1:2 4 5 3 5 4 6 3 2 4; - mso-font-charset:1; - mso-generic-font-family:roman; - mso-font-format:other; - mso-font-pitch:variable; - mso-font-signature:0 0 0 0 0 0;} -@font-face - {font-family:Calibri; - panose-1:2 15 5 2 2 2 4 3 2 4; - mso-font-charset:0; - mso-generic-font-family:swiss; - mso-font-pitch:variable; - mso-font-signature:-1610611985 1073750139 0 0 159 0;} -@font-face - {font-family:Tahoma; - panose-1:2 11 6 4 3 5 4 4 2 4; - mso-font-charset:0; - mso-generic-font-family:swiss; - mso-font-pitch:variable; - mso-font-signature:1627400839 -2147483648 8 0 66047 0;} -@font-face - {font-family:Verdana; - panose-1:2 11 6 4 3 5 4 4 2 4; - mso-font-charset:0; - mso-generic-font-family:swiss; - mso-font-pitch:variable; - mso-font-signature:536871559 0 0 0 415 0;} - /* Style Definitions */ - p.MsoNormal, li.MsoNormal, div.MsoNormal - {mso-style-unhide:no; - mso-style-qformat:yes; - mso-style-parent:""; - margin:0in; - margin-bottom:.0001pt; - mso-pagination:widow-orphan; - font-size:12.0pt; - font-family:"Times New Roman","serif"; - mso-fareast-font-family:"Times New Roman";} -h1 - {mso-style-unhide:no; - mso-style-qformat:yes; - mso-style-link:"Heading 1 Char"; - mso-margin-top-alt:auto; - margin-right:0in; - mso-margin-bottom-alt:auto; - margin-left:0in; - mso-pagination:widow-orphan; - mso-outline-level:1; - font-size:24.0pt; - font-family:"Times New Roman","serif"; - mso-fareast-font-family:"Times New Roman"; - mso-fareast-theme-font:minor-fareast; - font-weight:bold;} -h2 - {mso-style-unhide:no; - mso-style-qformat:yes; - mso-style-link:"Heading 2 Char"; - mso-style-next:Normal; - margin-top:12.0pt; - margin-right:0in; - margin-bottom:3.0pt; - margin-left:0in; - mso-pagination:widow-orphan; - page-break-after:avoid; - mso-outline-level:2; - font-size:14.0pt; - font-family:"Arial","sans-serif"; - mso-fareast-font-family:"Times New Roman"; - mso-fareast-theme-font:minor-fareast; - font-weight:bold; - font-style:italic;} -h3 - {mso-style-unhide:no; - mso-style-qformat:yes; - mso-style-link:"Heading 3 Char"; - mso-margin-top-alt:auto; - margin-right:0in; - mso-margin-bottom-alt:auto; - margin-left:0in; - mso-pagination:widow-orphan; - mso-outline-level:3; - font-size:13.5pt; - font-family:"Times New Roman","serif"; - mso-fareast-font-family:"Times New Roman"; - mso-fareast-theme-font:minor-fareast; - font-weight:bold;} -a:link, span.MsoHyperlink - {mso-style-unhide:no; - color:blue; - text-decoration:underline; - text-underline:single;} -a:visited, span.MsoHyperlinkFollowed - {mso-style-unhide:no; - color:blue; - text-decoration:underline; - text-underline:single;} -p - {mso-style-unhide:no; - mso-margin-top-alt:auto; - margin-right:0in; - mso-margin-bottom-alt:auto; - margin-left:0in; - mso-pagination:widow-orphan; - font-size:12.0pt; - font-family:"Times New Roman","serif"; - mso-fareast-font-family:"Times New Roman";} -p.MsoAcetate, li.MsoAcetate, div.MsoAcetate - {mso-style-unhide:no; - mso-style-link:"Balloon Text Char"; - margin:0in; - margin-bottom:.0001pt; - mso-pagination:widow-orphan; - font-size:8.0pt; - font-family:"Tahoma","sans-serif"; - mso-fareast-font-family:"Times New Roman";} -span.Heading1Char - {mso-style-name:"Heading 1 Char"; - mso-style-unhide:no; - mso-style-locked:yes; - mso-style-link:"Heading 1"; - mso-ansi-font-size:14.0pt; - mso-bidi-font-size:14.0pt; - font-family:"Cambria","serif"; - mso-ascii-font-family:Cambria; - mso-ascii-theme-font:major-latin; - mso-fareast-font-family:"Times New Roman"; - mso-fareast-theme-font:major-fareast; - mso-hansi-font-family:Cambria; - mso-hansi-theme-font:major-latin; - mso-bidi-font-family:"Times New Roman"; - mso-bidi-theme-font:major-bidi; - color:#365F91; - mso-themecolor:accent1; - mso-themeshade:191; - font-weight:bold;} -span.Heading2Char - {mso-style-name:"Heading 2 Char"; - mso-style-unhide:no; - mso-style-locked:yes; - mso-style-link:"Heading 2"; - mso-ansi-font-size:13.0pt; - mso-bidi-font-size:13.0pt; - font-family:"Cambria","serif"; - mso-ascii-font-family:Cambria; - mso-ascii-theme-font:major-latin; - mso-fareast-font-family:"Times New Roman"; - mso-fareast-theme-font:major-fareast; - mso-hansi-font-family:Cambria; - mso-hansi-theme-font:major-latin; - mso-bidi-font-family:"Times New Roman"; - mso-bidi-theme-font:major-bidi; - color:#4F81BD; - mso-themecolor:accent1; - font-weight:bold;} -span.Heading3Char - {mso-style-name:"Heading 3 Char"; - mso-style-unhide:no; - mso-style-locked:yes; - mso-style-link:"Heading 3"; - mso-ansi-font-size:12.0pt; - mso-bidi-font-size:12.0pt; - font-family:"Cambria","serif"; - mso-ascii-font-family:Cambria; - mso-ascii-theme-font:major-latin; - mso-fareast-font-family:"Times New Roman"; - mso-fareast-theme-font:major-fareast; - mso-hansi-font-family:Cambria; - mso-hansi-theme-font:major-latin; - mso-bidi-font-family:"Times New Roman"; - mso-bidi-theme-font:major-bidi; - color:#4F81BD; - mso-themecolor:accent1; - font-weight:bold;} -span.BalloonTextChar - {mso-style-name:"Balloon Text Char"; - mso-style-unhide:no; - mso-style-locked:yes; - mso-style-link:"Balloon Text"; - mso-ansi-font-size:8.0pt; - mso-bidi-font-size:8.0pt; - font-family:"Tahoma","sans-serif"; - mso-ascii-font-family:Tahoma; - mso-hansi-font-family:Tahoma; - mso-bidi-font-family:Tahoma;} -.MsoChpDefault - {mso-style-type:export-only; - mso-default-props:yes; - font-size:10.0pt; - mso-ansi-font-size:10.0pt; - mso-bidi-font-size:10.0pt;} -@page WordSection1 - {size:8.5in 11.0in; - margin:1.0in 1.25in 1.0in 1.25in; - mso-header-margin:.5in; - mso-footer-margin:.5in; - mso-paper-source:0;} -div.WordSection1 - {page:WordSection1;} - /* List Definitions */ - @list l0 - {mso-list-id:62067358; - mso-list-template-ids:-174943062;} -@list l0:level1 - {mso-level-number-format:bullet; - mso-level-text:\F0B7; - mso-level-tab-stop:.5in; - mso-level-number-position:left; - text-indent:-.25in; - mso-ansi-font-size:10.0pt; - font-family:Symbol;} -@list l0:level2 - {mso-level-tab-stop:1.0in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l0:level3 - {mso-level-tab-stop:1.5in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l0:level4 - {mso-level-tab-stop:2.0in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l0:level5 - {mso-level-tab-stop:2.5in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l0:level6 - {mso-level-tab-stop:3.0in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l0:level7 - {mso-level-tab-stop:3.5in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l0:level8 - {mso-level-tab-stop:4.0in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l0:level9 - {mso-level-tab-stop:4.5in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l1 - {mso-list-id:128015942; - mso-list-template-ids:-90681214;} -@list l1:level1 - {mso-level-tab-stop:.5in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l1:level2 - {mso-level-tab-stop:1.0in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l1:level3 - {mso-level-tab-stop:1.5in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l1:level4 - {mso-level-tab-stop:2.0in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l1:level5 - {mso-level-tab-stop:2.5in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l1:level6 - {mso-level-tab-stop:3.0in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l1:level7 - {mso-level-tab-stop:3.5in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l1:level8 - {mso-level-tab-stop:4.0in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l1:level9 - {mso-level-tab-stop:4.5in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l2 - {mso-list-id:216556000; - mso-list-template-ids:925924412;} -@list l2:level1 - {mso-level-number-format:bullet; - mso-level-text:\F0B7; - mso-level-tab-stop:.5in; - mso-level-number-position:left; - text-indent:-.25in; - mso-ansi-font-size:10.0pt; - font-family:Symbol;} -@list l2:level2 - {mso-level-number-format:bullet; - mso-level-text:\F0B7; - mso-level-tab-stop:1.0in; - mso-level-number-position:left; - text-indent:-.25in; - mso-ansi-font-size:10.0pt; - font-family:Symbol;} -@list l2:level3 - {mso-level-tab-stop:1.5in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l2:level4 - {mso-level-tab-stop:2.0in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l2:level5 - {mso-level-tab-stop:2.5in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l2:level6 - {mso-level-tab-stop:3.0in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l2:level7 - {mso-level-tab-stop:3.5in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l2:level8 - {mso-level-tab-stop:4.0in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l2:level9 - {mso-level-tab-stop:4.5in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l3 - {mso-list-id:562446694; - mso-list-template-ids:913898366;} -@list l3:level1 - {mso-level-number-format:bullet; - mso-level-text:\F0B7; - mso-level-tab-stop:.5in; - mso-level-number-position:left; - text-indent:-.25in; - mso-ansi-font-size:10.0pt; - font-family:Symbol;} -@list l3:level2 - {mso-level-tab-stop:1.0in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l3:level3 - {mso-level-tab-stop:1.5in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l3:level4 - {mso-level-tab-stop:2.0in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l3:level5 - {mso-level-tab-stop:2.5in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l3:level6 - {mso-level-tab-stop:3.0in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l3:level7 - {mso-level-tab-stop:3.5in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l3:level8 - {mso-level-tab-stop:4.0in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l3:level9 - {mso-level-tab-stop:4.5in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l4 - {mso-list-id:797802132; - mso-list-template-ids:-1971191336;} -@list l4:level1 - {mso-level-tab-stop:.5in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l4:level2 - {mso-level-tab-stop:1.0in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l4:level3 - {mso-level-tab-stop:1.5in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l4:level4 - {mso-level-tab-stop:2.0in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l4:level5 - {mso-level-tab-stop:2.5in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l4:level6 - {mso-level-tab-stop:3.0in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l4:level7 - {mso-level-tab-stop:3.5in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l4:level8 - {mso-level-tab-stop:4.0in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l4:level9 - {mso-level-tab-stop:4.5in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l5 - {mso-list-id:907304066; - mso-list-template-ids:1969781532;} -@list l5:level1 - {mso-level-tab-stop:.5in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l5:level2 - {mso-level-tab-stop:1.0in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l5:level3 - {mso-level-tab-stop:1.5in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l5:level4 - {mso-level-tab-stop:2.0in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l5:level5 - {mso-level-tab-stop:2.5in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l5:level6 - {mso-level-tab-stop:3.0in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l5:level7 - {mso-level-tab-stop:3.5in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l5:level8 - {mso-level-tab-stop:4.0in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l5:level9 - {mso-level-tab-stop:4.5in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l6 - {mso-list-id:1050613616; - mso-list-template-ids:-1009886748;} -@list l6:level1 - {mso-level-number-format:bullet; - mso-level-text:\F0B7; - mso-level-tab-stop:.5in; - mso-level-number-position:left; - text-indent:-.25in; - mso-ansi-font-size:10.0pt; - font-family:Symbol;} -@list l6:level2 - {mso-level-number-format:bullet; - mso-level-text:\F0B7; - mso-level-tab-stop:1.0in; - mso-level-number-position:left; - text-indent:-.25in; - mso-ansi-font-size:10.0pt; - font-family:Symbol;} -@list l6:level3 - {mso-level-tab-stop:1.5in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l6:level4 - {mso-level-tab-stop:2.0in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l6:level5 - {mso-level-tab-stop:2.5in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l6:level6 - {mso-level-tab-stop:3.0in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l6:level7 - {mso-level-tab-stop:3.5in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l6:level8 - {mso-level-tab-stop:4.0in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l6:level9 - {mso-level-tab-stop:4.5in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l7 - {mso-list-id:1234970193; - mso-list-template-ids:2055904002;} -@list l7:level1 - {mso-level-number-format:bullet; - mso-level-text:\F0B7; - mso-level-tab-stop:.5in; - mso-level-number-position:left; - text-indent:-.25in; - mso-ansi-font-size:10.0pt; - font-family:Symbol;} -@list l7:level2 - {mso-level-number-format:bullet; - mso-level-text:\F0B7; - mso-level-tab-stop:1.0in; - mso-level-number-position:left; - text-indent:-.25in; - mso-ansi-font-size:10.0pt; - font-family:Symbol;} -@list l7:level3 - {mso-level-tab-stop:1.5in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l7:level4 - {mso-level-tab-stop:2.0in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l7:level5 - {mso-level-tab-stop:2.5in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l7:level6 - {mso-level-tab-stop:3.0in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l7:level7 - {mso-level-tab-stop:3.5in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l7:level8 - {mso-level-tab-stop:4.0in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l7:level9 - {mso-level-tab-stop:4.5in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l8 - {mso-list-id:1846092290; - mso-list-template-ids:-768590846;} -@list l8:level1 - {mso-level-start-at:2; - mso-level-tab-stop:.5in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l8:level2 - {mso-level-tab-stop:1.0in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l8:level3 - {mso-level-tab-stop:1.5in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l8:level4 - {mso-level-tab-stop:2.0in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l8:level5 - {mso-level-tab-stop:2.5in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l8:level6 - {mso-level-tab-stop:3.0in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l8:level7 - {mso-level-tab-stop:3.5in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l8:level8 - {mso-level-tab-stop:4.0in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l8:level9 - {mso-level-tab-stop:4.5in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l9 - {mso-list-id:1894656566; - mso-list-template-ids:1199983812;} -@list l9:level1 - {mso-level-start-at:2; - mso-level-tab-stop:.5in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l9:level2 - {mso-level-tab-stop:1.0in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l9:level3 - {mso-level-tab-stop:1.5in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l9:level4 - {mso-level-tab-stop:2.0in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l9:level5 - {mso-level-tab-stop:2.5in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l9:level6 - {mso-level-tab-stop:3.0in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l9:level7 - {mso-level-tab-stop:3.5in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l9:level8 - {mso-level-tab-stop:4.0in; - mso-level-number-position:left; - text-indent:-.25in;} -@list l9:level9 - {mso-level-tab-stop:4.5in; - mso-level-number-position:left; - text-indent:-.25in;} -ol - {margin-bottom:0in;} -ul - {margin-bottom:0in;} ---> -</style><!--[if gte mso 10]> -<style> - /* Style Definitions */ - table.MsoNormalTable - {mso-style-name:"Table Normal"; - mso-tstyle-rowband-size:0; - mso-tstyle-colband-size:0; - mso-style-noshow:yes; - mso-style-priority:99; - mso-style-qformat:yes; - mso-style-parent:""; - mso-padding-alt:0in 5.4pt 0in 5.4pt; - mso-para-margin:0in; - mso-para-margin-bottom:.0001pt; - mso-pagination:widow-orphan; - font-size:10.0pt; - font-family:"Times New Roman","serif";} -</style> -<![endif]--><!--[if gte mso 9]><xml> - <o:shapedefaults v:ext="edit" spidmax="7170"/> -</xml><![endif]--><!--[if gte mso 9]><xml> - <o:shapelayout v:ext="edit"> - <o:idmap v:ext="edit" data="1"/> - </o:shapelayout></xml><![endif]--> - <meta content="MCD Application Team" name="author"></head> -<body link="blue" vlink="blue"> - -<div class="WordSection1"> - -<p class="MsoNormal"><span style="font-family: "Arial","sans-serif";"><o:p> </o:p></span></p> - -<div align="center"> - -<table class="MsoNormalTable" style="width: 675pt;" border="0" cellpadding="0" cellspacing="0" width="900"> - <tbody><tr style=""> - <td style="padding: 0in;" valign="top"> - <table class="MsoNormalTable" style="width: 675pt;" border="0" cellpadding="0" cellspacing="0" width="900"> - <tbody><tr style=""> - <td style="padding: 0in 5.4pt;" valign="top"> - <p class="MsoNormal"><span style="font-size: 8pt; font-family: "Arial","sans-serif"; color: blue;"><a href="../../Release_Notes.html">Back to Release page</a></span><span style="font-size: 10pt;"><o:p></o:p></span></p> - </td> - </tr> - <tr style=""> - <td style="padding: 1.5pt;"> - <h1 style="margin-bottom: 0.25in; text-align: center;" align="center"><span style="font-size: 20pt; font-family: "Verdana","sans-serif"; color: rgb(51, 102, 255);">Release Notes for STM32F1xx HAL Drivers</span><span style="font-size: 20pt; font-family: "Verdana","sans-serif";"><o:p></o:p></span></h1> - <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt; font-family: "Arial","sans-serif"; color: black;">Copyright - 2016 STMicroelectronics</span><span style="color: black;"><u1:p></u1:p><o:p></o:p></span></p> - <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt; font-family: "Arial","sans-serif"; color: black;"><img style="border: 0px solid ; width: 112px; height: 83px;" alt="" id="_x0000_i1026" src="../../_htmresc/st_logo.png"></span><span style="font-size: 10pt;"><o:p></o:p></span></p> - </td> - </tr> - </tbody></table> - <p class="MsoNormal"><span style="font-family: "Arial","sans-serif"; display: none;"><o:p> </o:p></span></p> - <table class="MsoNormalTable" style="width: 675pt;" border="0" cellpadding="0" width="900"> - <tbody><tr style=""> - <td style="padding: 0in;" valign="top"> - <h2 style="background: rgb(51, 102, 255) none repeat scroll 0% 50%; -moz-background-clip: initial; -moz-background-origin: initial; -moz-background-inline-policy: initial;"><a name="History"></a><span style="font-size: 12pt; color: white;">Update History</span></h2> - - <h3 style="background: rgb(51, 102, 255) none repeat scroll 0% 50%; -moz-background-clip: initial; -moz-background-origin: initial; -moz-background-inline-policy: initial; margin-right: 500pt; width: 180px;"><span style="font-size: 10pt; font-family: Arial; color: white;">V1.1.1 / 12-May-2017 <o:p></o:p></span></h3><ul style="margin-bottom: 0in; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; margin-top: 0cm;" type="square"><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: Verdana,sans-serif;">General updates to fix known defects and enhancements implementation</span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;"><span style="font-weight: bold;">HAL </span><span class="Apple-converted-space"></span>update</span></li><ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;">stm32f1xx_hal_conf_template.h fix typo: update to refer to stm32f1xx_hal_mmc.h instead of </span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">stm32f4xx_hal_mmc.h</span></li></ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;"><span style="font-weight: bold;">LL SYSTEM </span>update</span></li><ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;">LL_DBGMCU_APB1_GRP1_I2C1_STOP and </span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">LL_DBGMCU_APB1_GRP1_I2C2_STOP </span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">literals are retarget to an available literals</span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;">LL_DBGMCU_APB1_GRP1_RTC_STOP literal is not available for all STM32F1 devices</span></li></ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;"><span style="font-weight: bold;">HAL MMC</span><span class="Apple-converted-space"> </span>update</span></li><ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;">Add missing () to fix compilation warning </span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">detected </span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">with SW4STM32 when extra feature is enabled.</span></li></ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;"><span style="font-weight: bold;">HAL I2C</span><span class="Apple-converted-space"> </span>update</span></li><ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;">Update -HAL I2C processes to manage correctly the I2C state to allow the -possibility to call HAL_I2C_Master_Sequential_Receive_IT() followed by -a call </span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">HAL_I2C_Master_Sequential_Transmit_IT()</span></li></ul></ul><h3 style="background: rgb(51, 102, 255) none repeat scroll 0% 50%; -moz-background-clip: initial; -moz-background-origin: initial; -moz-background-inline-policy: initial; margin-right: 500pt; width: 180px;"><span style="font-size: 10pt; font-family: Arial; color: white;">V1.1.0 / 14-April-2017 <o:p></o:p></span></h3><ul style="margin-bottom: 0in; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; margin-top: 0cm;" type="square"><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="color: rgb(0, 0, 0); font-family: Verdana; font-size: 13.3333px; font-style: normal; font-variant: normal; font-weight: bold; letter-spacing: normal; line-height: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; display: inline ! important; float: none;">Add Low Layer drivers allowing performance and footprint optimization</span></li><ul><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-size: 10pt; font-family: Verdana;">Low -Layer drivers APIs provide register level programming: require deep -knowledge of peripherals described in STM32F1xx Reference Manuals</span></li><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="color: rgb(0, 0, 0); font-family: Verdana; font-size: 13.3333px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; display: inline ! important; float: none;">Low -Layer drivers are available for: ADC, Cortex, CRC, DAC, DMA, EXTI, GPIO, I2C, IWDG, PWR, RCC, RTC, SPI, TIM, -USART, WWDG peripherals and additionnal Low Level Bus, System and -Utilities APIs.</span></li><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-size: 10pt; font-family: Verdana;">Low Layer drivers APIs are implemented as static inline function in new<span class="Apple-converted-space"> </span><span style="font-style: italic;">Inc/stm32f1xx_ll_ppp.h</span><span class="Apple-converted-space"> </span>files for PPP peripherals, there is no configuration file and each<span class="Apple-converted-space"> </span></span><span style="font-size: 10pt; font-family: Verdana;"><span style="font-style: italic;">stm32f1xx_ll_ppp.h</span><span class="Apple-converted-space"> </span>file must be included in user code.</span></li></ul><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;">Add new<span class="Apple-converted-space"> </span><span style="font-weight: bold;">HAL MMC</span><span class="Apple-converted-space"></span><span class="Apple-converted-space"></span><span style="font-weight: bold;"></span><span class="Apple-converted-space"> </span>driver</span><span style="font-size: 10pt; font-family: Verdana;"></span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: Verdana,sans-serif;">General updates to fix known defects and enhancements implementation</span></li><li style="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;" class="MsoNormal"> - -<span style="font-size: 10pt; font-family: "Verdana",sans-serif;">Enhance HAL delay and time base implementation</span><span style="font-size: 10pt; font-family: "Verdana",sans-serif;">:</span></li><ul><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;">Add -new drivers stm32f1xx_hal_timebase_rtc_alarm_template.c and -stm32f1xx_hal_timebase_tim_template.c which override the native -HAL time base functions (defined as weak) to either use the RTC/TIM as time -base tick source. For more details about the usage of these drivers, -please refer to HAL\HAL_TimeBase_RTC and </span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">HAL\HAL_TimeBase_TIM </span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">examples </span><span style="color: rgb(0, 0, 0); font-family: Verdana,sans-serif; font-size: 13.3333px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; float: none; display: inline ! important;">and FreeRTOS-based applications</span></li></ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: Verdana,sans-serif;">Fix extra warnings with GCC compiler</span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: Verdana,sans-serif;">HAL drivers clean up: update </span><span style="font-size: 10pt; font-family: Verdana,sans-serif;">'uint32_t'</span><span style="font-size: 10pt; font-family: Verdana,sans-serif;"> cast with 'U'</span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: Verdana,sans-serif;">Update to used the new defined Bit_Pos CMSIS defines insetad of </span><span style="font-size: 10pt; font-family: Verdana,sans-serif;">POSITION_VAL() macro</span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Update HAL -weak empty callbacks to prevent unused argument compilation warnings with some -compilers by calling the following line:</span> -</li><ul><li style="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;" class="MsoNormal"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">UNUSED(hppp);</span></li></ul><li style="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;" class="MsoNormal"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">STM32Fxxx_User_Manual.chm files regenerated for HAL V1.1.0</span></li></ul><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;"></span><ul style="margin-bottom: 0in; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; margin-top: 0cm;" type="square"><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;"><span style="font-weight: bold;">The following changes done on the HAL drivers require an update on the application code based on older HAL versions</span></span></li><ul style="margin-bottom: 0in;"><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;"><span style="font-style: italic;">HAL UART, USART, IRDA, SMARTCARD, SPI, I2C <span class="Apple-converted-space"></span></span></span><span style="font-family: Verdana,sans-serif; font-size: 10pt;"><span style="font-style: italic;"></span>(referenced as<span class="Apple-converted-space"> </span><span style="font-style: italic;">PPP</span><span class="Apple-converted-space"> </span>here below)<span style="font-style: italic;"></span></span><span style="font-family: Verdana,sans-serif; font-size: 10pt;"><span style="font-style: italic;"><span class="Apple-converted-space"> </span></span>drivers</span><span style="font-family: Verdana,sans-serif; font-size: 10pt;"></span></li><ul style="margin-bottom: 0in;"><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;">Add PPP error management during DMA process. This requires the following updates on </span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">user application:</span></li><ul style="margin-bottom: 0in;"><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;">Configure and enable the PPP IRQ in HAL_PPP_MspInit() function<br></span></li></ul><ul style="margin-bottom: 0in;"><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;">In<span class="Apple-converted-space"> </span></span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">stm32f1xx_it.c file,<span class="Apple-converted-space"> </span></span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">PPP_IRQHandler() function:<span class="Apple-converted-space"> </span></span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">add a call to HAL_PPP_IRQHandler() function</span></li><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;">Add customize the Error Callback API: HAL_PPP_ErrorCallback()</span></li></ul></ul><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;"><span style="font-style: italic;">HAL SD</span><span class="Apple-converted-space"> </span>driver:</span></li><ul style="margin-bottom: 0in;"><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;" lang="EN-US">Overall rework of the driver for a more efficient implementation</span></li><ul style="margin-bottom: 0in;"><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;" lang="EN-US">Modify initialization API and structures</span></li><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;" lang="EN-US">Modify Read / Write sequences: separate transfer process and SD Cards state management </span></li><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;" lang="EN-US">Adding interrupt mode for Read / Write operations</span></li></ul><ul style="margin-bottom: 0in;"><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;" lang="EN-US">Update the HAL_SD_IRQHandler function by optimizing the management of interrupt errors<br></span></li></ul><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;" lang="EN-US">Refer to the following example to identify the changes: BSP example and USB_Device/MSC_Standalone application</span></li></ul><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;"><span style="font-style: italic;">HAL NAND</span><span class="Apple-converted-space"> </span>driver:</span></li><ul style="margin-bottom: 0in;"><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;">Modify NAND_AddressTypeDef, NAND_DeviceConfigTypeDef and NAND_HandleTypeDef structures fields</span></li><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;">Add new HAL_NAND_ConfigDevice API</span></li></ul><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;"><span style="font-style: italic;">HAL CEC driver:<span class="Apple-converted-space"> </span></span> Overall driver rework with compatibility break versus previous HAL version</span></li><ul><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;" lang="EN-US">Remove HAL CEC polling Process functions: HAL_CEC_Transmit() and HAL_CEC_Receive()</span><span style="font-family: 'Times New Roman',serif; font-size: 12pt;" lang="EN-US"><o:p></o:p></span></li><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;" lang="EN-US">Remove -HAL CEC receive interrupt process function HAL_CEC_Receive_IT() -and enable the "receive" mode during the Init phase</span></li><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;" lang="EN-US">Rename HAL_CEC_GetReceivedFrameSize() funtion to HAL_CEC_GetLastReceivedFrameSize()<br></span></li><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;" lang="EN-US">Add new HAL APIs: HAL_CEC_SetDeviceAddress() and HAL_CEC_ChangeRxBuffer()</span></li><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;" lang="EN-US">Remove the <span></span>'InitiatorAddress' -field from the CEC_InitTypeDef structure and manage -it as a parameter in the HAL_CEC_Transmit_IT() function</span><span style="font-family: 'Times New Roman',serif; font-size: 12pt;" lang="EN-US"><o:p></o:p></span></li><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;" lang="EN-US">Add new parameter 'RxFrameSize' in HAL_CEC_RxCpltCallback() function</span></li><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;" lang="EN-US">Move CEC Rx buffer pointer from CEC_HandleTypeDef structure to CEC_InitTypeDef structure</span></li></ul><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;"><span style="font-style: italic;">HAL IWDG</span></span><span style="font-family: Verdana,sans-serif; font-size: 10pt;"><span style="font-style: italic;"><span class="Apple-converted-space"> </span></span>driver: rework overall driver for better implementation</span></li><ul style="margin-bottom: 0in;"><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;">Remove </span><span style="font-family: Verdana,sans-serif; font-size: 10pt;" lang="EN-US">HAL_IWDG_Start(),<span class="Apple-converted-space"> </span></span><span style="font-family: Verdana,sans-serif; font-size: 10pt;" lang="EN-US">HAL_IWDG_MspInit() and<span class="Apple-converted-space"> </span></span><span style="font-family: Verdana,sans-serif; font-size: 10pt;" lang="EN-US">HAL_IWDG_GetState() </span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">APIs</span></li></ul><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;"><span style="font-style: italic;">HAL WWDG</span></span><span style="font-family: Verdana,sans-serif; font-size: 10pt;"><span style="font-style: italic;"><span class="Apple-converted-space"> </span></span>driver: rework overall driver for better implementation</span><ul style="margin-bottom: 0in;"><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;" lang="EN-US">Remove HAL_WWDG_Start(),<span class="Apple-converted-space"> </span></span><span style="font-family: Verdana,sans-serif; font-size: 10pt;" lang="EN-US">HAL_WWDG_Start_IT(),</span><span style="font-family: Verdana,sans-serif; font-size: 10pt;" lang="EN-US"><span class="Apple-converted-space"> </span>HAL_WWDG_MspDeInit() and<span class="Apple-converted-space"> </span></span><span style="font-family: Verdana,sans-serif; font-size: 10pt;" lang="EN-US">HAL_WWDG_GetState() APIs </span></li><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;" lang="EN-US">Update the </span><span style="font-family: Calibri,sans-serif; font-size: 11pt;" lang="EN-US"></span><span style="font-family: Calibri,sans-serif; font-size: 11pt;" lang="EN-US"></span><span style="font-family: Calibri,sans-serif; font-size: 11pt;" lang="EN-US"></span><span style="font-family: Verdana,sans-serif; font-size: 10pt;" lang="EN-US"></span><span style="font-family: Calibri,sans-serif; font-size: 11pt;" lang="EN-US">HAL_WWDG_Refresh</span><span style="font-family: Calibri,sans-serif; font-size: 11pt;" lang="EN-US">(WWDG_HandleTypeDef *hwwdg, uint32_t counter) function and API by removing the "counter" parameter</span></li></ul></li></ul><li style="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;" class="MsoNormal"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;"><span style="font-weight: bold;">HAL GENERIC</span> update</span></li><ul><li style="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;" class="MsoNormal"><span style="font-size: 10pt; font-family: Verdana,sans-serif;">Modifiy default HAL_Delay implementation to guarantee minimum delay </span></li><li style="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;" class="MsoNormal"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">stm32f1xx_hal_conf_template.h</span><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;"></span><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;"></span></li><ul><li style="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;" class="MsoNormal"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Add new define LSI_VALUE</span></li><li style="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;" class="MsoNormal"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Add new define USE_SPI_CRC for code cleanup when the CRC calculation is disabled.</span></li></ul></ul><li style="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;" class="MsoNormal"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;"><span style="font-weight: bold;">HAL CORTEX </span>update</span></li><ul><li style="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;" class="MsoNormal"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Move HAL_MPU_Disable() and HAL_MPU_Enable() from stm32f4xx_hal_cortex.h to stm32f4xx_hal_cortex.c</span></li><li style="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;" class="MsoNormal"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Clear the whole MPU control register in </span><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">HAL_MPU_Disable() API</span></li></ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;"><span style="font-weight: bold;">HAL FLASH</span> update</span></li><ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">HAL_FLASH_OB_Launch(): fix static code analyzer warning: The removed code will not execute under any circumstances <br></span></li></ul><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;"><span style="font-weight: bold;">HAL GPIO</span><span class="Apple-converted-space"> </span>update</span></li><ul><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;">Update IS_GPIO_PIN() macro implementation to be more safe</span></li><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-size: 10pt; font-family: 'Segoe UI'; color: rgb(0, 0, 0); direction: ltr;" dir="ltr">Update remap macros implementation to use CLEAR_BIT()/SET_BIT() macros instead of MODIFY_REG() macro.</span></li></ul><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;"><span style="font-weight: bold;">HAL RCC</span><span class="Apple-converted-space"> </span>update</span></li><ul><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;"></span><span style="font-size: 10pt; font-family: 'Segoe UI'; color: rgb(0, 0, 0); direction: ltr;" dir="ltr">Update LSI workaround delay to use CPU cycles instead of systick</span></li><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-size: 10pt; font-family: 'Segoe UI'; color: rgb(0, 0, 0); direction: ltr;" dir="ltr">Move LSI_VALUE define from RCC HAL driver to stm32f1xx_hal_conf.h file</span></li></ul><ul><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-size: 10pt; font-family: 'Segoe UI'; color: rgb(0, 0, 0); direction: ltr;" dir="ltr">Adjust defined PLL MUL values in aPLLMULFactorTable[] <br></span></li></ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="color: rgb(0, 0, 0); font-family: Verdana,sans-serif; font-size: 13.3333px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; display: inline ! important; float: none;"><span style="font-weight: bold;">HAL ADC </span>update</span></li><ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: "Verdana",sans-serif;" lang="EN-US">HAL_ADCEx_MultiModeStart_DMA() and </span><span style="font-size: 10pt; font-family: "Verdana",sans-serif;" lang="EN-US">HAL_ADCEx_MultiModeStop_DMA()</span><span style="font-size: 10pt; font-family: "Verdana",sans-serif;" lang="EN-US"> API's </span><span style="font-size: 10pt; font-family: "Verdana",sans-serif;" lang="EN-US">update to fix code static analyzer warning: Redundant Condition / Unreachable Computation</span></li></ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="color: rgb(0, 0, 0); font-family: Verdana,sans-serif; font-size: 13.3333px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; display: inline ! important; float: none;"><span style="font-weight: bold;">HAL DMA </span>update</span></li><ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: "Verdana",sans-serif;" lang="EN-US">HAL_DMA_Init(): update to check compatibility between FIFO threshold level and size of the memory burst </span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-family: Verdana; font-size: 10pt;">Global driver code optimization to reduce memory footprint </span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-family: Verdana; font-size: 10pt;"></span><span style="font-family: Verdana; font-size: 10pt;">New APIs HAL_DMA_RegisterCallback() and </span><span style="font-family: Verdana; font-size: 10pt;">HAL_DMA_UnRegisterCallback() </span><span style="font-family: Verdana; font-size: 10pt;">to register/unregister the different possible callbacks identified by enum typedef HAL_DMA_CallbackIDTypeDef</span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="color: black; font-family: "Verdana",sans-serif; font-size: 10pt;">Add new Error Codes: HAL_DMA_ERROR_NO_XFER and HAL_DMA_ERROR_NOT_SUPPORTED</span></li></ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;"><span style="font-weight: bold;">HAL USART </span></span><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">update</span></li><ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="color: rgb(0, 0, 0); font-family: Verdana,sans-serif; font-size: 13.3333px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; float: none; display: inline ! important;">Add Transfer abort functions and callbacks</span></li></ul><ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><p class="MsoNormal"><span style="font-family: Verdana,sans-serif; font-size: 10pt;"><span style="font-style: italic;"></span>DMA Receive process; the code -has been updated to clear the USART OVR flag before enabling DMA receive request.</span></p></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="color: rgb(0, 0, 0); font-family: Verdana,sans-serif; font-size: 13.3333px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; display: inline ! important; float: none;">Update HAL_USART_IRQHandler() to add a check on interrupt source before managing the error</span><span style="font-family: "Courier New"; color: rgb(31, 73, 125);" lang="EN-US"><span style=""><span style="font-family: "Times New Roman"; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"> </span></span></span></li></ul><li style="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;" class="MsoNormal"> - -<b><span style="font-size: 10pt; font-family: "Verdana",sans-serif;" lang="EN-US">HAL UART </span></b><span style="font-size: 10pt; font-family: "Verdana",sans-serif;" lang="EN-US">update<b><o:p></o:p></b></span> -</li><ul><li style="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;" class="MsoNormal"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Several update on HAL UART driver to implement the new UART state machine: </span></li></ul><ul><ul><li style="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;" class="MsoNormal"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Add new field in UART_HandleTypeDef structure: </span><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">"rxState", </span><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">UART</span><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;"> state information related to Rx Operations</span></li></ul><ul><li style="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;" class="MsoNormal"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Rename "state" field in UART_HandleTypeDef structure by "gstate": </span><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">UART</span><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;"> state information related to global Handle management and Tx Operations</span></li><li style="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;" class="MsoNormal"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Update UART process to manage the new UART states.</span></li><li style="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;" class="MsoNormal"><span style="font-size: 10pt; font-family: "Verdana",sans-serif; color: black;" lang="EN-US">Update __HAL_UART_RESET_HANDLE_STATE() macro -to handle the new UART state parameters (gState, rxState)</span></li></ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="color: rgb(0, 0, 0); font-family: Verdana,sans-serif; font-size: 13.3333px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; float: none; display: inline ! important;">Add Transfer abort functions and callbacks</span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="color: rgb(0, 0, 0); font-family: Verdana,sans-serif; font-size: 13.3333px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; display: inline ! important; float: none;">Update HAL_UART_IRQHandler() to add a check on interrupt source before managing the error</span><span style="font-family: "Courier New"; color: rgb(31, 73, 125);" lang="EN-US"><span style=""><span style="font-family: "Times New Roman"; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"> </span></span></span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><p class="MsoNormal"><span style="font-family: Verdana,sans-serif; font-size: 10pt;"><span style="font-style: italic;"></span>DMA Receive process; the code -has been updated to clear the USART OVR flag before enabling DMA receive request.</span></p></li></ul></ul> - - - - -<ul style="margin-top: 0cm;" type="square"><li style="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;" class="MsoNormal"> - -<b><span style="font-size: 10pt; font-family: "Verdana",sans-serif;" lang="EN-US">HAL IRDA </span></b><span style="font-size: 10pt; font-family: "Verdana",sans-serif;" lang="EN-US">update<b><o:p></o:p></b></span> -</li><ul><li style="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;" class="MsoNormal"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Several update on HAL IRDA driver to implement the new UART state machine: </span></li></ul><ul><ul><li style="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;" class="MsoNormal"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Add new field in IRDA_HandleTypeDef structure: </span><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">"rxState", </span><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">IRDA</span><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;"> state information related to Rx Operations</span></li></ul></ul><ul><ul><li style="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;" class="MsoNormal"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Rename "state" field in UART_HandleTypeDef structure by "gstate": </span><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">IRDA</span><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;"> state information related to global Handle management and Tx Operations</span></li></ul></ul><ul><ul><li style="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;" class="MsoNormal"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Update IRDA process to manage the new UART states.</span></li></ul></ul><ul><ul><li style="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;" class="MsoNormal"><span style="font-size: 10pt; font-family: "Verdana",sans-serif; color: black;" lang="EN-US">Update __HAL_IRDA_RESET_HANDLE_STATE() macro -to handle the new IRDA state parameters (gState, rxState)</span></li></ul></ul><ul><li style="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;" class="MsoNormal"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Removal of IRDA_TIMEOUT_VALUE define</span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="color: rgb(0, 0, 0); font-family: Verdana,sans-serif; font-size: 13.3333px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; float: none; display: inline ! important;">Add Transfer abort functions and callbacks</span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="color: rgb(0, 0, 0); font-family: Verdana,sans-serif; font-size: 13.3333px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; display: inline ! important; float: none;">Update HAL_IRDA_IRQHandler() to add a check on interrupt source before managing the error</span><span style="font-family: "Courier New"; color: rgb(31, 73, 125);" lang="EN-US"><span style=""><span style="font-family: "Times New Roman"; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"> </span></span></span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><p class="MsoNormal"><span style="font-family: Verdana,sans-serif; font-size: 10pt;"><span style="font-style: italic;"></span>DMA Receive process; the code -has been updated to clear the USART OVR flag before enabling DMA receive request.</span></p></li></ul><li style="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;" class="MsoNormal"> - -<b><span style="font-size: 10pt; font-family: "Verdana",sans-serif;" lang="EN-US">HAL SMARTCARD </span></b><span style="font-size: 10pt; font-family: "Verdana",sans-serif;" lang="EN-US">update<b><o:p></o:p></b></span> -</li><ul><li style="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;" class="MsoNormal"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Several update on HAL SMARTCARD driver to implement the new UART state machine: </span></li><ul><li style="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;" class="MsoNormal"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Add new field in </span><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">SMARTCARD</span><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">_HandleTypeDef structure: </span><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">"rxState", </span><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">SMARTCARD</span><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">state information related to Rx Operations</span></li></ul><ul><li style="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;" class="MsoNormal"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Rename "state" field in UART_HandleTypeDef structure by "gstate": </span><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">SMARTCARD</span><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">state information related to global Handle management and Tx Operations</span></li></ul><ul><li style="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;" class="MsoNormal"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Update </span><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">SMARTCARD</span><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;"> process to manage the new UART states.</span></li></ul><ul><li style="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;" class="MsoNormal"><span style="font-size: 10pt; font-family: "Verdana",sans-serif; color: black;" lang="EN-US">Update __HAL_</span><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">SMARTCARD</span><span style="font-size: 10pt; font-family: "Verdana",sans-serif; color: black;" lang="EN-US">_RESET_HANDLE_STATE() macro -to handle the new </span><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">SMARTCARD</span><span style="font-size: 10pt; font-family: "Verdana",sans-serif; color: black;" lang="EN-US"> state parameters (gState, rxState)</span></li></ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="color: rgb(0, 0, 0); font-family: Verdana,sans-serif; font-size: 13.3333px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; float: none; display: inline ! important;">Add Transfer abort functions and callbacks</span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="color: rgb(0, 0, 0); font-family: Verdana,sans-serif; font-size: 13.3333px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; display: inline ! important; float: none;">Update HAL_SMARTCARD_IRQHandler() to add a check on interrupt source before managing the error</span><span style="font-family: "Courier New"; color: rgb(31, 73, 125);" lang="EN-US"><span style=""><span style="font-family: "Times New Roman"; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"> </span></span></span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><p class="MsoNormal"><span style="font-family: Verdana,sans-serif; font-size: 10pt;"><span style="font-style: italic;"></span>DMA Receive process; the code -has been updated to clear the USART OVR flag before enabling DMA receive request.</span></p></li></ul></ul><ul style="margin-bottom: 0in; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; margin-top: 0cm;" type="square"><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;"><span style="font-weight: bold;">HAL CAN </span>update</span></li><ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: "Verdana",sans-serif;" lang="EN-US">Add - management of overrun error. </span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: "Verdana",sans-serif;" lang="EN-US">Allow - possibility to receive messages from the 2 RX FIFOs in parallel via - interrupt.</span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: "Verdana",sans-serif;" lang="EN-US">Fix message - lost issue with specific sequence of transmit requests.</span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: "Verdana",sans-serif;" lang="EN-US">Handle - transmission failure with error callback, when NART is enabled.</span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: "Verdana",sans-serif; color: black;" lang="EN-US">Add __HAL_CAN_CANCEL_TRANSMIT() call to abort transmission when - timeout is reached</span></li></ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="color: rgb(0, 0, 0); font-family: Verdana,sans-serif; font-size: 13.3333px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; display: inline ! important; float: none;"><span style="font-weight: bold;">HAL TIM </span>update</span><span style="font-family: Verdana,sans-serif; font-size: 10pt;"></span></li><ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: 'Segoe UI'; color: rgb(0, 0, 0); direction: ltr;" dir="ltr">Add __HAL_TIM_MOE_DISABLE_UNCONDITIONALLY() macro to disable Master output without check on TIM channel state. </span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: 'Segoe UI'; color: rgb(0, 0, 0); direction: ltr;" dir="ltr"><span style="font-size: 10pt; font-family: Verdana,sans-serif;">Update HAL_TIMEx_ConfigBreakDeadTime() to fix TIM BDTR register corruption.</span></span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;">Update Input Capture polarity by removing non-supported "TIM_INPUTCHANNELPOLARITY_BOTHEDGE" define.</span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;">Update HAL_TIM_ConfigOCrefClear() API by removing the usage of non-existant SMCR OCCS bit.</span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;">Add -"AutoReloadPreload" field to TIM_Base_InitTypeDef structure and -corresponding macros __HAL_TIM_ENABLE_OCxPRELOAD() and -__HAL_TIM_DISABLE_OCxPRELOAD() .</span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;">Update TIM_Base_SetConfig() API to set the auto-reload preload.<br></span></li></ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="color: rgb(0, 0, 0); font-family: Verdana,sans-serif; font-size: 13.3333px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; display: inline ! important; float: none;"><span style="font-weight: bold;">HAL I2C </span>update</span></li><ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: "Verdana",sans-serif;" lang="EN-US">Update -HAL_I2C_Master_Transmit() and HAL_I2C_Slave_Transmit() to avoid sending -extra bytes at the end of the transmit processes</span><span style="font-size: 12pt; font-family: "Times New Roman",serif;" lang="EN-US"><o:p></o:p></span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: "Verdana",sans-serif;" lang="EN-US">Update - HAL_I2C_Mem_Read() API to fix wrong check on misused parameter �Size�</span><span style="font-size: 12pt; font-family: "Times New Roman",serif;" lang="EN-US"><o:p></o:p></span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: "Verdana",sans-serif;" lang="EN-US">Update - I2C_MasterReceive_RXNE() and I2C_MasterReceive_BTF() static APIs to - enhance Master sequential reception process.</span></li></ul><li class="MsoNormal" style="color: black;"><span style="color: rgb(0, 0, 0); font-family: Verdana,sans-serif; font-size: 13.3333px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; display: inline ! important; float: none;"><span style="font-weight: bold;">HAL SPI </span>update</span></li><ul><li class="MsoNormal" style="color: black;"><span style="color: rgb(0, 0, 0); font-family: Verdana,sans-serif; font-size: 13.3333px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; display: inline ! important; float: none;"></span><span style="font-size: 10pt; font-family: "Verdana",sans-serif;" lang="EN-US">Major Update to improve performance in - polling/interrupt mode to reach max frequency:</span></li><ul><li class="MsoNormal" style="color: black;"><span style="font-size: 10pt; font-family: "Verdana",sans-serif;" lang="EN-US">Polling mode :</span></li><ul><li class="MsoNormal" style="color: black;"><span style="font-size: 10pt; font-family: "Verdana",sans-serif;" lang="EN-US">Replace use of - SPI_WaitOnFlagUnitTimeout() funnction by "if" statement to - check on RXNE/TXE flage while transferring data.<o:p></o:p></span></li></ul><ul><li class="MsoNormal" style="color: black;"><span style="font-size: 10pt; font-family: "Verdana",sans-serif;" lang="EN-US">Use API data pointer instead of SPI - handle data pointer.<o:p></o:p></span></li></ul><li class="MsoNormal" style="color: black;"><span style="font-size: 10pt; font-family: "Verdana",sans-serif;" lang="EN-US">Use a Goto implementation instead of - "if..else" statements</span></li><li class="MsoNormal" style="color: black;"><span style="font-size: 10pt; font-family: "Verdana",sans-serif;" lang="EN-US">Interrupt mode</span></li><ul><li class="MsoNormal" style="color: black;"><span style="font-size: 10pt; font-family: "Verdana",sans-serif;" lang="EN-US">Minimize access on SPI registers.<o:p></o:p></span></li></ul><ul><li class="MsoNormal" style="color: black;"><span style="font-size: 10pt; font-family: "Verdana",sans-serif;" lang="EN-US">Split the SPI modes into dedicated - static functions to minimize checking statements under - HAL_IRQHandler():<o:p></o:p></span></li></ul><ul type="square"><ul><li class="MsoNormal" style="color: black;"><span style="font-size: 10pt; font-family: "Verdana",sans-serif;" lang="EN-US">1lines/2lines modes<o:p></o:p></span></li></ul><ul><li class="MsoNormal" style="color: black;"><span style="font-size: 10pt; font-family: "Verdana",sans-serif;" lang="EN-US">8 bit/ 16 bits data formats<o:p></o:p></span></li></ul><ul><li class="MsoNormal" style="color: black;"><span style="font-size: 10pt; font-family: "Verdana",sans-serif;" lang="EN-US">CRC calculation enabled/disabled.<o:p></o:p></span></li></ul></ul><li class="MsoNormal" style="color: black;"><span style="font-size: 10pt; font-family: "Verdana",sans-serif;" lang="EN-US">Remove waiting loop under ISR when - closing the communication.<o:p></o:p></span></li><li class="MsoNormal" style="color: black;"><span style="font-size: 10pt; font-family: "Verdana",sans-serif;" lang="EN-US">All modes: <o:p></o:p></span></li><ul><li class="MsoNormal" style="color: black;"><span style="font-size: 10pt; font-family: "Verdana",sans-serif;" lang="EN-US">Adding switch USE_SPI_CRC to minimize - number of statements when CRC calculation is disabled.<o:p></o:p></span></li></ul><ul><li class="MsoNormal" style="color: black;"><span style="font-size: 10pt; font-family: "Verdana",sans-serif;" lang="EN-US">Update Timeout management to check on - global process.<o:p></o:p></span></li></ul><ul><li class="MsoNormal" style="color: black;"><span style="font-size: 10pt; font-family: "Verdana",sans-serif;" lang="EN-US">Update Error code management in all - processes.</span></li></ul></ul><li class="MsoNormal" style="color: black;"><span style="font-size: 10pt; font-family: "Verdana",sans-serif;" lang="EN-US">Add note to the max frequencies reached in - all modes.</span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: "Verdana",sans-serif;" lang="EN-US">Add note about Master Receive mode - restrictions :</span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: "Verdana",sans-serif;" lang="EN-US">Master Receive mode restriction:<br> - (#) In Master unidirectional receive-only - mode (MSTR =1, BIDIMODE=0, RXONLY=0) or <br> - bidirectional - receive mode (MSTR=1, BIDIMODE=1, BIDIOE=0), to ensure that the SPI <br> - does not initiate - a new transfer the following procedure has to be respected:<br> - (##) - HAL_SPI_DeInit()<br> - (##) - HAL_SPI_Init()</span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: "Verdana",sans-serif;" lang="EN-US">Add transfer abort APIs and - associated callbacks in interrupt mode</span></li><ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: "Verdana",sans-serif;" lang="EN-US">HAL_SPI_Abort()</span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: "Verdana",sans-serif;" lang="EN-US">HAL_SPI_Abort_IT()</span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: "Verdana",sans-serif;" lang="EN-US">HAL_SPI_AbortCpltCallback()</span></li></ul></ul><li style="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;" class="MsoNormal"> - -<b><span style="font-size: 10pt; font-family: "Verdana",sans-serif;" lang="EN-US">HAL CEC </span></b><span style="font-size: 10pt; font-family: "Verdana",sans-serif;" lang="EN-US">update</span></li><ul style="margin-bottom: 0in;"><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;" lang="EN-US">Overall driver rework with break of compatibility with HAL V1.0.5<br></span></li></ul><ul style="margin-bottom: 0in;"><ul style="margin-bottom: 0in;"><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;" lang="EN-US">Remove the HAL CEC polling Process: HAL_CEC_Transmit() and HAL_CEC_Receive()</span><span style="font-family: 'Times New Roman',serif; font-size: 12pt;" lang="EN-US"><o:p></o:p></span></li></ul></ul><ul style="margin-bottom: 0in; margin-top: 0cm;" type="circle"><ul style="margin-bottom: 0in;"><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;" lang="EN-US">Remove the HAL CEC receive interrupt process (HAL_CEC_Receive_IT()) and manage the "Receive" mode enable within the Init phase</span></li><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;" lang="EN-US">Rename HAL_CEC_GetReceivedFrameSize() function to HAL_CEC_GetLastReceivedFrameSize() function<br></span></li></ul><ul style="margin-bottom: 0in;"><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;" lang="EN-US">Add new HAL APIs: HAL_CEC_SetDeviceAddress() and HAL_CEC_ChangeRxBuffer()</span></li></ul><ul style="margin-bottom: 0in;"><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;" lang="EN-US">Remove the <span></span>'InitiatorAddress' -field from the CEC_InitTypeDef structure and manage -it as a parameter in the HAL_CEC_Transmit_IT() function</span><span style="font-family: Verdana,sans-serif; font-size: 10pt;" lang="EN-US"></span></li></ul><ul style="margin-bottom: 0in;"><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;" lang="EN-US">Add new parameter 'RxFrameSize' in HAL_CEC_RxCpltCallback() function</span><span style="font-family: 'Times New Roman',serif; font-size: 12pt;" lang="EN-US"><o:p></o:p></span></li></ul><ul style="margin-bottom: 0in;"><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;" lang="EN-US">Move CEC Rx buffer pointer from CEC_HandleTypeDef structure to CEC_InitTypeDef structure</span><span style="font-family: Verdana,sans-serif; font-size: 10pt;" lang="EN-US"><o:p></o:p></span></li></ul></ul><ul style="margin-bottom: 0in;"><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;">Update driver to implement the new CEC state machine:</span></li></ul><ul style="margin-bottom: 0in;"><ul style="margin-bottom: 0in;"><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;">Add new </span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">"rxState"</span><span style="font-family: Verdana,sans-serif; font-size: 10pt;"><span class="Apple-converted-space"> </span>field in CEC_HandleTypeDef structure to provide the<span class="Apple-converted-space"> </span></span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">CEC<span class="Apple-converted-space"> </span></span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">state information related to Rx Operations</span></li></ul><ul style="margin-bottom: 0in;"><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;">Rename "state" field in CEC_HandleTypeDef structure to "gstate": CEC<span class="Apple-converted-space"> </span></span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">state information related to global Handle management and Tx Operations</span></li><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;">Update CEC process to manage the new CEC states.</span></li><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; color: black; font-size: 10pt;" lang="EN-US">Update __HAL_CEC_RESET_HANDLE_STATE() macro to handle the new CEC state parameters (gState, rxState)</span></li></ul></ul></ul> -<ul style="margin-bottom: 0in; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; margin-top: 0cm;" type="square"><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="color: rgb(0, 0, 0); font-family: Verdana,sans-serif; font-size: 13.3333px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; display: inline ! important; float: none;"><span style="font-weight: bold;">HAL I2S </span>update</span></li><ul><li class="MsoNormal" style="color: black;"><span style="font-size: 10pt; font-family: "Verdana",sans-serif; color: black;" lang="EN-US">Update I2S Transmit/Receive polling process to manage Overrun and Underrun errors</span></li><li class="MsoNormal" style="color: black;"><span style="font-size: 10pt; font-family: "Verdana",sans-serif; color: black;" lang="EN-US">HAL I2S driver ovall clean-up and optimization<br></span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: "Verdana",sans-serif; color: black;" lang="EN-US">HAL_I2S_Init() API updated to</span></li><ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: "Verdana",sans-serif; color: black;" lang="EN-US">Fix wrong I2S clock calculation when PCM mode is used.</span></li></ul><ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: "Verdana",sans-serif; color: black;" lang="EN-US">Return state </span><span style="font-size: 10pt; font-family: "Verdana",sans-serif; color: black;" lang="EN-US">HAL_I2S_ERROR_PRESCALER</span><span style="font-size: 10pt; font-family: "Verdana",sans-serif; color: black;" lang="EN-US"> when the I2S clock is wrongly configured</span></li></ul></ul><li style="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;" class="MsoNormal"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;"><span style="font-weight: bold;">HAL NAND</span> update</span></li><ul><li style="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;" class="MsoNormal"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Modify NAND_AddressTypeDef, NAND_DeviceConfigTypeDef and NAND_HandleTypeDef structures fields</span></li><li style="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;" class="MsoNormal"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Add new HAL_NAND_ConfigDevice API</span></li></ul></ul> -<ul style="margin-bottom: 0in; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; margin-top: 0cm;" type="square"><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;"><span style="font-weight: bold;">HAL USB</span><span class="Apple-converted-space"> <span style="font-weight: bold;">PCD</span> </span>update</span></li><ul><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;">Flush all TX FIFOs on USB Reset</span></li><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;">Remove Lock mechanism from HAL_PCD_EP_Transmit() and HAL_PCD_EP_Receive() API's</span></li></ul></ul><span style="font-size: 10pt; font-family: 'Segoe UI'; color: rgb(0, 0, 0); direction: ltr;" dir="ltr"></span><ul style="margin-bottom: 0in; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; margin-top: 0cm;" type="square"><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;"><span style="font-weight: bold;">LL USB</span><span class="Apple-converted-space"> </span>update</span></li><ul><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;">Enable DMA Burst mode for USB OTG HS</span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="color: rgb(0, 0, 0); font-family: Verdana,sans-serif; font-size: 13.3333px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; display: inline ! important; float: none;">Fix SD card detection issue</span></li></ul><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;"><span style="font-weight: bold;">LL SDMMC</span><span class="Apple-converted-space"> </span>update</span></li><ul><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;">Add new SDMMC_CmdSDEraseStartAdd, SDMMC_CmdSDEraseEndAdd, SDMMC_CmdOpCondition and SDMMC_CmdSwitch functions</span></li></ul></ul><h3 style="background: rgb(51, 102, 255) none repeat scroll 0% 50%; -moz-background-clip: initial; -moz-background-origin: initial; -moz-background-inline-policy: initial; margin-right: 500pt; width: 180px;"><span style="font-size: 10pt; font-family: Arial; color: white;">V1.0.5 / 06-December-2016 <o:p></o:p></span></h3> - - - - - - - - - - - - - - - - - - - - - <p class="MsoNormal" style="margin: 4.5pt 0cm 4.5pt 18pt;"><b style=""><u><span style="font-size: 10pt; font-family: Verdana; color: black;">Main -Changes</span></u></b></p> -<ul style="margin-top: 0cm;" type="square"><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-size: 10pt; font-family: Verdana,sans-serif;">General updates to fix mainly known I2C defects and enhancements implementation</span></li><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;"><span style="font-weight: bold;">The following changes done on the HAL drivers require an update on the application code based on HAL V1.0.4</span></span><span style="font-family: Verdana,sans-serif; font-size: 10pt;"></span></li><ul style="margin-bottom: 0in;"><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;"><span style="font-style: italic;">HAL I2C</span><span style="font-style: italic;"></span></span><span style="font-family: Verdana,sans-serif; font-size: 10pt;"><span style="font-style: italic;"></span><span class="Apple-converted-space"></span></span><span style="font-family: Verdana,sans-serif; font-size: 10pt;"><span style="font-style: italic;"><span class="Apple-converted-space"> </span></span>driver:</span><ul style="margin-bottom: 0in;"><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;">Add </span><span style="font-family: Verdana,sans-serif; font-size: 10pt;"><span class="Apple-converted-space"></span></span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">I2C</span><span style="font-family: Verdana,sans-serif; font-size: 10pt;"> </span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">error management during DMA process. This requires the following updates on </span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">user application:</span></li><ul style="margin-bottom: 0in;"><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;">Configure and enable the </span><span style="font-family: Verdana,sans-serif; font-size: 10pt;"><span class="Apple-converted-space"></span></span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">I2C</span><span style="font-family: Verdana,sans-serif; font-size: 10pt;"> </span><span style="font-family: Verdana,sans-serif; font-size: 10pt;"> IRQ in HAL_</span><span style="font-family: Verdana,sans-serif; font-size: 10pt;"><span class="Apple-converted-space"></span></span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">I2C</span><span style="font-family: Verdana,sans-serif; font-size: 10pt;"></span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">_MspInit() function<br></span></li></ul><ul style="margin-bottom: 0in;"><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;">In<span class="Apple-converted-space"> </span></span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">stm32f1xx_it.c file,<span class="Apple-converted-space"> </span></span><span style="font-family: Verdana,sans-serif; font-size: 10pt;"><span class="Apple-converted-space"></span></span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">I2C</span><span style="font-family: Verdana,sans-serif; font-size: 10pt;"> </span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">_IRQHandler() function:<span class="Apple-converted-space"> </span></span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">add a call to HAL_</span><span style="font-family: Verdana,sans-serif; font-size: 10pt;"><span class="Apple-converted-space"></span></span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">I2C</span><span style="font-family: Verdana,sans-serif; font-size: 10pt;"></span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">_IRQHandler() function</span></li><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;">Add and customize the Error Callback API: HAL_</span><span style="font-family: Verdana,sans-serif; font-size: 10pt;"><span class="Apple-converted-space"></span></span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">I2C</span><span style="font-family: Verdana,sans-serif; font-size: 10pt;"></span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">_ErrorCallback()</span></li></ul><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;">Update to avoid waiting on<span class="Apple-converted-space"> </span></span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">STOPF/BTF/AF flag under DMA ISR by using the<span class="Apple-converted-space"> </span></span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">I2C</span><span style="font-family: Verdana,sans-serif; font-size: 10pt;"> end of transfer interrupt in the</span><span style="font-family: Verdana,sans-serif; font-size: 10pt;"> DMA transfer process.</span><span style="font-family: Verdana,sans-serif; font-size: 10pt;"><span class="Apple-converted-space"> </span>This requires the following updates on </span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">user application</span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">:</span></li><ul style="margin-bottom: 0in;"><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;">Configure and enable the </span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">I2C</span><span style="font-family: Verdana,sans-serif; font-size: 10pt;"> IRQ in HAL_</span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">I2C</span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">_MspInit() function<br></span></li></ul></ul><ul style="margin-bottom: 0in;"><ul style="margin-bottom: 0in;"><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;">In<span class="Apple-converted-space"> </span></span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">stm32f1xx_it.c file,<span class="Apple-converted-space"> </span></span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">I2C</span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">_IRQHandler() function:<span class="Apple-converted-space"> </span></span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">add a call to HAL_</span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">I2C</span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">_IRQHandler() function</span></li></ul></ul></li><ul style="margin-bottom: 0in;"><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-size: 10pt; font-family: Verdana,sans-serif;"></span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">I2C -transfer processes IT update: NACK during addressing phase is managed -through I2C Error interrupt instead of HAL state</span></li></ul></ul><li><b><span style="font-size: 10pt; font-family: Verdana,sans-serif;" lang="EN-US">HAL I2C </span></b><span style="font-size: 10pt; font-family: Verdana,sans-serif;" lang="EN-US">update</span></li><ul style="margin-bottom: 0in;"><li><span style="font-size: 10pt; font-family: Verdana,sans-serif;" lang="EN-US">Add support of I2C repeated start feature:</span></li></ul><ul style="margin-bottom: 0in;"><ul style="margin-bottom: 0in;"><li><span style="font-size: 10pt; font-family: Verdana,sans-serif;" lang="EN-US">With the following new API's<br></span></li></ul></ul><ul style="margin-bottom: 0in;"><ul style="margin-bottom: 0in;"><ul style="margin-bottom: 0in;"><li><span style="font-size: 10pt; font-family: Verdana,sans-serif;" lang="EN-US">HAL_I2C_Master_Sequential_Transmit_IT()</span></li><li><span style="font-size: 10pt; font-family: Verdana,sans-serif;" lang="EN-US">HAL_I2C_Master_Sequential_Receive_IT()</span></li><li><span style="font-size: 10pt; font-family: Verdana,sans-serif;" lang="EN-US"></span><span style="font-size: 10pt; font-family: Verdana,sans-serif;" lang="EN-US">HAL_I2C_Master_Abort_IT()</span></li><li><span style="font-size: 10pt; font-family: Verdana,sans-serif;" lang="EN-US"></span><span style="font-size: 10pt; font-family: Verdana,sans-serif;" lang="EN-US">HAL_I2C_Slave_Sequential_Transmit_IT()</span></li><li><span style="font-size: 10pt; font-family: Verdana,sans-serif;" lang="EN-US"></span><span style="font-size: 10pt; font-family: Verdana,sans-serif;" lang="EN-US">HAL_I2C_Slave_Sequential_Receive_IT()</span></li><li><span style="font-size: 10pt; font-family: Verdana,sans-serif;" lang="EN-US"></span><span style="font-size: 10pt; font-family: Verdana,sans-serif;" lang="EN-US">HAL_I2C_EnableListen_IT()</span></li><li><span style="font-size: 10pt; font-family: Verdana,sans-serif;" lang="EN-US"></span><span style="font-size: 10pt; font-family: Verdana,sans-serif;" lang="EN-US">HAL_I2C_DisableListen_IT()</span></li></ul></ul><ul style="margin-bottom: 0in;"><li><span style="font-size: 10pt; font-family: "Verdana",sans-serif;" lang="EN-US">Add -new user callbacks:</span><span style="font-size: 10pt; font-family: Verdana,sans-serif;" lang="EN-US"></span></li></ul><ul style="margin-bottom: 0in;"><ul style="margin-bottom: 0in;"><li><span style="font-size: 10pt; font-family: Verdana,sans-serif;" lang="EN-US"></span><span style="font-size: 10pt; font-family: Verdana,sans-serif;" lang="EN-US">HAL_I2C_ListenCpltCallback()</span></li></ul><ul style="margin-bottom: 0in;"><li><span style="font-size: 10pt; font-family: Verdana,sans-serif;" lang="EN-US">HAL_I2C_AddrCallback()</span></li></ul></ul><li> - -<p class="MsoNormal"><span style="font-size: 10pt; font-family: "Verdana",sans-serif;" lang="EN-US">IRQ handler optimization: read -registers </span><span style="font-size: 10pt; font-family: "Verdana",sans-serif;" lang="EN-US">status</span><span style="font-size: 10pt; font-family: "Verdana",sans-serif;" lang="EN-US"> only once</span></p></li><li><span style="font-family: Verdana,sans-serif; font-size: 10pt;">I2C addressing phase is updated to be managed using interrupt instead of polling</span></li><ul><li><span style="font-family: Verdana,sans-serif; font-size: 10pt;"></span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">Add new static functions to manage I2C SB, ADDR and ADD10 flags</span></li></ul><li><span style="font-family: Verdana,sans-serif; font-size: 10pt;"></span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">I2C</span><span style="font-family: Verdana,sans-serif; font-size: 10pt;"> </span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">IT</span><span style="font-family: Verdana,sans-serif; font-size: 10pt;"></span><span style="font-family: Verdana,sans-serif; font-size: 10pt;"> transfer</span><span style="font-family: Verdana,sans-serif; font-size: 10pt;"> processes update: NACK during addressing phase is managed through I2C Error interrupt instead of HAL state</span></li><li><span style="font-size: 10pt; font-family: Verdana,sans-serif;" lang="EN-US">Update to generate STOP condition when a acknowledge failure error is detected </span></li><li><span style="font-size: 10pt; font-family: Verdana,sans-serif;" lang="EN-US">Update I2C_WaitOnFlagUntilTimeout() to manage the NACK feature.</span></li><li><span style="font-size: 10pt; font-family: Verdana,sans-serif;" lang="EN-US">Update I2C transmission process to support the case data size equal 0</span></li><li><span style="font-size: 10pt; font-family: Verdana,sans-serif;" lang="EN-US"></span><span style="font-size: 10pt; font-family: Verdana,sans-serif;" lang="EN-US">Update<span class="Apple-converted-space"> </span></span><span style="font-size: 10pt; font-family: Verdana,sans-serif;" lang="EN-US">Polling management:</span><span style="font-family: Verdana,sans-serif; font-size: 10pt;"></span></li><ul><li><span style="font-family: Verdana,sans-serif; font-size: 10pt;">The Timeout value must be estimated for the overall process duration: the Timeout measurement is cumulative</span></li></ul><li><span style="font-family: Verdana,sans-serif; font-size: 10pt;"></span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">Add the management of Abort service: Abort DMA transfer through interrupt</span></li><ul><li><span style="font-family: Verdana,sans-serif; font-size: 10pt;"></span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">In the case of Master Abort IT transfer usage:</span></li></ul><ul><ul><li><span style="font-family: Verdana,sans-serif; font-size: 10pt;"></span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">Add new user HAL_I2C_AbortCpltCallback() to inform user of the end of abort process</span></li></ul></ul><ul><ul><li><span style="font-family: Verdana,sans-serif; font-size: 10pt;"></span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">A new abort state is defined in the<span class="Apple-converted-space"> </span></span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">HAL_I2C_StateTypeDef<span class="Apple-converted-space"> </span></span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">structure</span></li></ul></ul><li><span style="font-family: Verdana,sans-serif; font-size: 10pt;"></span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">Add -the management of I2C peripheral errors, ACK failure and STOP condition -detection during DMA process. This requires the following updates on -user application:</span></li><ul><li><span style="font-family: Verdana,sans-serif; font-size: 10pt;"></span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">Configure and enable the I2C IRQ in HAL_I2C_MspInit() function</span></li></ul><ul><li><span style="font-family: Verdana,sans-serif; font-size: 10pt;"></span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">In stm32f1xx_it.c file, I2C_IRQHandler() function: add a call to HAL_I2C_IRQHandler() function</span></li></ul><ul><li><span style="font-family: Verdana,sans-serif; font-size: 10pt;"></span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">Add and customize the Error Callback API: HAL_I2C_ErrorCallback()</span></li></ul><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;">Update to avoid waiting on<span class="Apple-converted-space"> </span></span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">STOPF/BTF/AF flag under DMA ISR by using the<span class="Apple-converted-space"> I2C</span></span><span style="font-family: Verdana,sans-serif; font-size: 10pt;"> end of transfer interrupt in the </span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">DMA transfer process.</span><span style="font-family: Verdana,sans-serif; font-size: 10pt;"><span class="Apple-converted-space"> </span>This requires the following updates on </span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">user application</span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">:</span></li><ul style="margin-bottom: 0in;"><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;">Configure and enable the I2C IRQ in HAL_I2C_MspInit() function<br></span></li></ul><ul style="margin-bottom: 0in;"><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;">In<span class="Apple-converted-space"> </span></span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">stm32f1xx_it.c file,<span class="Apple-converted-space"> </span></span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">I2C_IRQHandler() function:<span class="Apple-converted-space"> </span></span><span style="font-family: Verdana,sans-serif; font-size: 10pt;">add a call to HAL_I2C_IRQHandler() function</span></li></ul><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-size: 10pt; font-family: Verdana,sans-serif; color: black;" lang="EN-US">Add a </span><span style="font-size: 10pt; font-family: Verdana,sans-serif; color: black;" lang="EN-US">check if the I2C is already enabled<span class="Apple-converted-space"> </span></span><span style="font-size: 10pt; font-family: Verdana,sans-serif; color: black;" lang="EN-US">at start of all I2C API's.</span></li><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><p class="MsoNormal" style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman',serif;"><span style="font-size: 10pt; font-family: Verdana,sans-serif; color: black;" lang="EN-US">Update I2C API's<span class="Apple-converted-space"> </span></span><span style="font-size: 10pt; font-family: Verdana,sans-serif; color: black;" lang="EN-US">(Polling, IT, DMA interfaces)</span><span style="font-size: 10pt; font-family: Verdana,sans-serif; color: black;" lang="EN-US"><span class="Apple-converted-space"> </span>to use hi2c->XferSize and hi2c->XferCount instead of size<span class="Apple-converted-space"> </span><br>parameter to help user to get information of counter in case of error<br></span></p></li></ul><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><b><span style="font-size: 10pt; font-family: Verdana,sans-serif;" lang="EN-US">HAL<span class="Apple-converted-space"> </span><span style="font-style: italic;">DMA</span></span></b><span style="font-size: 10pt; font-family: Verdana,sans-serif;"><span style="font-style: italic;"><span class="Apple-converted-space"> </span></span></span><span style="font-size: 10pt; font-family: Verdana,sans-serif;" lang="EN-US">update</span></li><ul><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;">Add new API HAL_DMA_Abort_IT() to abort DMA transfer under interrupt context<br></span></li><ul style="margin-bottom: 0in;"><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;">The new registered Abort callback is called when DMA transfer abortion is completed</span></li></ul></ul><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><b><span style="font-size: 10pt; font-family: Verdana,sans-serif;" lang="EN-US">HAL ETH<span class="Apple-converted-space"> </span></span></b><span style="font-size: 10pt; font-family: Verdana,sans-serif;" lang="EN-US">update<b><o:p></o:p></b></span></li><ul style="margin-bottom: 0in;"><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;">Remove ETH MAC debug register defines</span></li></ul><li><b><span style="font-size: 10pt; font-family: Verdana,sans-serif;" lang="EN-US">HAL DAC </span></b><span style="font-size: 10pt; font-family: Verdana,sans-serif;" lang="EN-US">update</span></li><ul style="margin-bottom: 0in;"><li><span style="font-size: 10pt; font-family: Verdana,sans-serif;" lang="EN-US"></span><span style="font-size: 10pt; font-family: Verdana,sans-serif;" lang="EN-US"></span><span style="font-size: 10pt; font-family: Verdana,sans-serif;" lang="EN-US">Clean up: remove the following literals that aren't used </span></li></ul><ul style="margin-bottom: 0in;"><ul style="margin-bottom: 0in;"><li><span style="font-size: 10pt; font-family: Verdana,sans-serif;" lang="EN-US">DAC_WAVE_NOISE</span></li><li><span style="font-size: 10pt; font-family: Verdana,sans-serif;" lang="EN-US">DAC_WAVE_TRIANGLE</span></li></ul></ul></ul><h3 style="background: rgb(51, 102, 255) none repeat scroll 0% 50%; -moz-background-clip: initial; -moz-background-origin: initial; -moz-background-inline-policy: initial; margin-right: 500pt; width: 180px;"><span style="font-size: 10pt; font-family: Arial; color: white;">V1.0.4 / 29-April-2016 <o:p></o:p></span></h3> - - - - - - - - - - - - - - - - - - - - - <p class="MsoNormal" style="margin: 4.5pt 0cm 4.5pt 18pt;"><b style=""><u><span style="font-size: 10pt; font-family: Verdana; color: black;">Main -Changes</span></u></b><b style=""><u><span style="font-size: 10pt; font-family: Verdana; color: black;"><o:p></o:p></span></u></b> - - - - - - - - - - - - <span style="font-size: 10pt; font-family: Verdana;"></span> - - - - <span style="font-size: 10pt; font-family: Verdana;"></span> - - - - <span style="font-size: 10pt; font-family: Verdana;"></span><span style="font-size: 10pt; font-family: Verdana;"></span> - - - - - - - - - <span style="font-size: 10pt; font-family: Verdana;"></span> - - - - - - - - - <span style="font-size: 10pt; font-family: Verdana;"></span> - - - - - - - - <span style="font-size: 10pt; font-family: Verdana;"></span> - - - - - - - <span style="font-size: 10pt; font-family: Verdana;"></span> - - <span style="font-size: 10pt; font-family: Verdana;"></span> - - - - - - - - - - - </p><ul style="list-style-type: square;"><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: Verdana,sans-serif;">General updates to fix known defects and enhancements implementation.</span></li></ul> - - - - - - - - - - - - <span style="font-size: 10pt; font-family: Verdana;"></span> - - - - <span style="font-size: 10pt; font-family: Verdana;"></span> - - - - <span style="font-size: 10pt; font-family: Verdana;"></span><span style="font-size: 10pt; font-family: Verdana;"></span> - - - - - - - - - <span style="font-size: 10pt; font-family: Verdana;"></span> - - - - - - - - - <span style="font-size: 10pt; font-family: Verdana;"></span> - - - - - - - - <span style="font-size: 10pt; font-family: Verdana;"></span> - - - - - - - <span style="font-size: 10pt; font-family: Verdana;"></span> - - <span style="font-size: 10pt; font-family: Verdana;"></span> - - - - - - - - - - - <ul style="list-style-type: square;"><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt; font-weight: bold;"><span style="font-size: 10pt; font-family: Verdana,sans-serif;">HAL RCC</span></li><ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">Add suffix U for defines equals to 0xFFFFFFFF (fix MISRA error 10.6)</li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">Optimization of HAL_RCC_ClockConfig().</li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">Replace aAPBAHBPrescTable by APBPrescTable and AHBPrescTable defined inside system_stm32f1xx.c.</li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">When using HAL_RCC_OscConfig -to activate LSE, if LSE is already ON, it remains in its state ON. -Previously, it was turned OFF then ON in all cases.</li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">The backup domain is no more reset when changing the RTC clock source from reset value.</li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">Correct strange behavior in HAL_RCCEx_PeriphCLKConfig.</li></ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt; font-weight: bold;">HAL UART</li><ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">Correct the macro UART_BRR_SAMPLING16</li></ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt; font-weight: bold;">HAL SMARTCARD</li><ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">Correct the macro SMARTCARD_BRR</li></ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt; font-weight: bold;">HAL IRDA</li><ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">Correct the macro IRDA_BRR</li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">EIE bit is no more activated in transmit (this bit only triggers errors in reception)</li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">EIE bit is reset at the end of the reception.</li></ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt; font-weight: bold;">HAL DMA</li><ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">Add macro __HAL_DMA_GET_COUNTER to get the number of remaining data units in the current channel.</li></ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt; font-weight: bold;">HAL FSMC</li><ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">Adapt FSMC_NAND_Init behavior to the others STM32 series by reseting the bit FSMC_PCRx_PBKEN.</li></ul></ul><h3 style="background: rgb(51, 102, 255) none repeat scroll 0% 50%; -moz-background-clip: initial; -moz-background-origin: initial; -moz-background-inline-policy: initial; margin-right: 500pt; width: 180px;"><span style="font-size: 10pt; font-family: Arial; color: white;">V1.0.3 / 11-January-2016 <o:p></o:p></span></h3> - - - - - - - - - - - - - - - - - - - - - <p class="MsoNormal" style="margin: 4.5pt 0cm 4.5pt 18pt;"><b style=""><u><span style="font-size: 10pt; font-family: Verdana; color: black;">Main -Changes<o:p></o:p></span></u></b></p> - - - - - - - - - - - - <span style="font-size: 10pt; font-family: Verdana;"></span> - - - - <span style="font-size: 10pt; font-family: Verdana;"></span> - - - - <span style="font-size: 10pt; font-family: Verdana;"></span><span style="font-size: 10pt; font-family: Verdana;"></span> - - - - - - - - - <span style="font-size: 10pt; font-family: Verdana;"></span> - - - - - - - - - <span style="font-size: 10pt; font-family: Verdana;"></span> - - - - - - - - <span style="font-size: 10pt; font-family: Verdana;"></span> - - - - - - - <span style="font-size: 10pt; font-family: Verdana;"></span> - - <span style="font-size: 10pt; font-family: Verdana;"></span> - - - - - - - - - - - <ul style="list-style-type: square;"><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: Verdana,sans-serif;">Remove the </span>#if defined(USE_HAL_LEGACY) condition to include Legacy/stm32_hal_legacy.h by default, in stm32f1xx_hal_def.h.</li></ul><h3 style="background: rgb(51, 102, 255) none repeat scroll 0% 50%; -moz-background-clip: initial; -moz-background-origin: initial; -moz-background-inline-policy: initial; margin-right: 500pt; width: 180px;"><span style="font-size: 10pt; font-family: Arial; color: white;">V1.0.2 / 18-December-2015 <o:p></o:p></span></h3> - - - - - - - - - - - - - - - - - - - - - <p class="MsoNormal" style="margin: 4.5pt 0cm 4.5pt 18pt;"><b style=""><u><span style="font-size: 10pt; font-family: Verdana; color: black;">Main -Changes<o:p></o:p></span></u></b></p> - - - - - - - - - - - - <span style="font-size: 10pt; font-family: Verdana;"></span> - - - - <span style="font-size: 10pt; font-family: Verdana;"></span> - - - - <span style="font-size: 10pt; font-family: Verdana;"></span><span style="font-size: 10pt; font-family: Verdana;"></span> - - - - - - - - - <span style="font-size: 10pt; font-family: Verdana;"></span> - - - - - - - - - <span style="font-size: 10pt; font-family: Verdana;"></span> - - - - - - - - <span style="font-size: 10pt; font-family: Verdana;"></span> - - - - - - - <span style="font-size: 10pt; font-family: Verdana;"></span> - - <span style="font-size: 10pt; font-family: Verdana;"></span> - - - - - - - - - - - <ul style="list-style-type: square;"><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: Verdana,sans-serif;">General updates to fix known defects and enhancements implementation.</span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;"><span style="font-weight: bold;">HAL generic</span></span></li><ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Insure that do {} while(0) are used in in multi statement macros. (hal eth and pcd)</span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Manage simultaneous errors in IRQHandler. (hal uart, smartcard, usart and uart)</span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">To -ensure the full compatibility of the GPIO interfaces across all the -STM32 families, the gpio speed definition have been renamed:</span></li><ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">GPIO_SPEED_LOW to GPIO_SPEED_FREQ_LOW</span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">GPIO_SPEED_MEDIUM to GPIO_SPEED_FREQ_MEDIUM</span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">GPIO_SPEED_HIGH to GPIO_SPEED_FREQ_HIGH</span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">aliases are created to keep backward compatibility</span></li></ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">Reduce the default timeout value for the startup of the HSE form 5s to 100ms.</li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">Update HAL weak empty callbacks to prevent unused argument compilation warnings with some compilers.</li></ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt; font-weight: bold;">HAL ADC</li><ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">Remove useless state HAL_ADC_STATE_REG_OVR and HAL_ADC_STATE_REG_EOSMP.</li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">Add an error case if init is done with both continuous and discontinuous modes.</li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">HAL_ADC_PollForEvent returns HAL_TIMEOUT if a timeout occurs instead of HAL_ERROR.</li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">Trigger the assert_param of the number of discontinuous conversion only if the discontinuous mode is enabled.</li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">Enhance the check for ScanConvMode in HAL_ADC_Init.</li></ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt; font-weight: bold;">HAL CAN</li><ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">Clear the ERRI bit in HAL_CAN_IRQHandler.</li></ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt; font-weight: bold;">HAL CORTEX</li><ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">Remove the macro __HAL_CORTEX_SYSTICKCLK_CONFIG as duplicated by HAL_SYSTICK_CLKSourceConfig.</li><ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">Create an alias to HAL_SYSTICK_CLKSourceConfig for backward compatibility.</li></ul></ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt; font-weight: bold;">HAL FLASH</li><ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">The -parameter ReturnValue of HAL_FLASH_EndOfOperationCallback, in the case -of Pages Erase, now take the value of 0xFFFFFFFF if all the selected -pages have been erased.</li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">Add a new interface HAL_FLASHEx_OBGetUserData to get the option byte user data.</li></ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt; font-weight: bold;">HAL GPIO</li><ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">Remove a useless assert_param on the pull mode in HAL_GPIO_Init.</li></ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt; font-weight: bold;">HAL I2C</li><ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">Correct issue at reception of 2 bytes using memory polling and IT interface.</li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">Correct a wrong management of the AF flag.</li></ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt; font-weight: bold;">HAL RCC</li><ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">Reduce the timeout of HSI, LSI and PLL to be closer to HW specifications:</li><ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">HSI_TIMEOUT_VALUE reduced from 100ms to 2ms</li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">LSI_TIMEOUT_VALUE reduced from 100ms to 2ms</li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">PLL_TIMEOUT_VALUE reduced from 100ms to 2ms</li></ul></ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt; font-weight: bold;">HAL SD</li><ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">Correct wrong calculation of the capacity for High Capacity cards.</li></ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt; font-weight: bold;">HAL SPI</li><ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">Remove incorrect reset of DMA parameter in HAL_SPI_Receive_DMA and HAL_SPI_Transmit_DMA.</li></ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt; font-weight: bold;">HAL TIM</li><ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">Remove useless assert_param.</li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">Rewrite the assert_param when setting clock source.</li></ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt; font-weight: bold;">HAL UART</li><ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">Manage the case of reception of a character while the driver is not expecting one. This was causing a crash of the driver.</li></ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt; font-weight: bold;">LL USB</li><ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">Remove the NoVbusSensing feature from driver. (feature not present on STM32F1xx)</li></ul></ul><h3 style="background: rgb(51, 102, 255) none repeat scroll 0% 50%; -moz-background-clip: initial; -moz-background-origin: initial; -moz-background-inline-policy: initial; margin-right: 500pt; width: 180px;"><span style="font-size: 10pt; font-family: Arial; color: white;">V1.0.1 / 31-July-2015 <o:p></o:p></span></h3> - - - - - - - - - - - - - - - - - - - - - <p class="MsoNormal" style="margin: 4.5pt 0cm 4.5pt 18pt;"><b style=""><u><span style="font-size: 10pt; font-family: Verdana; color: black;">Main -Changes<o:p></o:p></span></u></b></p> - - - - - - - - - - - - <span style="font-size: 10pt; font-family: Verdana;"></span> - - - - <span style="font-size: 10pt; font-family: Verdana;"></span> - - - - <span style="font-size: 10pt; font-family: Verdana;"></span><span style="font-size: 10pt; font-family: Verdana;"></span> - - - - - - - - - <span style="font-size: 10pt; font-family: Verdana;"></span> - - - - - - - - - <span style="font-size: 10pt; font-family: Verdana;"></span> - - - - - - - - <span style="font-size: 10pt; font-family: Verdana;"></span> - - - - - - - <span style="font-size: 10pt; font-family: Verdana;"></span> - - <span style="font-size: 10pt; font-family: Verdana;"></span> - - - - - - - - - - - <ul style="list-style-type: square;"><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: Verdana,sans-serif;">General updates to fix known defects and enhancements implementation.</span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;"><span style="font-weight: bold;">HAL generic</span></span></li><ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">stm32f1xx_hal_def.h</span></li><ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Update NULL definition </span><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">to -fix C++ compilation issue.</span></li></ul></ul></ul><ul style="list-style-type: square;"><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;"><span style="font-weight: bold;">HAL ADC</span></span></li><ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Optimization of </span><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">macro __HAL_ADC_CLEAR_FLAG.</span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">ADC poll for conversion now return error status in case of ADC-DMA mode.</span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">ADC polling functions now return HAL_TIMEOUT (or HAL_ERROR in case of configuration error).</span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Removing field NbrOfConversionRank of ADC_HandleTypeDef. This field was useless on STM32F1xx.</span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Improving the ADC state machine.<span style="font-weight: bold;"><br></span></span></li></ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt; font-weight: bold;">HAL CAN</li><ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">Field Data of CanRxMsgTypeDef and CanTxMsgTypeDef is changed from uint32_t to uint8_t.</li></ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt; font-weight: bold;">HAL Cortex</li><ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">Add MPU APIs in Cortex HAL driver.</li></ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt; font-weight: bold;">HAL CRC</li><ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">Correcting a wrong definition of __HAL_CRC_SET_IDR macro.</li></ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt; font-weight: bold;"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">HAL DAC</span></li><ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">HAL_IS_BIT_SET is nowused properly in HAL_DAC_Start.</span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Add 2 defines: DAC_WAVEGENERATION_NOISE and DAC_WAVEGENERATION_TRIANGLE.</span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">HAL_DAC_Stop now disable DAC software conversion.</span></li></ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt; font-weight: bold;">HAL DMA</li><ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">Minor typographic updates.</li></ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt; font-weight: bold;">HAL ETH</li><ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">ETH_MAC_READCONTROLLER_FLUSHING: Removing a space in the middle of the name.</li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">Removing some duplicated macros.</li></ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt; font-weight: bold;">HAL FLASH</li><ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">FLASH_OB_GetRDP -returns uint32_t instead of FlagStatus. (internal function). This -permit a more coherent use for HAL_FLASHEx_OBGetConfig -and HAL_FLASHEx_OBProgram.</li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">Correct an issue making impossible to set Flash read protection level1 and level2.</li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">The activation of backup domain in RCC is systematic.</li></ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt; font-weight: bold;">HAL I2C</li><ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">Correct an issue depending of APB/I2C frequency which was preventing the STOP bit to be cleared.</li><ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">The POS bit is now cleared at the beginning of each I2C API.</li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">The POS bit is no more cleared near STOP generation.</li></ul></ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt; font-weight: bold;">HAL I2S</li><ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">HAL_I2S_Transmit() API is updated to keep the check on busy flag only for the slave.</li></ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;"><span style="font-weight: bold;">HAL NAND</span></span><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;"></span></li><ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Review __ARRAY_ADDRESS macro and adapt tests to detect bad blocks</span></li></ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt; font-weight: bold;">HAL RCC</li><ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">In HAL_RCCEx_PeriphCLKConfig, Reset backup domain only if RTC clock source has been changed.</li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">Update of HAL_RCC_OscConfig functionto correctly check LSEState.</li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">Rework __HAL_RCC_LSE_CONFIG macro to manage correctly LSE_Bypass.</li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">New HAL RCC macro to configure the SYSCLK clock source: __HAL_RCC_SYSCLK_CONFIG(__RCC_SYSCLKSOURCE__).</li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">Adding macro: __HAL_RCC_MCO_CONFIG.</li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">For some RPN, the prediv source management in HAL_RCC_OscConfig function was not used.</li></ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt; font-weight: bold;">HAL RTC</li><ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">CMSIS mask definition used instead of hardcoded values.</li></ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt; font-weight: bold;">HAL SMARTCARD</li><ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">Improve documentation</li></ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt; font-weight: bold;">HAL TIM</li><ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">All STM32F101xx and STM32F102xx defines were missing in the file stm32f1xx_hal_tim_ex.h.</li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">The assert on trigger polarity for TI1F_ED is removed.</li></ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt; font-weight: bold;">HAL USB</li><ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">Correct issue preventing USB Device double-buffering mode for IN endpoints to correctly behave.</li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">Correct a bad configuration of Turnaround Time.</li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">Correct USB_FlushTxFifo function which was leading to a GRSTCTL register corruption.</li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;">Replaced -the access to USB_OTG_HCCHAR_CHDIS and USB_OTG_HCCHAR_CHENA -from a sequencial access to a simultaneous access.</li></ul></ul><h3 style="background: rgb(51, 102, 255) none repeat scroll 0% 50%; -moz-background-clip: initial; -moz-background-origin: initial; -moz-background-inline-policy: initial; margin-right: 500pt; width: 180px;"><span style="font-size: 10pt; font-family: Arial; color: white;">V1.0.0 / 15-December-2014</span></h3><p class="MsoNormal" style="margin: 4.5pt 0cm 4.5pt 18pt;"><b style=""><u><span style="font-size: 10pt; font-family: Verdana; color: black;">Main -Changes</span></u></b></p> -<ul style="margin-top: 0cm;" type="square"><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: Verdana;">First Official release of <span style="font-weight: bold;">STM32F1xx HAL -Drivers</span> for all STM32F1</span><span style="font-size: 10pt; font-family: Verdana;"></span><span style="font-size: 10pt; font-family: Verdana;"> </span><span style="font-size: 10pt; font-family: Verdana;"></span><span style="font-size: 10pt; font-family: Verdana;">devices</span><span style="font-size: 10pt; font-family: Verdana;">.</span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;"></span><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">This -release is in line with <span style="font-weight: bold;">STM32Cube -Firmware specification Rev1.0</span> document </span></li></ul><h2 style="background: rgb(51, 102, 255) none repeat scroll 0% 50%; -moz-background-clip: initial; -moz-background-origin: initial; -moz-background-inline-policy: initial;"><a name="License"></a><span style="font-size: 12pt; color: white;">License<o:p></o:p></span></h2> - <div style="text-align: justify;"> - <div style="text-align: justify;"><font size="-1"><span style="font-family: "Verdana","sans-serif";"> -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met:</span><br> - </font> - <ol><li><font size="-1"><span style="font-family: "Verdana","sans-serif";">Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.</span><span style="font-family: "Verdana","sans-serif";"></span></font></li><li><font size="-1"><span style="font-family: "Verdana","sans-serif";">Redistributions -in binary form must reproduce the above copyright notice, this list of -conditions and the following disclaimer in </span><span style="font-family: "Verdana","sans-serif";">the documentation and/or other materials provided with the distribution.</span><span style="font-family: "Verdana","sans-serif";"></span></font></li><li><font size="-1"><span style="font-family: "Verdana","sans-serif";">Neither the name of STMicroelectronics nor the names of its contributors may be used to endorse or promote products derived </span><br> - </font> - </li></ol> - <font size="-1"><span style="font-family: "Verdana","sans-serif";"> from this software without specific prior written permission.</span><br> - <span style="font-family: "Verdana","sans-serif";"></span><br> - <span style="font-family: "Verdana","sans-serif";">THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED</span><span style="font-family: "Verdana","sans-serif";"> WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A </span><span style="font-family: "Verdana","sans-serif";">PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY </span><span style="font-family: "Verdana","sans-serif";">DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, </span><span style="font-family: "Verdana","sans-serif";">PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER</span><span style="font-family: "Verdana","sans-serif";"> CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR </span><span style="font-family: "Verdana","sans-serif";">OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span></font> - - </div> -<span style="font-family: "Verdana","sans-serif";"></span></div> -<span style="font-size: 10pt; font-family: "Verdana","sans-serif"; color: black;"></span> - <div class="MsoNormal" style="text-align: center;" align="center"><span style="color: black;"> - <hr align="center" size="2" width="100%"> - </span></div> - <p class="MsoNormal" style="margin: 4.5pt 0in 4.5pt 0.25in; text-align: center;" align="center"><span style="font-size: 10pt; font-family: "Verdana","sans-serif"; color: black;">For - complete documentation on </span><span style="font-size: 10pt; font-family: "Verdana","sans-serif";">STM32<span style="color: black;"> - Microcontrollers visit </span><u><span style="color: blue;"><a href="http://www.st.com/internet/mcu/family/141.jsp" target="_blank">www.st.com/STM32</a></span></u></span><span style="color: black;"><o:p></o:p></span></p> - </td> - </tr> - </tbody></table> - <p class="MsoNormal"><span style="font-size: 10pt;"><o:p></o:p></span></p> - </td> - </tr> -</tbody></table> - -</div> - -<p class="MsoNormal"><o:p> </o:p></p> - -</div></body></html>
\ No newline at end of file diff --git a/workspace/TS100/HAL_Driver/STM32F100xE_User_Manual.chm b/workspace/TS100/HAL_Driver/STM32F100xE_User_Manual.chm Binary files differdeleted file mode 100644 index acb4bc98..00000000 --- a/workspace/TS100/HAL_Driver/STM32F100xE_User_Manual.chm +++ /dev/null diff --git a/workspace/TS100/HAL_Driver/STM32F103xB_User_Manual.chm b/workspace/TS100/HAL_Driver/STM32F103xB_User_Manual.chm Binary files differdeleted file mode 100644 index 37e65222..00000000 --- a/workspace/TS100/HAL_Driver/STM32F103xB_User_Manual.chm +++ /dev/null diff --git a/workspace/TS100/HAL_Driver/STM32F103xG_User_Manual.chm b/workspace/TS100/HAL_Driver/STM32F103xG_User_Manual.chm Binary files differdeleted file mode 100644 index 6b9bac8a..00000000 --- a/workspace/TS100/HAL_Driver/STM32F103xG_User_Manual.chm +++ /dev/null diff --git a/workspace/TS100/HAL_Driver/STM32F107xC_User_Manual.chm b/workspace/TS100/HAL_Driver/STM32F107xC_User_Manual.chm Binary files differdeleted file mode 100644 index 05562400..00000000 --- a/workspace/TS100/HAL_Driver/STM32F107xC_User_Manual.chm +++ /dev/null diff --git a/workspace/TS100/HAL_Driver/Src/stm32f1xx_hal_timebase_rtc_alarm_template.c b/workspace/TS100/HAL_Driver/Src/stm32f1xx_hal_timebase_rtc_alarm_template.c deleted file mode 100644 index 7649cac2..00000000 --- a/workspace/TS100/HAL_Driver/Src/stm32f1xx_hal_timebase_rtc_alarm_template.c +++ /dev/null @@ -1,307 +0,0 @@ -/** - ****************************************************************************** - * @file stm32f1xx_hal_timebase_rtc_alarm_template.c - * @author MCD Application Team - * @version V1.1.1 - * @date 12-May-2017 - * @brief HAL time base based on the hardware RTC_ALARM. - * - * This file override the native HAL time base functions (defined as weak) - * to use the RTC ALARM for time base generation: - * + Intializes the RTC peripheral to increment the seconds registers each 1ms - * + The alarm is configured to assert an interrupt when the RTC reaches 1ms - * + HAL_IncTick is called at each Alarm event and the time is reset to 00:00:00 - * + HSE (default), LSE or LSI can be selected as RTC clock source - @verbatim - ============================================================================== - ##### How to use this driver ##### - ============================================================================== - [..] - This file must be copied to the application folder and modified as follows: - (#) Rename it to 'stm32f1xx_hal_timebase_rtc_alarm.c' - (#) Add this file and the RTC HAL drivers to your project and uncomment - HAL_RTC_MODULE_ENABLED define in stm32f1xx_hal_conf.h - - [..] - (@) HAL RTC alarm and HAL RTC wakeup drivers can�t be used with low power modes: - The wake up capability of the RTC may be intrusive in case of prior low power mode - configuration requiring different wake up sources. - Application/Example behavior is no more guaranteed - (@) The stm32f1xx_hal_timebase_tim use is recommended for the Applications/Examples - requiring low power modes - - @endverbatim - ****************************************************************************** - * @attention - * - * <h2><center>© COPYRIGHT(c) 2017 STMicroelectronics</center></h2> - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * 3. Neither the name of STMicroelectronics nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - ****************************************************************************** - */ - -/* Includes ------------------------------------------------------------------*/ -#include "stm32f1xx_hal.h" -/** @addtogroup STM32F1xx_HAL_Driver - * @{ - */ - -/** @defgroup HAL_TimeBase_RTC_Alarm_Template HAL TimeBase RTC Alarm Template - * @{ - */ - -/* Private typedef -----------------------------------------------------------*/ -/* Private define ------------------------------------------------------------*/ - -/* Uncomment the line below to select the appropriate RTC Clock source for your application: - + RTC_CLOCK_SOURCE_HSE: can be selected for applications requiring timing precision. - + RTC_CLOCK_SOURCE_LSE: can be selected for applications with low constraint on timing - precision. - + RTC_CLOCK_SOURCE_LSI: can be selected for applications with low constraint on timing - precision. - */ -#define RTC_CLOCK_SOURCE_HSE -/* #define RTC_CLOCK_SOURCE_LSE */ -/* #define RTC_CLOCK_SOURCE_LSI */ - -/* Private macro -------------------------------------------------------------*/ -/* Private variables ---------------------------------------------------------*/ -RTC_HandleTypeDef hRTC_Handle; -/* Private function prototypes -----------------------------------------------*/ -void RTC_Alarm_IRQHandler(void); -/* Private functions ---------------------------------------------------------*/ - -/** - * @brief This function configures the RTC_ALARMA as a time base source. - * The time source is configured to have 1ms time base with a dedicated - * Tick interrupt priority. - * @note This function is called automatically at the beginning of program after - * reset by HAL_Init() or at any time when clock is configured, by HAL_RCC_ClockConfig(). - * @param TickPriority: Tick interrupt priority. - * @retval HAL status - */ -HAL_StatusTypeDef HAL_InitTick (uint32_t TickPriority) -{ - __IO uint32_t counter = 0U; - - RCC_OscInitTypeDef RCC_OscInitStruct; - RCC_PeriphCLKInitTypeDef PeriphClkInitStruct; - -#ifdef RTC_CLOCK_SOURCE_LSE - /* Configue LSE as RTC clock soucre */ - RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSE; - RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; - RCC_OscInitStruct.LSEState = RCC_LSE_ON; - PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSE; -#elif defined (RTC_CLOCK_SOURCE_LSI) - /* Configue LSI as RTC clock soucre */ - RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSI; - RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; - RCC_OscInitStruct.LSIState = RCC_LSI_ON; - PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSI; -#elif defined (RTC_CLOCK_SOURCE_HSE) - /* Configue HSE as RTC clock soucre */ - RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; - RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; - RCC_OscInitStruct.HSEState = RCC_HSE_ON; - PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_HSE_DIV128; -#else -#error Please select the RTC Clock source -#endif /* RTC_CLOCK_SOURCE_LSE */ - - if(HAL_RCC_OscConfig(&RCC_OscInitStruct) == HAL_OK) - { - PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_RTC; - if(HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) == HAL_OK) - { - /* Enable RTC Clock */ - __HAL_RCC_RTC_ENABLE(); - - hRTC_Handle.Instance = RTC; - /* Configure RTC time base to 10Khz */ - hRTC_Handle.Init.AsynchPrediv = (HAL_RCCEx_GetPeriphCLKFreq(RCC_PERIPHCLK_RTC) / 10000) - 1; - hRTC_Handle.Init.OutPut = RTC_OUTPUTSOURCE_NONE; - HAL_RTC_Init(&hRTC_Handle); - - /* Disable the write protection for RTC registers */ - __HAL_RTC_WRITEPROTECTION_DISABLE(&hRTC_Handle); - - /* Clear flag alarm A */ - __HAL_RTC_ALARM_CLEAR_FLAG(&hRTC_Handle, RTC_FLAG_ALRAF); - - counter = 0U; - /* Wait till RTC ALRAF flag is set and if Time out is reached exit */ - while(__HAL_RTC_ALARM_GET_FLAG(&hRTC_Handle, RTC_FLAG_ALRAF) != RESET) - { - if(counter++ == SystemCoreClock /48U) /* Timeout = ~ 1s */ - { - return HAL_ERROR; - } - } - - /* Set RTC COUNTER MSB word */ - hRTC_Handle.Instance->ALRH = 0x00U; - /* Set RTC COUNTER LSB word */ - hRTC_Handle.Instance->ALRL = 0x09U; - - /* RTC Alarm Interrupt Configuration: EXTI configuration */ - __HAL_RTC_ALARM_EXTI_ENABLE_IT(); - __HAL_RTC_ALARM_EXTI_ENABLE_RISING_EDGE(); - - /* Clear Second and overflow flags */ - CLEAR_BIT(hRTC_Handle.Instance->CRL, (RTC_FLAG_SEC | RTC_FLAG_OW)); - - /* Set RTC COUNTER MSB word */ - hRTC_Handle.Instance->CNTH = 0x00U; - /* Set RTC COUNTER LSB word */ - hRTC_Handle.Instance->CNTL = 0x00U; - - /* Configure the Alarm interrupt */ - __HAL_RTC_ALARM_ENABLE_IT(&hRTC_Handle, RTC_IT_ALRA); - - /* Enable the write protection for RTC registers */ - __HAL_RTC_WRITEPROTECTION_ENABLE(&hRTC_Handle); - - /* Wait till RTC is in INIT state and if Time out is reached exit */ - counter = 0U; - while((hRTC_Handle.Instance->CRL & RTC_CRL_RTOFF) == (uint32_t)RESET) - { - if(counter++ == SystemCoreClock /48U) /* Timeout = ~ 1s */ - { - return HAL_ERROR; - } - } - - HAL_NVIC_SetPriority(RTC_Alarm_IRQn, TickPriority, 0U); - HAL_NVIC_EnableIRQ(RTC_Alarm_IRQn); - return HAL_OK; - } - } - return HAL_ERROR; -} - -/** - * @brief Suspend Tick increment. - * @note Disable the tick increment by disabling RTC ALARM interrupt. - * @param None - * @retval None - */ -void HAL_SuspendTick(void) -{ - /* Disable RTC ALARM update Interrupt */ - __HAL_RTC_ALARM_DISABLE_IT(&hRTC_Handle, RTC_IT_ALRA); -} - -/** - * @brief Resume Tick increment. - * @note Enable the tick increment by Enabling RTC ALARM interrupt. - * @param None - * @retval None - */ -void HAL_ResumeTick(void) -{ - __IO uint32_t counter = 0U; - - /* Disable the write protection for RTC registers */ - __HAL_RTC_WRITEPROTECTION_DISABLE(&hRTC_Handle); - - /* Set RTC COUNTER MSB word */ - hRTC_Handle.Instance->CNTH = 0x00U; - /* Set RTC COUNTER LSB word */ - hRTC_Handle.Instance->CNTL = 0x00U; - - /* Clear Second and overflow flags */ - CLEAR_BIT(hRTC_Handle.Instance->CRL, (RTC_FLAG_SEC | RTC_FLAG_OW | RTC_FLAG_ALRAF)); - - /* Enable RTC ALARM Update interrupt */ - __HAL_RTC_ALARM_ENABLE_IT(&hRTC_Handle, RTC_IT_ALRA); - - /* Enable the write protection for RTC registers */ - __HAL_RTC_WRITEPROTECTION_ENABLE(&hRTC_Handle); - - /* Wait till RTC is in INIT state and if Time out is reached exit */ - while((hRTC_Handle.Instance->CRL & RTC_CRL_RTOFF) == (uint32_t)RESET) - { - if(counter++ == SystemCoreClock /48U) /* Timeout = ~ 1s */ - { - break; - } - } -} - -/** - * @brief ALARM A Event Callback in non blocking mode - * @note This function is called when RTC_ALARM interrupt took place, inside - * RTC_ALARM_IRQHandler(). It makes a direct call to HAL_IncTick() to increment - * a global variable "uwTick" used as application time base. - * @param hrtc : RTC handle - * @retval None - */ -void HAL_RTC_AlarmAEventCallback(RTC_HandleTypeDef *hrtc) -{ - __IO uint32_t counter = 0U; - - HAL_IncTick(); - - __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc); - - /* Set RTC COUNTER MSB word */ - WRITE_REG(hrtc->Instance->CNTH, 0x00U); - /* Set RTC COUNTER LSB word */ - WRITE_REG(hrtc->Instance->CNTL, 0x00U); - - /* Clear Second and overflow flags */ - CLEAR_BIT(hrtc->Instance->CRL, (RTC_FLAG_SEC | RTC_FLAG_OW)); - - /* Enable the write protection for RTC registers */ - __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc); - - /* Wait till RTC is in INIT state and if Time out is reached exit */ - while((hrtc->Instance->CRL & RTC_CRL_RTOFF) == (uint32_t)RESET) - { - if(counter++ == SystemCoreClock /48U) /* Timeout = ~ 1s */ - { - break; - } - } -} - -/** - * @brief This function handles RTC ALARM interrupt request. - * @retval None - */ -void RTC_Alarm_IRQHandler(void) -{ - HAL_RTC_AlarmIRQHandler(&hRTC_Handle); -} - -/** - * @} - */ - -/** - * @} - */ - -/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/workspace/TS100/HAL_Driver/Src/stm32f1xx_hal_timebase_tim_template.c b/workspace/TS100/HAL_Driver/Src/stm32f1xx_hal_timebase_tim_template.c deleted file mode 100644 index 9bc6227e..00000000 --- a/workspace/TS100/HAL_Driver/Src/stm32f1xx_hal_timebase_tim_template.c +++ /dev/null @@ -1,184 +0,0 @@ -/** - ****************************************************************************** - * @file stm32f1xx_hal_timebase_tim_template.c - * @author MCD Application Team - * @version V1.1.1 - * @date 12-May-2017 - * @brief HAL time base based on the hardware TIM Template. - * - * This file overrides the native HAL time base functions (defined as weak) - * the TIM time base: - * + Intializes the TIM peripheral generate a Period elapsed Event each 1ms - * + HAL_IncTick is called inside HAL_TIM_PeriodElapsedCallback ie each 1ms - * - ****************************************************************************** - * @attention - * - * <h2><center>© COPYRIGHT(c) 2017 STMicroelectronics</center></h2> - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * 3. Neither the name of STMicroelectronics nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - ****************************************************************************** - */ - -/* Includes ------------------------------------------------------------------*/ -#include "stm32f1xx_hal.h" - -/** @addtogroup STM32F1xx_HAL_Driver - * @{ - */ - -/** @addtogroup HAL_TimeBase_TIM - * @{ - */ - -/* Private typedef -----------------------------------------------------------*/ -/* Private define ------------------------------------------------------------*/ -/* Private macro -------------------------------------------------------------*/ -/* Private variables ---------------------------------------------------------*/ -TIM_HandleTypeDef TimHandle; -/* Private function prototypes -----------------------------------------------*/ -void TIM2_IRQHandler(void); -/* Private functions ---------------------------------------------------------*/ - -/** - * @brief This function configures the TIM2 as a time base source. - * The time source is configured to have 1ms time base with a dedicated - * Tick interrupt priority. - * @note This function is called automatically at the beginning of program after - * reset by HAL_Init() or at any time when clock is configured, by HAL_RCC_ClockConfig(). - * @param TickPriority: Tick interrupt priority. - * @retval HAL status - */ -HAL_StatusTypeDef HAL_InitTick (uint32_t TickPriority) -{ - RCC_ClkInitTypeDef clkconfig; - uint32_t uwTimclock, uwAPB1Prescaler = 0U; - uint32_t uwPrescalerValue = 0U; - uint32_t pFLatency; - - /*Configure the TIM2 IRQ priority */ - HAL_NVIC_SetPriority(TIM2_IRQn, TickPriority ,0U); - - /* Enable the TIM2 global Interrupt */ - HAL_NVIC_EnableIRQ(TIM2_IRQn); - - /* Enable TIM2 clock */ - __HAL_RCC_TIM2_CLK_ENABLE(); - - /* Get clock configuration */ - HAL_RCC_GetClockConfig(&clkconfig, &pFLatency); - - /* Get APB1 prescaler */ - uwAPB1Prescaler = clkconfig.APB1CLKDivider; - - /* Compute TIM2 clock */ - if (uwAPB1Prescaler == RCC_HCLK_DIV1) - { - uwTimclock = HAL_RCC_GetPCLK1Freq(); - } - else - { - uwTimclock = 2*HAL_RCC_GetPCLK1Freq(); - } - - /* Compute the prescaler value to have TIM2 counter clock equal to 1MHz */ - uwPrescalerValue = (uint32_t) ((uwTimclock / 1000000U) - 1U); - - /* Initialize TIM2 */ - TimHandle.Instance = TIM2; - - /* Initialize TIMx peripheral as follow: - + Period = [(TIM2CLK/1000) - 1]. to have a (1/1000) s time base. - + Prescaler = (uwTimclock/1000000 - 1) to have a 1MHz counter clock. - + ClockDivision = 0 - + Counter direction = Up - */ - TimHandle.Init.Period = (1000000U / 1000U) - 1U; - TimHandle.Init.Prescaler = uwPrescalerValue; - TimHandle.Init.ClockDivision = 0U; - TimHandle.Init.CounterMode = TIM_COUNTERMODE_UP; - TimHandle.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; - if(HAL_TIM_Base_Init(&TimHandle) == HAL_OK) - { - /* Start the TIM time Base generation in interrupt mode */ - return HAL_TIM_Base_Start_IT(&TimHandle); - } - - /* Return function status */ - return HAL_ERROR; -} - -/** - * @brief Suspend Tick increment. - * @note Disable the tick increment by disabling TIM2 update interrupt. - * @retval None - */ -void HAL_SuspendTick(void) -{ - /* Disable TIM2 update Interrupt */ - __HAL_TIM_DISABLE_IT(&TimHandle, TIM_IT_UPDATE); -} - -/** - * @brief Resume Tick increment. - * @note Enable the tick increment by Enabling TIM2 update interrupt. - * @retval None - */ -void HAL_ResumeTick(void) -{ - /* Enable TIM2 Update interrupt */ - __HAL_TIM_ENABLE_IT(&TimHandle, TIM_IT_UPDATE); -} - -/** - * @brief Period elapsed callback in non blocking mode - * @note This function is called when TIM2 interrupt took place, inside - * HAL_TIM_IRQHandler(). It makes a direct call to HAL_IncTick() to increment - * a global variable "uwTick" used as application time base. - * @param htim : TIM handle - * @retval None - */ -void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) -{ - HAL_IncTick(); -} - -/** - * @brief This function handles TIM interrupt request. - * @retval None - */ -void TIM2_IRQHandler(void) -{ - HAL_TIM_IRQHandler(&TimHandle); -} - -/** - * @} - */ - -/** - * @} - */ - -/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/workspace/TS100/Makefile b/workspace/TS100/Makefile new file mode 100644 index 00000000..6c7a60c7 --- /dev/null +++ b/workspace/TS100/Makefile @@ -0,0 +1,219 @@ +# Discover the source files to build +SOURCE := $(shell find . -type f -name '*.c') +SOURCE_CPP := $(shell find . -type f -name '*.cpp') +S_SRCS := $(shell find . -type f -name '*.s') + +APP_INC_DIR = ./inc +CMSIS_DEVICE_INC_DIR = ./CMSIS/device +CMSIS_CORE_INC_DIR = ./CMSIS/core +HAL_INC_DIR = ./HAL_Driver/Inc +FRTOS_CMIS_INC_DIR = ./Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS +FRTOS_INC_DIR = ./Middlewares/Third_Party/FreeRTOS/Source/include +FRTOS_GCC_INC_DIR = ./Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM3 + +INCLUDES = -I$(APP_INC_DIR) \ + -I$(CMSIS_DEVICE_INC_DIR)\ + -I$(CMSIS_CORE_INC_DIR) \ + -I$(HAL_INC_DIR) \ + -I$(FRTOS_CMIS_INC_DIR) \ + -I$(FRTOS_INC_DIR) \ + -I$(FRTOS_GCC_INC_DIR) +# output folder +HEXFILE_DIR=Hexfile + +# temporary objects folder +OUTPUT_DIR=Objects + +# code optimisation ------------------------------------------------------------ +OPTIM=-O2 -finline-small-functions -findirect-inlining -fdiagnostics-color + + +# global defines --------------------------------------------------------------- +# Enable ROM library +#GLOBAL_DEFINES=-DTARGET_IS_BLIZZARD_RB1 -DUART_BUFFERED +# Without ROM library +#GLOBAL_DEFINES=-D DEPRECATED +#GLOBAL_DEFINES += -D SIMULATION_BOARD +GLOBAL_DEFINES += -D STM32F103T8Ux -D STM32F1 -D STM32 -D USE_HAL_DRIVER -D STM32F103xB -D USE_RTOS_SYSTICK + +# Enable debug code generation +DEBUG=-g +# Without debug code +#DEBUG= + + +# libs ------------------------------------------------------------------------- +LIBS= + +# linker script ---------------------------------------------------------------- +LDSCRIPT=LinkerScript.ld + +# ------------------------------------------------------------------------------ +COMPILER=gcc +# programs --------------------------------------------------------------------- +CC=arm-none-eabi-gcc +CPP=arm-none-eabi-g++ +AS=arm-none-eabi-as +GCOV=arm-none-eabi-gcov +OBJCOPY=arm-none-eabi-objcopy +OBJDUMP=arm-none-eabi-objdump +SIZE=arm-none-eabi-size +SREC=srec_cat +SREC_INFO=srec_info + + + + +# linker flags ----------------------------------------------------------------- +LINKER_FLAGS=-Wl,--gc-sections \ + -o$(OUT_HEXFILE).elf \ + -Wl,-Map=$(OUT_HEXFILE).map \ + -mcpu=cortex-m3 \ + -mthumb \ + -mfloat-abi=soft \ + -lm + +# compiler flags --------------------------------------------------------------- +CPUFLAGS=-D GCC_ARMCM3 \ + -D ARM_MATH_CM3 \ + -D STM32F10X_MD \ + -mthumb \ + -mcpu=cortex-m3 \ + -mfloat-abi=soft + + + +CHECKOPTIONS= -Wall \ + -Wextra \ + -Wunused \ + -Wcomment \ + -Wtrigraphs \ + -Wuninitialized \ + -Wmissing-braces \ + -Wfloat-equal \ + -Wunreachable-code \ + -Wswitch-default \ + -Wreturn-type \ + -Wundef \ + -Wparentheses \ + -Wnonnull \ + -Winit-self \ + -Wmissing-include-dirs \ + -Wsequence-point \ + -Wswitch \ + -Wformat \ + -Wsign-compare \ + -Waddress \ + -Waggregate-return \ + -Wmissing-field-initializers \ + -Winline \ + -Wshadow \ + -Wno-unused-parameter \ + -Wdouble-promotion + + +CHECKOPTIONS_C= -Wbad-function-cast + + +CXXFLAGS=$(CPUFLAGS) \ + $(DEBUG) \ + $(INCLUDES) \ + $(GLOBAL_DEFINES) \ + -D${COMPILER} \ + -MMD \ + $(CHECKOPTIONS) \ + -std=c++11 \ + $(OPTIM) \ + -fno-common \ + -ffreestanding \ + -fno-rtti \ + -fno-exceptions \ + -fno-non-call-exceptions \ + -fno-use-cxa-atexit \ + -T$(LDSCRIPT) + + +CFLAGS=$(CPUFLAGS) \ + $(DEBUG) \ + $(INCLUDES) \ + $(CHECKOPTIONS_C) \ + $(GLOBAL_DEFINES) \ + -D${COMPILER} \ + -MMD \ + -std=gnu99 \ + $(OPTIM) \ + -fno-common \ + -ffreestanding \ + -T$(LDSCRIPT) \ + -c + + +AFLAGS=$(CPUFLAGS) \ + $(DEBUG) \ + $(INCLUDES) + + +ifeq (${COMPILER}, gcc) +AFLAGS += -ffunction-sections -fdata-sections +CFLAGS += -ffunction-sections -fdata-sections +endif + + + +OBJS = $(SOURCE:.c=.o) +OBJS_CPP = $(SOURCE_CPP:.cpp=.o) +OBJS_S = $(S_SRCS:.s=.o) + + +OUTPUT_EXE=TS100 +OUT_OBJS=$(addprefix $(OUTPUT_DIR)/,$(OBJS)) +OUT_OBJS_CPP=$(addprefix $(OUTPUT_DIR)/,$(OBJS_CPP)) +OUT_OBJS_S=$(addprefix $(OUTPUT_DIR)/,$(OBJS_S)) +OUT_HEXFILE=$(addprefix $(HEXFILE_DIR)/,$(OUTPUT_EXE)) + +all: $(OUT_HEXFILE).hex + +# +# The rule to create the target directory +# + +# Create hexfile +$(OUT_HEXFILE).hex : $(OUT_HEXFILE).elf + $(SIZE) -x $(OUT_HEXFILE).elf + $(OBJCOPY) $(OUT_HEXFILE).elf -O ihex $(OUT_HEXFILE).hex + +$(OUT_HEXFILE).elf : $(OUT_OBJS) $(OUT_OBJS_CPP) $(OUT_OBJS_S) Makefile $(LDSCRIPT) + @test -d $(@D) || mkdir -p $(@D) + @echo Linking $(OUTPUT_EXE).elf + @$(CPP) $(CXXFLAGS) $(OUT_OBJS) $(OUT_OBJS_CPP) $(OUT_OBJS_S) $(LIBS) $(LINKER_FLAGS) + +$(OUT_OBJS): $(OUTPUT_DIR)/%.o : %.c Makefile + @test -d $(@D) || mkdir -p $(@D) + @echo Compiling ${<} +# @echo $(CFLAGS) + @$(CC) -c $(CFLAGS) $< -o $@ + @$(OBJDUMP) -d -S $@ > [email protected] + +$(OUT_OBJS_CPP): $(OUTPUT_DIR)/%.o : %.cpp Makefile + @test -d $(@D) || mkdir -p $(@D) + @echo Compiling ${<} + @$(CPP) -c $(CXXFLAGS) $< -o $@ + @$(OBJDUMP) -d -S $@ > [email protected] + +$(OUT_OBJS_S): $(OUTPUT_DIR)/%.o: %.s Makefile + @test -d $(@D) || mkdir -p $(@D) + @echo 'Building file: $<' + @echo 'Invoking: MCU GCC Assembler' + @$(AS) -mcpu=cortex-m3 -mthumb -mfloat-abi=soft $(INCLUDES) -g $< -o $@ + @echo 'Finished building: $<' + @echo ' ' + + +clean : + rm -Rf $(OUTPUT_DIR) + rm -Rf $(HEXFILE_DIR) + +# pull in dependency info for *existing* .o files +-include $(OUT_OBJS:.o=.d) +-include $(OUT_OBJS_CPP:.o=.d) + diff --git a/workspace/TS100/Middlewares/Third_Party/FreeRTOS/Source/portable/MemMang/heap_1.c b/workspace/TS100/Middlewares/Third_Party/FreeRTOS/Source/portable/MemMang/heap_1.c deleted file mode 100644 index 6dfb3cbc..00000000 --- a/workspace/TS100/Middlewares/Third_Party/FreeRTOS/Source/portable/MemMang/heap_1.c +++ /dev/null @@ -1,188 +0,0 @@ -/* - FreeRTOS V9.0.0 - Copyright (C) 2016 Real Time Engineers Ltd. - All rights reserved - - VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. - - *************************************************************************** - >>! NOTE: The modification to the GPL is included to allow you to !<< - >>! distribute a combined work that includes FreeRTOS without being !<< - >>! obliged to provide the source code for proprietary components !<< - >>! outside of the FreeRTOS kernel. !<< - *************************************************************************** - - FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available on the following - link: http://www.freertos.org/a00114.html - - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that is more than just the market leader, it * - * is the industry's de facto standard. * - * * - * Help yourself get started quickly while simultaneously helping * - * to support the FreeRTOS project by purchasing a FreeRTOS * - * tutorial book, reference manual, or both: * - * http://www.FreeRTOS.org/Documentation * - * * - *************************************************************************** - - http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading - the FAQ page "My application does not run, what could be wrong?". Have you - defined configASSERT()? - - http://www.FreeRTOS.org/support - In return for receiving this top quality - embedded software for free we request you assist our global community by - participating in the support forum. - - http://www.FreeRTOS.org/training - Investing in training allows your team to - be as productive as possible as early as possible. Now you can receive - FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers - Ltd, and the world's leading authority on the world's leading RTOS. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool, a DOS - compatible FAT file system, and our tiny thread aware UDP/IP stack. - - http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. - Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. - - http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High - Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and commercial middleware. - - http://www.SafeRTOS.com - High Integrity Systems also provide a safety - engineered and independently SIL3 certified version for use in safety and - mission critical applications that require provable dependability. - - 1 tab == 4 spaces! -*/ - - -/* - * The simplest possible implementation of pvPortMalloc(). Note that this - * implementation does NOT allow allocated memory to be freed again. - * - * See heap_2.c, heap_3.c and heap_4.c for alternative implementations, and the - * memory management pages of http://www.FreeRTOS.org for more information. - */ -#include <stdlib.h> - -/* Defining MPU_WRAPPERS_INCLUDED_FROM_API_FILE prevents task.h from redefining -all the API functions to use the MPU wrappers. That should only be done when -task.h is included from an application file. */ -#define MPU_WRAPPERS_INCLUDED_FROM_API_FILE - -#include "FreeRTOS.h" -#include "task.h" - -#undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE - -#if( configSUPPORT_DYNAMIC_ALLOCATION == 0 ) - #error This file must not be used if configSUPPORT_DYNAMIC_ALLOCATION is 0 -#endif - -/* A few bytes might be lost to byte aligning the heap start address. */ -#define configADJUSTED_HEAP_SIZE ( configTOTAL_HEAP_SIZE - portBYTE_ALIGNMENT ) - -/* Allocate the memory for the heap. */ -/* Allocate the memory for the heap. */ -#if( configAPPLICATION_ALLOCATED_HEAP == 1 ) - /* The application writer has already defined the array used for the RTOS - heap - probably so it can be placed in a special segment or address. */ - extern uint8_t ucHeap[ configTOTAL_HEAP_SIZE ]; -#else - static uint8_t ucHeap[ configTOTAL_HEAP_SIZE ]; -#endif /* configAPPLICATION_ALLOCATED_HEAP */ - -static size_t xNextFreeByte = ( size_t ) 0; - -/*-----------------------------------------------------------*/ - -void *pvPortMalloc( size_t xWantedSize ) -{ -void *pvReturn = NULL; -static uint8_t *pucAlignedHeap = NULL; - - /* Ensure that blocks are always aligned to the required number of bytes. */ - #if( portBYTE_ALIGNMENT != 1 ) - { - if( xWantedSize & portBYTE_ALIGNMENT_MASK ) - { - /* Byte alignment required. */ - xWantedSize += ( portBYTE_ALIGNMENT - ( xWantedSize & portBYTE_ALIGNMENT_MASK ) ); - } - } - #endif - - vTaskSuspendAll(); - { - if( pucAlignedHeap == NULL ) - { - /* Ensure the heap starts on a correctly aligned boundary. */ - pucAlignedHeap = ( uint8_t * ) ( ( ( portPOINTER_SIZE_TYPE ) &ucHeap[ portBYTE_ALIGNMENT ] ) & ( ~( ( portPOINTER_SIZE_TYPE ) portBYTE_ALIGNMENT_MASK ) ) ); - } - - /* Check there is enough room left for the allocation. */ - if( ( ( xNextFreeByte + xWantedSize ) < configADJUSTED_HEAP_SIZE ) && - ( ( xNextFreeByte + xWantedSize ) > xNextFreeByte ) )/* Check for overflow. */ - { - /* Return the next free byte then increment the index past this - block. */ - pvReturn = pucAlignedHeap + xNextFreeByte; - xNextFreeByte += xWantedSize; - } - - traceMALLOC( pvReturn, xWantedSize ); - } - ( void ) xTaskResumeAll(); - - #if( configUSE_MALLOC_FAILED_HOOK == 1 ) - { - if( pvReturn == NULL ) - { - extern void vApplicationMallocFailedHook( void ); - vApplicationMallocFailedHook(); - } - } - #endif - - return pvReturn; -} -/*-----------------------------------------------------------*/ - -void vPortFree( void *pv ) -{ - /* Memory cannot be freed using this scheme. See heap_2.c, heap_3.c and - heap_4.c for alternative implementations, and the memory management pages of - http://www.FreeRTOS.org for more information. */ - ( void ) pv; - - /* Force an assert as it is invalid to call this function. */ - configASSERT( pv == NULL ); -} -/*-----------------------------------------------------------*/ - -void vPortInitialiseBlocks( void ) -{ - /* Only required when static memory is not cleared. */ - xNextFreeByte = ( size_t ) 0; -} -/*-----------------------------------------------------------*/ - -size_t xPortGetFreeHeapSize( void ) -{ - return ( configADJUSTED_HEAP_SIZE - xNextFreeByte ); -} - - - diff --git a/workspace/TS100/Middlewares/Third_Party/FreeRTOS/Source/portable/MemMang/heap_2.c b/workspace/TS100/Middlewares/Third_Party/FreeRTOS/Source/portable/MemMang/heap_2.c deleted file mode 100644 index bba85540..00000000 --- a/workspace/TS100/Middlewares/Third_Party/FreeRTOS/Source/portable/MemMang/heap_2.c +++ /dev/null @@ -1,314 +0,0 @@ -/* - FreeRTOS V9.0.0 - Copyright (C) 2016 Real Time Engineers Ltd. - All rights reserved - - VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. - - *************************************************************************** - >>! NOTE: The modification to the GPL is included to allow you to !<< - >>! distribute a combined work that includes FreeRTOS without being !<< - >>! obliged to provide the source code for proprietary components !<< - >>! outside of the FreeRTOS kernel. !<< - *************************************************************************** - - FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available on the following - link: http://www.freertos.org/a00114.html - - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that is more than just the market leader, it * - * is the industry's de facto standard. * - * * - * Help yourself get started quickly while simultaneously helping * - * to support the FreeRTOS project by purchasing a FreeRTOS * - * tutorial book, reference manual, or both: * - * http://www.FreeRTOS.org/Documentation * - * * - *************************************************************************** - - http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading - the FAQ page "My application does not run, what could be wrong?". Have you - defined configASSERT()? - - http://www.FreeRTOS.org/support - In return for receiving this top quality - embedded software for free we request you assist our global community by - participating in the support forum. - - http://www.FreeRTOS.org/training - Investing in training allows your team to - be as productive as possible as early as possible. Now you can receive - FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers - Ltd, and the world's leading authority on the world's leading RTOS. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool, a DOS - compatible FAT file system, and our tiny thread aware UDP/IP stack. - - http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. - Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. - - http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High - Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and commercial middleware. - - http://www.SafeRTOS.com - High Integrity Systems also provide a safety - engineered and independently SIL3 certified version for use in safety and - mission critical applications that require provable dependability. - - 1 tab == 4 spaces! -*/ - -/* - * A sample implementation of pvPortMalloc() and vPortFree() that permits - * allocated blocks to be freed, but does not combine adjacent free blocks - * into a single larger block (and so will fragment memory). See heap_4.c for - * an equivalent that does combine adjacent blocks into single larger blocks. - * - * See heap_1.c, heap_3.c and heap_4.c for alternative implementations, and the - * memory management pages of http://www.FreeRTOS.org for more information. - */ -#include <stdlib.h> - -/* Defining MPU_WRAPPERS_INCLUDED_FROM_API_FILE prevents task.h from redefining -all the API functions to use the MPU wrappers. That should only be done when -task.h is included from an application file. */ -#define MPU_WRAPPERS_INCLUDED_FROM_API_FILE - -#include "FreeRTOS.h" -#include "task.h" - -#undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE - -#if( configSUPPORT_DYNAMIC_ALLOCATION == 0 ) - #error This file must not be used if configSUPPORT_DYNAMIC_ALLOCATION is 0 -#endif - -/* A few bytes might be lost to byte aligning the heap start address. */ -#define configADJUSTED_HEAP_SIZE ( configTOTAL_HEAP_SIZE - portBYTE_ALIGNMENT ) - -/* - * Initialises the heap structures before their first use. - */ -static void prvHeapInit( void ); - -/* Allocate the memory for the heap. */ -#if( configAPPLICATION_ALLOCATED_HEAP == 1 ) - /* The application writer has already defined the array used for the RTOS - heap - probably so it can be placed in a special segment or address. */ - extern uint8_t ucHeap[ configTOTAL_HEAP_SIZE ]; -#else - static uint8_t ucHeap[ configTOTAL_HEAP_SIZE ]; -#endif /* configAPPLICATION_ALLOCATED_HEAP */ - - -/* Define the linked list structure. This is used to link free blocks in order -of their size. */ -typedef struct A_BLOCK_LINK -{ - struct A_BLOCK_LINK *pxNextFreeBlock; /*<< The next free block in the list. */ - size_t xBlockSize; /*<< The size of the free block. */ -} BlockLink_t; - - -static const uint16_t heapSTRUCT_SIZE = ( ( sizeof ( BlockLink_t ) + ( portBYTE_ALIGNMENT - 1 ) ) & ~portBYTE_ALIGNMENT_MASK ); -#define heapMINIMUM_BLOCK_SIZE ( ( size_t ) ( heapSTRUCT_SIZE * 2 ) ) - -/* Create a couple of list links to mark the start and end of the list. */ -static BlockLink_t xStart, xEnd; - -/* Keeps track of the number of free bytes remaining, but says nothing about -fragmentation. */ -static size_t xFreeBytesRemaining = configADJUSTED_HEAP_SIZE; - -/* STATIC FUNCTIONS ARE DEFINED AS MACROS TO MINIMIZE THE FUNCTION CALL DEPTH. */ - -/* - * Insert a block into the list of free blocks - which is ordered by size of - * the block. Small blocks at the start of the list and large blocks at the end - * of the list. - */ -#define prvInsertBlockIntoFreeList( pxBlockToInsert ) \ -{ \ -BlockLink_t *pxIterator; \ -size_t xBlockSize; \ - \ - xBlockSize = pxBlockToInsert->xBlockSize; \ - \ - /* Iterate through the list until a block is found that has a larger size */ \ - /* than the block we are inserting. */ \ - for( pxIterator = &xStart; pxIterator->pxNextFreeBlock->xBlockSize < xBlockSize; pxIterator = pxIterator->pxNextFreeBlock ) \ - { \ - /* There is nothing to do here - just iterate to the correct position. */ \ - } \ - \ - /* Update the list to include the block being inserted in the correct */ \ - /* position. */ \ - pxBlockToInsert->pxNextFreeBlock = pxIterator->pxNextFreeBlock; \ - pxIterator->pxNextFreeBlock = pxBlockToInsert; \ -} -/*-----------------------------------------------------------*/ - -void *pvPortMalloc( size_t xWantedSize ) -{ -BlockLink_t *pxBlock, *pxPreviousBlock, *pxNewBlockLink; -static BaseType_t xHeapHasBeenInitialised = pdFALSE; -void *pvReturn = NULL; - - vTaskSuspendAll(); - { - /* If this is the first call to malloc then the heap will require - initialisation to setup the list of free blocks. */ - if( xHeapHasBeenInitialised == pdFALSE ) - { - prvHeapInit(); - xHeapHasBeenInitialised = pdTRUE; - } - - /* The wanted size is increased so it can contain a BlockLink_t - structure in addition to the requested amount of bytes. */ - if( xWantedSize > 0 ) - { - xWantedSize += heapSTRUCT_SIZE; - - /* Ensure that blocks are always aligned to the required number of bytes. */ - if( ( xWantedSize & portBYTE_ALIGNMENT_MASK ) != 0 ) - { - /* Byte alignment required. */ - xWantedSize += ( portBYTE_ALIGNMENT - ( xWantedSize & portBYTE_ALIGNMENT_MASK ) ); - } - } - - if( ( xWantedSize > 0 ) && ( xWantedSize < configADJUSTED_HEAP_SIZE ) ) - { - /* Blocks are stored in byte order - traverse the list from the start - (smallest) block until one of adequate size is found. */ - pxPreviousBlock = &xStart; - pxBlock = xStart.pxNextFreeBlock; - while( ( pxBlock->xBlockSize < xWantedSize ) && ( pxBlock->pxNextFreeBlock != NULL ) ) - { - pxPreviousBlock = pxBlock; - pxBlock = pxBlock->pxNextFreeBlock; - } - - /* If we found the end marker then a block of adequate size was not found. */ - if( pxBlock != &xEnd ) - { - /* Return the memory space - jumping over the BlockLink_t structure - at its start. */ - pvReturn = ( void * ) ( ( ( uint8_t * ) pxPreviousBlock->pxNextFreeBlock ) + heapSTRUCT_SIZE ); - - /* This block is being returned for use so must be taken out of the - list of free blocks. */ - pxPreviousBlock->pxNextFreeBlock = pxBlock->pxNextFreeBlock; - - /* If the block is larger than required it can be split into two. */ - if( ( pxBlock->xBlockSize - xWantedSize ) > heapMINIMUM_BLOCK_SIZE ) - { - /* This block is to be split into two. Create a new block - following the number of bytes requested. The void cast is - used to prevent byte alignment warnings from the compiler. */ - pxNewBlockLink = ( void * ) ( ( ( uint8_t * ) pxBlock ) + xWantedSize ); - - /* Calculate the sizes of two blocks split from the single - block. */ - pxNewBlockLink->xBlockSize = pxBlock->xBlockSize - xWantedSize; - pxBlock->xBlockSize = xWantedSize; - - /* Insert the new block into the list of free blocks. */ - prvInsertBlockIntoFreeList( ( pxNewBlockLink ) ); - } - - xFreeBytesRemaining -= pxBlock->xBlockSize; - } - } - - traceMALLOC( pvReturn, xWantedSize ); - } - ( void ) xTaskResumeAll(); - - #if( configUSE_MALLOC_FAILED_HOOK == 1 ) - { - if( pvReturn == NULL ) - { - extern void vApplicationMallocFailedHook( void ); - vApplicationMallocFailedHook(); - } - } - #endif - - return pvReturn; -} -/*-----------------------------------------------------------*/ - -void vPortFree( void *pv ) -{ -uint8_t *puc = ( uint8_t * ) pv; -BlockLink_t *pxLink; - - if( pv != NULL ) - { - /* The memory being freed will have an BlockLink_t structure immediately - before it. */ - puc -= heapSTRUCT_SIZE; - - /* This unexpected casting is to keep some compilers from issuing - byte alignment warnings. */ - pxLink = ( void * ) puc; - - vTaskSuspendAll(); - { - /* Add this block to the list of free blocks. */ - prvInsertBlockIntoFreeList( ( ( BlockLink_t * ) pxLink ) ); - xFreeBytesRemaining += pxLink->xBlockSize; - traceFREE( pv, pxLink->xBlockSize ); - } - ( void ) xTaskResumeAll(); - } -} -/*-----------------------------------------------------------*/ - -size_t xPortGetFreeHeapSize( void ) -{ - return xFreeBytesRemaining; -} -/*-----------------------------------------------------------*/ - -void vPortInitialiseBlocks( void ) -{ - /* This just exists to keep the linker quiet. */ -} -/*-----------------------------------------------------------*/ - -static void prvHeapInit( void ) -{ -BlockLink_t *pxFirstFreeBlock; -uint8_t *pucAlignedHeap; - - /* Ensure the heap starts on a correctly aligned boundary. */ - pucAlignedHeap = ( uint8_t * ) ( ( ( portPOINTER_SIZE_TYPE ) &ucHeap[ portBYTE_ALIGNMENT ] ) & ( ~( ( portPOINTER_SIZE_TYPE ) portBYTE_ALIGNMENT_MASK ) ) ); - - /* xStart is used to hold a pointer to the first item in the list of free - blocks. The void cast is used to prevent compiler warnings. */ - xStart.pxNextFreeBlock = ( void * ) pucAlignedHeap; - xStart.xBlockSize = ( size_t ) 0; - - /* xEnd is used to mark the end of the list of free blocks. */ - xEnd.xBlockSize = configADJUSTED_HEAP_SIZE; - xEnd.pxNextFreeBlock = NULL; - - /* To start with there is a single free block that is sized to take up the - entire heap space. */ - pxFirstFreeBlock = ( void * ) pucAlignedHeap; - pxFirstFreeBlock->xBlockSize = configADJUSTED_HEAP_SIZE; - pxFirstFreeBlock->pxNextFreeBlock = &xEnd; -} -/*-----------------------------------------------------------*/ diff --git a/workspace/TS100/Middlewares/Third_Party/FreeRTOS/Source/portable/MemMang/heap_3.c b/workspace/TS100/Middlewares/Third_Party/FreeRTOS/Source/portable/MemMang/heap_3.c deleted file mode 100644 index f9220018..00000000 --- a/workspace/TS100/Middlewares/Third_Party/FreeRTOS/Source/portable/MemMang/heap_3.c +++ /dev/null @@ -1,139 +0,0 @@ -/* - FreeRTOS V9.0.0 - Copyright (C) 2016 Real Time Engineers Ltd. - All rights reserved - - VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. - - *************************************************************************** - >>! NOTE: The modification to the GPL is included to allow you to !<< - >>! distribute a combined work that includes FreeRTOS without being !<< - >>! obliged to provide the source code for proprietary components !<< - >>! outside of the FreeRTOS kernel. !<< - *************************************************************************** - - FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available on the following - link: http://www.freertos.org/a00114.html - - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that is more than just the market leader, it * - * is the industry's de facto standard. * - * * - * Help yourself get started quickly while simultaneously helping * - * to support the FreeRTOS project by purchasing a FreeRTOS * - * tutorial book, reference manual, or both: * - * http://www.FreeRTOS.org/Documentation * - * * - *************************************************************************** - - http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading - the FAQ page "My application does not run, what could be wrong?". Have you - defined configASSERT()? - - http://www.FreeRTOS.org/support - In return for receiving this top quality - embedded software for free we request you assist our global community by - participating in the support forum. - - http://www.FreeRTOS.org/training - Investing in training allows your team to - be as productive as possible as early as possible. Now you can receive - FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers - Ltd, and the world's leading authority on the world's leading RTOS. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool, a DOS - compatible FAT file system, and our tiny thread aware UDP/IP stack. - - http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. - Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. - - http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High - Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and commercial middleware. - - http://www.SafeRTOS.com - High Integrity Systems also provide a safety - engineered and independently SIL3 certified version for use in safety and - mission critical applications that require provable dependability. - - 1 tab == 4 spaces! -*/ - - -/* - * Implementation of pvPortMalloc() and vPortFree() that relies on the - * compilers own malloc() and free() implementations. - * - * This file can only be used if the linker is configured to to generate - * a heap memory area. - * - * See heap_1.c, heap_2.c and heap_4.c for alternative implementations, and the - * memory management pages of http://www.FreeRTOS.org for more information. - */ - -#include <stdlib.h> - -/* Defining MPU_WRAPPERS_INCLUDED_FROM_API_FILE prevents task.h from redefining -all the API functions to use the MPU wrappers. That should only be done when -task.h is included from an application file. */ -#define MPU_WRAPPERS_INCLUDED_FROM_API_FILE - -#include "FreeRTOS.h" -#include "task.h" - -#undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE - -#if( configSUPPORT_DYNAMIC_ALLOCATION == 0 ) - #error This file must not be used if configSUPPORT_DYNAMIC_ALLOCATION is 0 -#endif - -/*-----------------------------------------------------------*/ - -void *pvPortMalloc( size_t xWantedSize ) -{ -void *pvReturn; - - vTaskSuspendAll(); - { - pvReturn = malloc( xWantedSize ); - traceMALLOC( pvReturn, xWantedSize ); - } - ( void ) xTaskResumeAll(); - - #if( configUSE_MALLOC_FAILED_HOOK == 1 ) - { - if( pvReturn == NULL ) - { - extern void vApplicationMallocFailedHook( void ); - vApplicationMallocFailedHook(); - } - } - #endif - - return pvReturn; -} -/*-----------------------------------------------------------*/ - -void vPortFree( void *pv ) -{ - if( pv ) - { - vTaskSuspendAll(); - { - free( pv ); - traceFREE( pv, 0 ); - } - ( void ) xTaskResumeAll(); - } -} - - - diff --git a/workspace/TS100/Middlewares/Third_Party/FreeRTOS/Source/portable/MemMang/heap_5.c b/workspace/TS100/Middlewares/Third_Party/FreeRTOS/Source/portable/MemMang/heap_5.c deleted file mode 100644 index d53e41e8..00000000 --- a/workspace/TS100/Middlewares/Third_Party/FreeRTOS/Source/portable/MemMang/heap_5.c +++ /dev/null @@ -1,527 +0,0 @@ -/* - FreeRTOS V9.0.0 - Copyright (C) 2016 Real Time Engineers Ltd. - All rights reserved - - VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. - - *************************************************************************** - >>! NOTE: The modification to the GPL is included to allow you to !<< - >>! distribute a combined work that includes FreeRTOS without being !<< - >>! obliged to provide the source code for proprietary components !<< - >>! outside of the FreeRTOS kernel. !<< - *************************************************************************** - - FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available on the following - link: http://www.freertos.org/a00114.html - - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that is more than just the market leader, it * - * is the industry's de facto standard. * - * * - * Help yourself get started quickly while simultaneously helping * - * to support the FreeRTOS project by purchasing a FreeRTOS * - * tutorial book, reference manual, or both: * - * http://www.FreeRTOS.org/Documentation * - * * - *************************************************************************** - - http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading - the FAQ page "My application does not run, what could be wrong?". Have you - defined configASSERT()? - - http://www.FreeRTOS.org/support - In return for receiving this top quality - embedded software for free we request you assist our global community by - participating in the support forum. - - http://www.FreeRTOS.org/training - Investing in training allows your team to - be as productive as possible as early as possible. Now you can receive - FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers - Ltd, and the world's leading authority on the world's leading RTOS. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool, a DOS - compatible FAT file system, and our tiny thread aware UDP/IP stack. - - http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. - Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. - - http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High - Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and commercial middleware. - - http://www.SafeRTOS.com - High Integrity Systems also provide a safety - engineered and independently SIL3 certified version for use in safety and - mission critical applications that require provable dependability. - - 1 tab == 4 spaces! -*/ - -/* - * A sample implementation of pvPortMalloc() that allows the heap to be defined - * across multiple non-contigous blocks and combines (coalescences) adjacent - * memory blocks as they are freed. - * - * See heap_1.c, heap_2.c, heap_3.c and heap_4.c for alternative - * implementations, and the memory management pages of http://www.FreeRTOS.org - * for more information. - * - * Usage notes: - * - * vPortDefineHeapRegions() ***must*** be called before pvPortMalloc(). - * pvPortMalloc() will be called if any task objects (tasks, queues, event - * groups, etc.) are created, therefore vPortDefineHeapRegions() ***must*** be - * called before any other objects are defined. - * - * vPortDefineHeapRegions() takes a single parameter. The parameter is an array - * of HeapRegion_t structures. HeapRegion_t is defined in portable.h as - * - * typedef struct HeapRegion - * { - * uint8_t *pucStartAddress; << Start address of a block of memory that will be part of the heap. - * size_t xSizeInBytes; << Size of the block of memory. - * } HeapRegion_t; - * - * The array is terminated using a NULL zero sized region definition, and the - * memory regions defined in the array ***must*** appear in address order from - * low address to high address. So the following is a valid example of how - * to use the function. - * - * HeapRegion_t xHeapRegions[] = - * { - * { ( uint8_t * ) 0x80000000UL, 0x10000 }, << Defines a block of 0x10000 bytes starting at address 0x80000000 - * { ( uint8_t * ) 0x90000000UL, 0xa0000 }, << Defines a block of 0xa0000 bytes starting at address of 0x90000000 - * { NULL, 0 } << Terminates the array. - * }; - * - * vPortDefineHeapRegions( xHeapRegions ); << Pass the array into vPortDefineHeapRegions(). - * - * Note 0x80000000 is the lower address so appears in the array first. - * - */ -#include <stdlib.h> - -/* Defining MPU_WRAPPERS_INCLUDED_FROM_API_FILE prevents task.h from redefining -all the API functions to use the MPU wrappers. That should only be done when -task.h is included from an application file. */ -#define MPU_WRAPPERS_INCLUDED_FROM_API_FILE - -#include "FreeRTOS.h" -#include "task.h" - -#undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE - -#if( configSUPPORT_DYNAMIC_ALLOCATION == 0 ) - #error This file must not be used if configSUPPORT_DYNAMIC_ALLOCATION is 0 -#endif - -/* Block sizes must not get too small. */ -#define heapMINIMUM_BLOCK_SIZE ( ( size_t ) ( xHeapStructSize << 1 ) ) - -/* Assumes 8bit bytes! */ -#define heapBITS_PER_BYTE ( ( size_t ) 8 ) - -/* Define the linked list structure. This is used to link free blocks in order -of their memory address. */ -typedef struct A_BLOCK_LINK -{ - struct A_BLOCK_LINK *pxNextFreeBlock; /*<< The next free block in the list. */ - size_t xBlockSize; /*<< The size of the free block. */ -} BlockLink_t; - -/*-----------------------------------------------------------*/ - -/* - * Inserts a block of memory that is being freed into the correct position in - * the list of free memory blocks. The block being freed will be merged with - * the block in front it and/or the block behind it if the memory blocks are - * adjacent to each other. - */ -static void prvInsertBlockIntoFreeList( BlockLink_t *pxBlockToInsert ); - -/*-----------------------------------------------------------*/ - -/* The size of the structure placed at the beginning of each allocated memory -block must by correctly byte aligned. */ -static const size_t xHeapStructSize = ( sizeof( BlockLink_t ) + ( ( size_t ) ( portBYTE_ALIGNMENT - 1 ) ) ) & ~( ( size_t ) portBYTE_ALIGNMENT_MASK ); - -/* Create a couple of list links to mark the start and end of the list. */ -static BlockLink_t xStart, *pxEnd = NULL; - -/* Keeps track of the number of free bytes remaining, but says nothing about -fragmentation. */ -static size_t xFreeBytesRemaining = 0U; -static size_t xMinimumEverFreeBytesRemaining = 0U; - -/* Gets set to the top bit of an size_t type. When this bit in the xBlockSize -member of an BlockLink_t structure is set then the block belongs to the -application. When the bit is free the block is still part of the free heap -space. */ -static size_t xBlockAllocatedBit = 0; - -/*-----------------------------------------------------------*/ - -void *pvPortMalloc( size_t xWantedSize ) -{ -BlockLink_t *pxBlock, *pxPreviousBlock, *pxNewBlockLink; -void *pvReturn = NULL; - - /* The heap must be initialised before the first call to - prvPortMalloc(). */ - configASSERT( pxEnd ); - - vTaskSuspendAll(); - { - /* Check the requested block size is not so large that the top bit is - set. The top bit of the block size member of the BlockLink_t structure - is used to determine who owns the block - the application or the - kernel, so it must be free. */ - if( ( xWantedSize & xBlockAllocatedBit ) == 0 ) - { - /* The wanted size is increased so it can contain a BlockLink_t - structure in addition to the requested amount of bytes. */ - if( xWantedSize > 0 ) - { - xWantedSize += xHeapStructSize; - - /* Ensure that blocks are always aligned to the required number - of bytes. */ - if( ( xWantedSize & portBYTE_ALIGNMENT_MASK ) != 0x00 ) - { - /* Byte alignment required. */ - xWantedSize += ( portBYTE_ALIGNMENT - ( xWantedSize & portBYTE_ALIGNMENT_MASK ) ); - } - else - { - mtCOVERAGE_TEST_MARKER(); - } - } - else - { - mtCOVERAGE_TEST_MARKER(); - } - - if( ( xWantedSize > 0 ) && ( xWantedSize <= xFreeBytesRemaining ) ) - { - /* Traverse the list from the start (lowest address) block until - one of adequate size is found. */ - pxPreviousBlock = &xStart; - pxBlock = xStart.pxNextFreeBlock; - while( ( pxBlock->xBlockSize < xWantedSize ) && ( pxBlock->pxNextFreeBlock != NULL ) ) - { - pxPreviousBlock = pxBlock; - pxBlock = pxBlock->pxNextFreeBlock; - } - - /* If the end marker was reached then a block of adequate size - was not found. */ - if( pxBlock != pxEnd ) - { - /* Return the memory space pointed to - jumping over the - BlockLink_t structure at its start. */ - pvReturn = ( void * ) ( ( ( uint8_t * ) pxPreviousBlock->pxNextFreeBlock ) + xHeapStructSize ); - - /* This block is being returned for use so must be taken out - of the list of free blocks. */ - pxPreviousBlock->pxNextFreeBlock = pxBlock->pxNextFreeBlock; - - /* If the block is larger than required it can be split into - two. */ - if( ( pxBlock->xBlockSize - xWantedSize ) > heapMINIMUM_BLOCK_SIZE ) - { - /* This block is to be split into two. Create a new - block following the number of bytes requested. The void - cast is used to prevent byte alignment warnings from the - compiler. */ - pxNewBlockLink = ( void * ) ( ( ( uint8_t * ) pxBlock ) + xWantedSize ); - - /* Calculate the sizes of two blocks split from the - single block. */ - pxNewBlockLink->xBlockSize = pxBlock->xBlockSize - xWantedSize; - pxBlock->xBlockSize = xWantedSize; - - /* Insert the new block into the list of free blocks. */ - prvInsertBlockIntoFreeList( ( pxNewBlockLink ) ); - } - else - { - mtCOVERAGE_TEST_MARKER(); - } - - xFreeBytesRemaining -= pxBlock->xBlockSize; - - if( xFreeBytesRemaining < xMinimumEverFreeBytesRemaining ) - { - xMinimumEverFreeBytesRemaining = xFreeBytesRemaining; - } - else - { - mtCOVERAGE_TEST_MARKER(); - } - - /* The block is being returned - it is allocated and owned - by the application and has no "next" block. */ - pxBlock->xBlockSize |= xBlockAllocatedBit; - pxBlock->pxNextFreeBlock = NULL; - } - else - { - mtCOVERAGE_TEST_MARKER(); - } - } - else - { - mtCOVERAGE_TEST_MARKER(); - } - } - else - { - mtCOVERAGE_TEST_MARKER(); - } - - traceMALLOC( pvReturn, xWantedSize ); - } - ( void ) xTaskResumeAll(); - - #if( configUSE_MALLOC_FAILED_HOOK == 1 ) - { - if( pvReturn == NULL ) - { - extern void vApplicationMallocFailedHook( void ); - vApplicationMallocFailedHook(); - } - else - { - mtCOVERAGE_TEST_MARKER(); - } - } - #endif - - return pvReturn; -} -/*-----------------------------------------------------------*/ - -void vPortFree( void *pv ) -{ -uint8_t *puc = ( uint8_t * ) pv; -BlockLink_t *pxLink; - - if( pv != NULL ) - { - /* The memory being freed will have an BlockLink_t structure immediately - before it. */ - puc -= xHeapStructSize; - - /* This casting is to keep the compiler from issuing warnings. */ - pxLink = ( void * ) puc; - - /* Check the block is actually allocated. */ - configASSERT( ( pxLink->xBlockSize & xBlockAllocatedBit ) != 0 ); - configASSERT( pxLink->pxNextFreeBlock == NULL ); - - if( ( pxLink->xBlockSize & xBlockAllocatedBit ) != 0 ) - { - if( pxLink->pxNextFreeBlock == NULL ) - { - /* The block is being returned to the heap - it is no longer - allocated. */ - pxLink->xBlockSize &= ~xBlockAllocatedBit; - - vTaskSuspendAll(); - { - /* Add this block to the list of free blocks. */ - xFreeBytesRemaining += pxLink->xBlockSize; - traceFREE( pv, pxLink->xBlockSize ); - prvInsertBlockIntoFreeList( ( ( BlockLink_t * ) pxLink ) ); - } - ( void ) xTaskResumeAll(); - } - else - { - mtCOVERAGE_TEST_MARKER(); - } - } - else - { - mtCOVERAGE_TEST_MARKER(); - } - } -} -/*-----------------------------------------------------------*/ - -size_t xPortGetFreeHeapSize( void ) -{ - return xFreeBytesRemaining; -} -/*-----------------------------------------------------------*/ - -size_t xPortGetMinimumEverFreeHeapSize( void ) -{ - return xMinimumEverFreeBytesRemaining; -} -/*-----------------------------------------------------------*/ - -static void prvInsertBlockIntoFreeList( BlockLink_t *pxBlockToInsert ) -{ -BlockLink_t *pxIterator; -uint8_t *puc; - - /* Iterate through the list until a block is found that has a higher address - than the block being inserted. */ - for( pxIterator = &xStart; pxIterator->pxNextFreeBlock < pxBlockToInsert; pxIterator = pxIterator->pxNextFreeBlock ) - { - /* Nothing to do here, just iterate to the right position. */ - } - - /* Do the block being inserted, and the block it is being inserted after - make a contiguous block of memory? */ - puc = ( uint8_t * ) pxIterator; - if( ( puc + pxIterator->xBlockSize ) == ( uint8_t * ) pxBlockToInsert ) - { - pxIterator->xBlockSize += pxBlockToInsert->xBlockSize; - pxBlockToInsert = pxIterator; - } - else - { - mtCOVERAGE_TEST_MARKER(); - } - - /* Do the block being inserted, and the block it is being inserted before - make a contiguous block of memory? */ - puc = ( uint8_t * ) pxBlockToInsert; - if( ( puc + pxBlockToInsert->xBlockSize ) == ( uint8_t * ) pxIterator->pxNextFreeBlock ) - { - if( pxIterator->pxNextFreeBlock != pxEnd ) - { - /* Form one big block from the two blocks. */ - pxBlockToInsert->xBlockSize += pxIterator->pxNextFreeBlock->xBlockSize; - pxBlockToInsert->pxNextFreeBlock = pxIterator->pxNextFreeBlock->pxNextFreeBlock; - } - else - { - pxBlockToInsert->pxNextFreeBlock = pxEnd; - } - } - else - { - pxBlockToInsert->pxNextFreeBlock = pxIterator->pxNextFreeBlock; - } - - /* If the block being inserted plugged a gab, so was merged with the block - before and the block after, then it's pxNextFreeBlock pointer will have - already been set, and should not be set here as that would make it point - to itself. */ - if( pxIterator != pxBlockToInsert ) - { - pxIterator->pxNextFreeBlock = pxBlockToInsert; - } - else - { - mtCOVERAGE_TEST_MARKER(); - } -} -/*-----------------------------------------------------------*/ - -void vPortDefineHeapRegions( const HeapRegion_t * const pxHeapRegions ) -{ -BlockLink_t *pxFirstFreeBlockInRegion = NULL, *pxPreviousFreeBlock; -size_t xAlignedHeap; -size_t xTotalRegionSize, xTotalHeapSize = 0; -BaseType_t xDefinedRegions = 0; -size_t xAddress; -const HeapRegion_t *pxHeapRegion; - - /* Can only call once! */ - configASSERT( pxEnd == NULL ); - - pxHeapRegion = &( pxHeapRegions[ xDefinedRegions ] ); - - while( pxHeapRegion->xSizeInBytes > 0 ) - { - xTotalRegionSize = pxHeapRegion->xSizeInBytes; - - /* Ensure the heap region starts on a correctly aligned boundary. */ - xAddress = ( size_t ) pxHeapRegion->pucStartAddress; - if( ( xAddress & portBYTE_ALIGNMENT_MASK ) != 0 ) - { - xAddress += ( portBYTE_ALIGNMENT - 1 ); - xAddress &= ~portBYTE_ALIGNMENT_MASK; - - /* Adjust the size for the bytes lost to alignment. */ - xTotalRegionSize -= xAddress - ( size_t ) pxHeapRegion->pucStartAddress; - } - - xAlignedHeap = xAddress; - - /* Set xStart if it has not already been set. */ - if( xDefinedRegions == 0 ) - { - /* xStart is used to hold a pointer to the first item in the list of - free blocks. The void cast is used to prevent compiler warnings. */ - xStart.pxNextFreeBlock = ( BlockLink_t * ) xAlignedHeap; - xStart.xBlockSize = ( size_t ) 0; - } - else - { - /* Should only get here if one region has already been added to the - heap. */ - configASSERT( pxEnd != NULL ); - - /* Check blocks are passed in with increasing start addresses. */ - configASSERT( xAddress > ( size_t ) pxEnd ); - } - - /* Remember the location of the end marker in the previous region, if - any. */ - pxPreviousFreeBlock = pxEnd; - - /* pxEnd is used to mark the end of the list of free blocks and is - inserted at the end of the region space. */ - xAddress = xAlignedHeap + xTotalRegionSize; - xAddress -= xHeapStructSize; - xAddress &= ~portBYTE_ALIGNMENT_MASK; - pxEnd = ( BlockLink_t * ) xAddress; - pxEnd->xBlockSize = 0; - pxEnd->pxNextFreeBlock = NULL; - - /* To start with there is a single free block in this region that is - sized to take up the entire heap region minus the space taken by the - free block structure. */ - pxFirstFreeBlockInRegion = ( BlockLink_t * ) xAlignedHeap; - pxFirstFreeBlockInRegion->xBlockSize = xAddress - ( size_t ) pxFirstFreeBlockInRegion; - pxFirstFreeBlockInRegion->pxNextFreeBlock = pxEnd; - - /* If this is not the first region that makes up the entire heap space - then link the previous region to this region. */ - if( pxPreviousFreeBlock != NULL ) - { - pxPreviousFreeBlock->pxNextFreeBlock = pxFirstFreeBlockInRegion; - } - - xTotalHeapSize += pxFirstFreeBlockInRegion->xBlockSize; - - /* Move onto the next HeapRegion_t structure. */ - xDefinedRegions++; - pxHeapRegion = &( pxHeapRegions[ xDefinedRegions ] ); - } - - xMinimumEverFreeBytesRemaining = xTotalHeapSize; - xFreeBytesRemaining = xTotalHeapSize; - - /* Check something was actually defined before it is accessed. */ - configASSERT( xTotalHeapSize ); - - /* Work out the position of the top bit in a size_t variable. */ - xBlockAllocatedBit = ( ( size_t ) 1 ) << ( ( sizeof( size_t ) * heapBITS_PER_BYTE ) - 1 ); -} - diff --git a/workspace/TS100/src/syscalls.c b/workspace/TS100/src/syscalls.c index eb20b429..855079c9 100644 --- a/workspace/TS100/src/syscalls.c +++ b/workspace/TS100/src/syscalls.c @@ -1,48 +1,3 @@ -/** -***************************************************************************** -** -** File : syscalls.c -** -** Abstract : System Workbench Minimal System calls file -** -** For more information about which c-functions -** need which of these lowlevel functions -** please consult the Newlib libc-manual -** -** Environment : System Workbench for MCU -** -** Distribution: The file is distributed �as is,� without any warranty -** of any kind. -** -***************************************************************************** -** -** <h2><center>© COPYRIGHT(c) 2014 Ac6</center></h2> -** -** Redistribution and use in source and binary forms, with or without modification, -** are permitted provided that the following conditions are met: -** 1. Redistributions of source code must retain the above copyright notice, -** this list of conditions and the following disclaimer. -** 2. Redistributions in binary form must reproduce the above copyright notice, -** this list of conditions and the following disclaimer in the documentation -** and/or other materials provided with the distribution. -** 3. Neither the name of Ac6 nor the names of its contributors -** may be used to endorse or promote products derived from this software -** without specific prior written permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -** FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -** DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -** SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -** OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -** -***************************************************************************** -*/ - /* Includes */ #include <sys/stat.h> #include <stdlib.h> |