Added about page

This commit is contained in:
Daniel Fekete 2017-04-19 11:04:53 +02:00
parent b727fed871
commit 514753db16
16 changed files with 441 additions and 83 deletions

288
docs/about/index.html Normal file
View File

@ -0,0 +1,288 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="shortcut icon" href="../img/favicon.ico">
<title>About - STM32GENERIC</title>
<link href="../css/bootstrap-custom.min.css" rel="stylesheet">
<link href="../css/font-awesome-4.0.3.css" rel="stylesheet">
<link rel="stylesheet" href="../css/highlight.css">
<link href="../css/base.css" rel="stylesheet">
<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
<![endif]-->
<script src="../js/jquery-1.10.2.min.js"></script>
<script src="../js/bootstrap-3.0.3.min.js"></script>
<script src="../js/highlight.pack.js"></script>
</head>
<body>
<div class="navbar navbar-default navbar-fixed-top" role="navigation">
<div class="container">
<!-- Collapsed navigation -->
<div class="navbar-header">
<!-- Expander button -->
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="..">STM32GENERIC</a>
</div>
<!-- Expanded navigation -->
<div class="navbar-collapse collapse">
<!-- Main navigation -->
<ul class="nav navbar-nav">
<li >
<a href="..">Installation</a>
</li>
<li >
<a href="../upload/">Uploading</a>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Documentation <b class="caret"></b></a>
<ul class="dropdown-menu">
<li >
<a href="../menu_options/">Menu options</a>
</li>
<li >
<a href="../arduino_api/">Arduino API</a>
</li>
<li >
<a href="../arduino_libraries/">Arduino Standard Libraries</a>
</li>
<li >
<a href="../stm32_hal/">STM32 HAL</a>
</li>
</ul>
</li>
<li >
<a href="../libraries/">Libraries</a>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">STM32 Boards <b class="caret"></b></a>
<ul class="dropdown-menu">
<li >
<a href="../boards/">Boards list</a>
</li>
<li >
<a href="../add_board/">Adding a board</a>
</li>
<li >
<a href="../test/">Testing a board</a>
</li>
</ul>
</li>
<li class="active">
<a href="./">About</a>
</li>
</ul>
<!-- Search, Navigation and Repo links -->
<ul class="nav navbar-nav navbar-right">
<li>
<a href="#" data-toggle="modal" data-target="#mkdocs_search_modal">
<i class="fa fa-search"></i> Search
</a>
</li>
<li >
<a rel="next" href="../test/">
<i class="fa fa-arrow-left"></i> Previous
</a>
</li>
<li class="disabled">
<a rel="prev" >
Next <i class="fa fa-arrow-right"></i>
</a>
</li>
</ul>
</div>
</div>
</div>
<div class="container">
<div class="col-md-3"><div class="bs-sidebar hidden-print affix well" role="complementary">
<ul class="nav bs-sidenav">
<li class="main active"><a href="#goals">Goals</a></li>
<li class="main "><a href="#project-structure">Project structure</a></li>
<li class="main "><a href="#general-development-direction">General development direction</a></li>
</ul>
</div></div>
<div class="col-md-9" role="main">
<h2 id="goals">Goals</h2>
<ul>
<li>Generic implementation using <code>STM32 HAL API</code> to compile onto every STM32 board.</li>
<li>For the most used boards, optimize code paths using direct register access.</li>
<li>Make adding boards easy</li>
<li>Make as compatible with default libraries as possible</li>
</ul>
<h2 id="project-structure">Project structure</h2>
<table>
<thead>
<tr>
<th>Director</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>system/CMSIS</code></td>
<td>CMSIS header files from ARM for cortex-M0/M3/M4/M7 microcontrollers</td>
</tr>
<tr>
<td><code>system/STM32XX/CMSIS_Inc</code></td>
<td>CMSIS header files specific STM32 chips, contains memory layout and register access for every chip</td>
</tr>
<tr>
<td><code>system/STM32XX/CMSIS_Src</code></td>
<td>CMSIS startup assembly files specific STM32 chips, contains ISR vector for interrupt handlers and reset handler default implementation</td>
</tr>
<tr>
<td><code>system/STM32XX/HAL_Inc</code></td>
<td>STM32 Hardware Abstraction Layer headers for every chip series</td>
</tr>
<tr>
<td><code>system/STM32XX/HAL_Src</code></td>
<td>STM32 Hardware Abstraction Layer implementation for every chip series</td>
</tr>
<tr>
<td><code>system/STM32XX/stm32_chip</code></td>
<td>For every chip, default and alternate pins, clock frequencies, cannels for peripherals: SPI, I2C, ADC... autogenerated from CubeMX db/*.xml files with tools/script/generate_build_define.py.</td>
</tr>
<tr>
<td><code>cores/arduino/</code></td>
<td>Arduino API definitions and Arduino-utility functions.</td>
</tr>
<tr>
<td><code>cores/arduino/stm32_HAL</code></td>
<td>Select (compile) the specific files from <code>system/STM32XX/HAL_Src</code>, based on boards.txt <code>*.build.series</code> value</td>
</tr>
<tr>
<td><code>cores/arduino/usb</code></td>
<td>STM32 USB Middleware</td>
</tr>
<tr>
<td><code>cores/arduino/stm32</code></td>
<td>STM32 implementation of the Arduino API. First implementation is a light wrapper around HAL</td>
</tr>
<tr>
<td><code>variants/.../*</code></td>
<td>Variant specific files: <code>ldscript.ld</code> for memory layout, <code>systemclock_config.c</code> for clock setup, generated by STM32CubeMX, <code>variant.*</code> for variant pin layout and pin definitions (pin layout can be copy/pasted from <code>system/STM32XX/stm32_chip/*</code>).</td>
</tr>
</tbody>
</table>
<h2 id="general-development-direction">General development direction</h2>
<ul>
<li>Self-test code to run on a board to check if the API works for that variant.</li>
<li>Automatic unit test compilation. This ensures that a code change does not break other boards.</li>
<li>Automatic library compilation, to be as arduino-compatible as possible.</li>
<li>Benchmarks to pinpoint bottlenecks.</li>
<li>Hacker-friendly: Enable to use HAL/CMSIS; enable overriding of every IRQ handler.</li>
<li>Add DFU/MSC/HID/MIDI to USB. Rewrite USB to PluggableUSB to be more arduino-compatible.</li>
<li>Create SDIO library</li>
<li>Create I2S library</li>
<li>Create CAN library</li>
</ul></div>
</div>
<footer class="col-md-12">
<hr>
<center>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</center>
</footer>
<script>var base_url = '..';</script>
<script data-main="../mkdocs/js/search.js" src="../mkdocs/js/require.js"></script>
<script src="../js/base.js"></script>
<div class="modal" id="mkdocs_search_modal" tabindex="-1" role="dialog" aria-labelledby="Search Modal" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
<h4 class="modal-title" id="exampleModalLabel">Search</h4>
</div>
<div class="modal-body">
<p>
From here you can search these documents. Enter
your search terms below.
</p>
<form role="form">
<div class="form-group">
<input type="text" class="form-control" placeholder="Search..." id="mkdocs-search-query">
</div>
</form>
<div id="mkdocs-search-results"></div>
</div>
<div class="modal-footer">
</div>
</div>
</div>
</div>
</body>
</html>

View File

@ -117,7 +117,7 @@
<li >
<a href="../test/">Testnga board</a>
<a href="../test/">Testing a board</a>
</li>
@ -125,6 +125,12 @@
</li>
<li >
<a href="../about/">About</a>
</li>
</ul>
<!-- Search, Navigation and Repo links -->

View File

@ -117,7 +117,7 @@
<li >
<a href="../test/">Testnga board</a>
<a href="../test/">Testing a board</a>
</li>
@ -125,6 +125,12 @@
</li>
<li >
<a href="../about/">About</a>
</li>
</ul>
<!-- Search, Navigation and Repo links -->

View File

@ -117,7 +117,7 @@
<li >
<a href="../test/">Testnga board</a>
<a href="../test/">Testing a board</a>
</li>
@ -125,6 +125,12 @@
</li>
<li >
<a href="../about/">About</a>
</li>
</ul>
<!-- Search, Navigation and Repo links -->

View File

@ -117,7 +117,7 @@
<li >
<a href="../test/">Testnga board</a>
<a href="../test/">Testing a board</a>
</li>
@ -125,6 +125,12 @@
</li>
<li >
<a href="../about/">About</a>
</li>
</ul>
<!-- Search, Navigation and Repo links -->

View File

@ -117,7 +117,7 @@
<li >
<a href="test/">Testnga board</a>
<a href="test/">Testing a board</a>
</li>
@ -125,6 +125,12 @@
</li>
<li >
<a href="about/">About</a>
</li>
</ul>
<!-- Search, Navigation and Repo links -->
@ -167,10 +173,6 @@
<li><a href="#api-documentation">API documentation</a></li>
<li><a href="#goals">Goals</a></li>
<li><a href="#general-development-direction">General development direction</a></li>
</ul>
@ -192,27 +194,7 @@
<h2 id="list-of-boards">List of boards</h2>
<p>Please go to the <a href="./boards">Boards</a> page.</p>
<h2 id="api-documentation">API documentation</h2>
<p>Please go to the <a href="arduino_api/">Arduino API implementation</a> page.</p>
<hr />
<h2 id="goals">Goals</h2>
<ul>
<li>Generic implementation using <code>STM32 HAL API</code> to compile onto every STM32 board.</li>
<li>For the most used boards, optimize code paths using direct register access.</li>
<li>Make adding boards easy</li>
<li>Make as compatible with default libraries as possible</li>
</ul>
<h2 id="general-development-direction">General development direction</h2>
<ul>
<li>Self-test code to run on a board to check if the API works for that variant.</li>
<li>Automatic unit test compilation. This ensures that a code change does not break other boards.</li>
<li>Automatic library compilation, to be as arduino-compatible as possible.</li>
<li>Benchmarks to pinpoint bottlenecks.</li>
<li>Hacker-friendly: Enable to use HAL/CMSIS; enable overriding of every IRQ handler.</li>
<li>Add DFU/MSC/HID/MIDI to USB. Rewrite USB to PluggableUSB to be more arduino-compatible.</li>
<li>Create SDIO library</li>
<li>Create I2S library</li>
<li>Create CAN library</li>
</ul></div>
<p>Please go to the <a href="arduino_api/">Arduino API implementation</a> page.</p></div>
</div>
<footer class="col-md-12">

View File

@ -117,7 +117,7 @@
<li >
<a href="../test/">Testnga board</a>
<a href="../test/">Testing a board</a>
</li>
@ -125,6 +125,12 @@
</li>
<li >
<a href="../about/">About</a>
</li>
</ul>
<!-- Search, Navigation and Repo links -->

View File

@ -117,7 +117,7 @@
<li >
<a href="../test/">Testnga board</a>
<a href="../test/">Testing a board</a>
</li>
@ -125,6 +125,12 @@
</li>
<li >
<a href="../about/">About</a>
</li>
</ul>
<!-- Search, Navigation and Repo links -->

View File

@ -2,7 +2,7 @@
"docs": [
{
"location": "/",
"text": "STM32GENERIC\n\n\nA generic \nArduino\n implementation for \nSTM32 boards\n.\n\n\nInstallation - Users\n\n\nTODO create boards manager package\n\n\nInstallation - Developers\n\n\n\n\nDownload the latest version from \nhttps://github.com/danieleff/STM32GENERIC\n\n\nUnzip it into [Arduino]/hardware folder\n\n\nInstall Arduino Zero from the board manager for the arm-none-eabi-gcc compiler\n\n\n\n\nUploading\n\n\nPlease go to the \nUploading\n page.\n\n\nList of boards\n\n\nPlease go to the \nBoards\n page.\n\n\nAPI documentation\n\n\nPlease go to the \nArduino API implementation\n page.\n\n\n\n\nGoals\n\n\n\n\nGeneric implementation using \nSTM32 HAL API\n to compile onto every STM32 board.\n\n\nFor the most used boards, optimize code paths using direct register access.\n\n\nMake adding boards easy\n\n\nMake as compatible with default libraries as possible\n\n\n\n\nGeneral development direction\n\n\n\n\nSelf-test code to run on a board to check if the API works for that variant.\n\n\nAutomatic unit test compilation. This ensures that a code change does not break other boards.\n\n\nAutomatic library compilation, to be as arduino-compatible as possible.\n\n\nBenchmarks to pinpoint bottlenecks.\n\n\nHacker-friendly: Enable to use HAL/CMSIS; enable overriding of every IRQ handler.\n\n\nAdd DFU/MSC/HID/MIDI to USB. Rewrite USB to PluggableUSB to be more arduino-compatible.\n\n\nCreate SDIO library\n\n\nCreate I2S library\n\n\nCreate CAN library",
"text": "STM32GENERIC\n\n\nA generic \nArduino\n implementation for \nSTM32 boards\n.\n\n\nInstallation - Users\n\n\nTODO create boards manager package\n\n\nInstallation - Developers\n\n\n\n\nDownload the latest version from \nhttps://github.com/danieleff/STM32GENERIC\n\n\nUnzip it into [Arduino]/hardware folder\n\n\nInstall Arduino Zero from the board manager for the arm-none-eabi-gcc compiler\n\n\n\n\nUploading\n\n\nPlease go to the \nUploading\n page.\n\n\nList of boards\n\n\nPlease go to the \nBoards\n page.\n\n\nAPI documentation\n\n\nPlease go to the \nArduino API implementation\n page.",
"title": "Installation"
},
{
@ -35,16 +35,6 @@
"text": "Please go to the Arduino API implementation page.",
"title": "API documentation"
},
{
"location": "/#goals",
"text": "Generic implementation using STM32 HAL API to compile onto every STM32 board. For the most used boards, optimize code paths using direct register access. Make adding boards easy Make as compatible with default libraries as possible",
"title": "Goals"
},
{
"location": "/#general-development-direction",
"text": "Self-test code to run on a board to check if the API works for that variant. Automatic unit test compilation. This ensures that a code change does not break other boards. Automatic library compilation, to be as arduino-compatible as possible. Benchmarks to pinpoint bottlenecks. Hacker-friendly: Enable to use HAL/CMSIS; enable overriding of every IRQ handler. Add DFU/MSC/HID/MIDI to USB. Rewrite USB to PluggableUSB to be more arduino-compatible. Create SDIO library Create I2S library Create CAN library",
"title": "General development direction"
},
{
"location": "/upload/",
"text": "Uploading your sketch\n\n\n\n\n\n\n\n\nMethod\n\n\nConnection\n\n\nRequirements\n\n\n\n\n\n\n\n\n\n\nFlash Bootloader\n\n\nUSB\n\n\nUSB connector, Bootloader already installed\n\n\n\n\n\n\nSystem bootloader\n\n\nUART\n\n\nBOOT0 / BOOT1 pins accessible, USB to UART adapter\n\n\n\n\n\n\nSWD / ST-link / JTAG\n\n\nSWD pins\n\n\nProgrammer hardware, (included in Nucleo and Discovery boards)\n\n\n\n\n\n\nBlack Magic Probe",
@ -358,7 +348,7 @@
{
"location": "/test/",
"text": "Self tesing boards\n\n\nTo automatically check if the board works, there are tests in the library.\nThese work by connecting pins to \n\n\nGeneric STM32 Arduino API test\n\n\nThis test should work on almost all STM32 boards. \n\n\n\n\nFrom the arduino menu, select File/Examples/Examples for XXX/SelfTest\n\n\nConnect PA0 to PA1 to test digital/analog/read/write/interrupt\n\n\nConnect SPI MOSI to SPI MISO to test SPI\n\n\nSelect a free UART (not used for Serial) on the board, connect the RX to TX, set the SerialUartToTest macro in the sketch\n\n\nRun the sketch\n\n\n\n\nThe result should be short blink on the board LED.\nIf there was a failure, it is shown as a long LED \n\n\nThe results are also",
"title": "Testnga board"
"title": "Testing a board"
},
{
"location": "/test/#self-tesing-boards",
@ -369,6 +359,26 @@
"location": "/test/#generic-stm32-arduino-api-test",
"text": "This test should work on almost all STM32 boards. From the arduino menu, select File/Examples/Examples for XXX/SelfTest Connect PA0 to PA1 to test digital/analog/read/write/interrupt Connect SPI MOSI to SPI MISO to test SPI Select a free UART (not used for Serial) on the board, connect the RX to TX, set the SerialUartToTest macro in the sketch Run the sketch The result should be short blink on the board LED.\nIf there was a failure, it is shown as a long LED The results are also",
"title": "Generic STM32 Arduino API test"
},
{
"location": "/about/",
"text": "Goals\n\n\n\n\nGeneric implementation using \nSTM32 HAL API\n to compile onto every STM32 board.\n\n\nFor the most used boards, optimize code paths using direct register access.\n\n\nMake adding boards easy\n\n\nMake as compatible with default libraries as possible\n\n\n\n\nProject structure\n\n\n\n\n\n\n\n\nDirector\n\n\nDescription\n\n\n\n\n\n\n\n\n\n\nsystem/CMSIS\n\n\nCMSIS header files from ARM for cortex-M0/M3/M4/M7 microcontrollers\n\n\n\n\n\n\nsystem/STM32XX/CMSIS_Inc\n\n\nCMSIS header files specific STM32 chips, contains memory layout and register access for every chip\n\n\n\n\n\n\nsystem/STM32XX/CMSIS_Src\n\n\nCMSIS startup assembly files specific STM32 chips, contains ISR vector for interrupt handlers and reset handler default implementation\n\n\n\n\n\n\nsystem/STM32XX/HAL_Inc\n\n\nSTM32 Hardware Abstraction Layer headers for every chip series\n\n\n\n\n\n\nsystem/STM32XX/HAL_Src\n\n\nSTM32 Hardware Abstraction Layer implementation for every chip series\n\n\n\n\n\n\nsystem/STM32XX/stm32_chip\n\n\nFor every chip, default and alternate pins, clock frequencies, cannels for peripherals: SPI, I2C, ADC... autogenerated from CubeMX db/*.xml files with tools/script/generate_build_define.py.\n\n\n\n\n\n\ncores/arduino/\n\n\nArduino API definitions and Arduino-utility functions.\n\n\n\n\n\n\ncores/arduino/stm32_HAL\n\n\nSelect (compile) the specific files from \nsystem/STM32XX/HAL_Src\n, based on boards.txt \n*.build.series\n value\n\n\n\n\n\n\ncores/arduino/usb\n\n\nSTM32 USB Middleware\n\n\n\n\n\n\ncores/arduino/stm32\n\n\nSTM32 implementation of the Arduino API. First implementation is a light wrapper around HAL\n\n\n\n\n\n\nvariants/.../*\n\n\nVariant specific files: \nldscript.ld\n for memory layout, \nsystemclock_config.c\n for clock setup, generated by STM32CubeMX, \nvariant.*\n for variant pin layout and pin definitions (pin layout can be copy/pasted from \nsystem/STM32XX/stm32_chip/*\n).\n\n\n\n\n\n\n\n\nGeneral development direction\n\n\n\n\nSelf-test code to run on a board to check if the API works for that variant.\n\n\nAutomatic unit test compilation. This ensures that a code change does not break other boards.\n\n\nAutomatic library compilation, to be as arduino-compatible as possible.\n\n\nBenchmarks to pinpoint bottlenecks.\n\n\nHacker-friendly: Enable to use HAL/CMSIS; enable overriding of every IRQ handler.\n\n\nAdd DFU/MSC/HID/MIDI to USB. Rewrite USB to PluggableUSB to be more arduino-compatible.\n\n\nCreate SDIO library\n\n\nCreate I2S library\n\n\nCreate CAN library",
"title": "About"
},
{
"location": "/about/#goals",
"text": "Generic implementation using STM32 HAL API to compile onto every STM32 board. For the most used boards, optimize code paths using direct register access. Make adding boards easy Make as compatible with default libraries as possible",
"title": "Goals"
},
{
"location": "/about/#project-structure",
"text": "Director Description system/CMSIS CMSIS header files from ARM for cortex-M0/M3/M4/M7 microcontrollers system/STM32XX/CMSIS_Inc CMSIS header files specific STM32 chips, contains memory layout and register access for every chip system/STM32XX/CMSIS_Src CMSIS startup assembly files specific STM32 chips, contains ISR vector for interrupt handlers and reset handler default implementation system/STM32XX/HAL_Inc STM32 Hardware Abstraction Layer headers for every chip series system/STM32XX/HAL_Src STM32 Hardware Abstraction Layer implementation for every chip series system/STM32XX/stm32_chip For every chip, default and alternate pins, clock frequencies, cannels for peripherals: SPI, I2C, ADC... autogenerated from CubeMX db/*.xml files with tools/script/generate_build_define.py. cores/arduino/ Arduino API definitions and Arduino-utility functions. cores/arduino/stm32_HAL Select (compile) the specific files from system/STM32XX/HAL_Src , based on boards.txt *.build.series value cores/arduino/usb STM32 USB Middleware cores/arduino/stm32 STM32 implementation of the Arduino API. First implementation is a light wrapper around HAL variants/.../* Variant specific files: ldscript.ld for memory layout, systemclock_config.c for clock setup, generated by STM32CubeMX, variant.* for variant pin layout and pin definitions (pin layout can be copy/pasted from system/STM32XX/stm32_chip/* ).",
"title": "Project structure"
},
{
"location": "/about/#general-development-direction",
"text": "Self-test code to run on a board to check if the API works for that variant. Automatic unit test compilation. This ensures that a code change does not break other boards. Automatic library compilation, to be as arduino-compatible as possible. Benchmarks to pinpoint bottlenecks. Hacker-friendly: Enable to use HAL/CMSIS; enable overriding of every IRQ handler. Add DFU/MSC/HID/MIDI to USB. Rewrite USB to PluggableUSB to be more arduino-compatible. Create SDIO library Create I2S library Create CAN library",
"title": "General development direction"
}
]
}

View File

@ -4,7 +4,7 @@
<url>
<loc>/</loc>
<lastmod>2017-04-18</lastmod>
<lastmod>2017-04-19</lastmod>
<changefreq>daily</changefreq>
</url>
@ -12,7 +12,7 @@
<url>
<loc>/upload/</loc>
<lastmod>2017-04-18</lastmod>
<lastmod>2017-04-19</lastmod>
<changefreq>daily</changefreq>
</url>
@ -21,25 +21,25 @@
<url>
<loc>/menu_options/</loc>
<lastmod>2017-04-18</lastmod>
<lastmod>2017-04-19</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>/arduino_api/</loc>
<lastmod>2017-04-18</lastmod>
<lastmod>2017-04-19</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>/arduino_libraries/</loc>
<lastmod>2017-04-18</lastmod>
<lastmod>2017-04-19</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>/stm32_hal/</loc>
<lastmod>2017-04-18</lastmod>
<lastmod>2017-04-19</lastmod>
<changefreq>daily</changefreq>
</url>
@ -48,7 +48,7 @@
<url>
<loc>/libraries/</loc>
<lastmod>2017-04-18</lastmod>
<lastmod>2017-04-19</lastmod>
<changefreq>daily</changefreq>
</url>
@ -57,22 +57,30 @@
<url>
<loc>/boards/</loc>
<lastmod>2017-04-18</lastmod>
<lastmod>2017-04-19</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>/add_board/</loc>
<lastmod>2017-04-18</lastmod>
<lastmod>2017-04-19</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>/test/</loc>
<lastmod>2017-04-18</lastmod>
<lastmod>2017-04-19</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>/about/</loc>
<lastmod>2017-04-19</lastmod>
<changefreq>daily</changefreq>
</url>
</urlset>

View File

@ -117,7 +117,7 @@
<li >
<a href="../test/">Testnga board</a>
<a href="../test/">Testing a board</a>
</li>
@ -125,6 +125,12 @@
</li>
<li >
<a href="../about/">About</a>
</li>
</ul>
<!-- Search, Navigation and Repo links -->

View File

@ -8,7 +8,7 @@
<link rel="shortcut icon" href="../img/favicon.ico">
<title>Testnga board - STM32GENERIC</title>
<title>Testing a board - STM32GENERIC</title>
<link href="../css/bootstrap-custom.min.css" rel="stylesheet">
<link href="../css/font-awesome-4.0.3.css" rel="stylesheet">
<link rel="stylesheet" href="../css/highlight.css">
@ -117,7 +117,7 @@
<li class="active">
<a href="./">Testnga board</a>
<a href="./">Testing a board</a>
</li>
@ -125,6 +125,12 @@
</li>
<li >
<a href="../about/">About</a>
</li>
</ul>
<!-- Search, Navigation and Repo links -->
@ -139,8 +145,8 @@
<i class="fa fa-arrow-left"></i> Previous
</a>
</li>
<li class="disabled">
<a rel="prev" >
<li >
<a rel="prev" href="../about/">
Next <i class="fa fa-arrow-right"></i>
</a>
</li>

View File

@ -117,7 +117,7 @@
<li >
<a href="../test/">Testnga board</a>
<a href="../test/">Testing a board</a>
</li>
@ -125,6 +125,12 @@
</li>
<li >
<a href="../about/">About</a>
</li>
</ul>
<!-- Search, Navigation and Repo links -->

View File

@ -12,5 +12,6 @@ pages:
- STM32 Boards:
- Boards list: boards.md
- Adding a board: add_board.md
- Testnga board: test.md
- Testing a board: test.md
- About: about.md

View File

@ -0,0 +1,36 @@
## Goals
* Generic implementation using `STM32 HAL API` to compile onto every STM32 board.
* For the most used boards, optimize code paths using direct register access.
* Make adding boards easy
* Make as compatible with default libraries as possible
## Project structure
Director | Description
---|---
`system/CMSIS` | CMSIS header files from ARM for cortex-M0/M3/M4/M7 microcontrollers
`system/STM32XX/CMSIS_Inc` | CMSIS header files specific STM32 chips, contains memory layout and register access for every chip
`system/STM32XX/CMSIS_Src` | CMSIS startup assembly files specific STM32 chips, contains ISR vector for interrupt handlers and reset handler default implementation
`system/STM32XX/HAL_Inc` | STM32 Hardware Abstraction Layer headers for every chip series
`system/STM32XX/HAL_Src` | STM32 Hardware Abstraction Layer implementation for every chip series
`system/STM32XX/stm32_chip`| For every chip, default and alternate pins, clock frequencies, cannels for peripherals: SPI, I2C, ADC... autogenerated from CubeMX db/*.xml files with tools/script/generate_build_define.py.
`cores/arduino/` | Arduino API definitions and Arduino-utility functions.
`cores/arduino/stm32_HAL` | Select (compile) the specific files from `system/STM32XX/HAL_Src`, based on boards.txt `*.build.series` value
`cores/arduino/usb` | STM32 USB Middleware
`cores/arduino/stm32` | STM32 implementation of the Arduino API. First implementation is a light wrapper around HAL
`variants/.../*` | Variant specific files: `ldscript.ld` for memory layout, `systemclock_config.c` for clock setup, generated by STM32CubeMX, `variant.*` for variant pin layout and pin definitions (pin layout can be copy/pasted from `system/STM32XX/stm32_chip/*`).
## General development direction
* Self-test code to run on a board to check if the API works for that variant.
* Automatic unit test compilation. This ensures that a code change does not break other boards.
* Automatic library compilation, to be as arduino-compatible as possible.
* Benchmarks to pinpoint bottlenecks.
* Hacker-friendly: Enable to use HAL/CMSIS; enable overriding of every IRQ handler.
* Add DFU/MSC/HID/MIDI to USB. Rewrite USB to PluggableUSB to be more arduino-compatible.
* Create SDIO library
* Create I2S library
* Create CAN library

View File

@ -24,24 +24,3 @@ Please go to the [Boards](boards) page.
## API documentation
Please go to the [Arduino API implementation](arduino_api.md) page.
---
## Goals
* Generic implementation using `STM32 HAL API` to compile onto every STM32 board.
* For the most used boards, optimize code paths using direct register access.
* Make adding boards easy
* Make as compatible with default libraries as possible
## General development direction
* Self-test code to run on a board to check if the API works for that variant.
* Automatic unit test compilation. This ensures that a code change does not break other boards.
* Automatic library compilation, to be as arduino-compatible as possible.
* Benchmarks to pinpoint bottlenecks.
* Hacker-friendly: Enable to use HAL/CMSIS; enable overriding of every IRQ handler.
* Add DFU/MSC/HID/MIDI to USB. Rewrite USB to PluggableUSB to be more arduino-compatible.
* Create SDIO library
* Create I2S library
* Create CAN library