tag:github.com,2008:https://github.com/andysworkshop/stm32plus/releases Release notes from stm32plus 2021-02-23T08:33:43Z tag:github.com,2008:Repository/9329533/4.0.7 2021-02-24T08:35:54Z Release 4.0.7 <p>Include latest commits</p> andysworkshop tag:github.com,2008:Repository/9329533/4.0.6 2020-02-02T18:37:07Z Release 4.0.6 <p>Catch up with the commits since release 4.0.5</p> andysworkshop tag:github.com,2008:Repository/9329533/4.0.5 2016-11-12T12:41:56Z Size and speed optimisations <p>This release collects together a number of optimisations for speed and size. You can read about them in more detail in issue <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="187545022" data-permission-text="Title is private" data-url="https://github.com/andysworkshop/stm32plus/issues/189" data-hovercard-type="issue" data-hovercard-url="/andysworkshop/stm32plus/issues/189/hovercard" href="https://github.com/andysworkshop/stm32plus/issues/189">#189</a>. To summarise, they are:</p> <ol> <li>Wrap the libc <code>atexit</code> function with a do-nothing replacement. This is one of those methods that's only required if you have a real OS managing your process.</li> <li>Add a <code>scons</code> option for link-time optimisation (<code>lto=yes</code>). Link-time optimisation can save a lot of space due to the ability to optimise across compilation units. This even benefits those of us that practice 'header-only' development due to its ability to optimise the inefficient layout of the ST standard peripheral library.</li> <li>Import the small, efficient implementation of the <code>udiv</code> instruction from the chromium project. The F0 does not have a <code>udiv</code> instruction so it has to be done in software and the gcc implementation isn't small or efficient. Other MCU families are not affected.</li> </ol> andysworkshop tag:github.com,2008:Repository/9329533/4.0.4 2016-07-16T13:37:57Z Release 4.0.4 No content. andysworkshop tag:github.com,2008:Repository/9329533/4.0.3 2015-10-31T11:04:10Z 4.0.3: Miscellaneous enhancements and fixes <p>Release 4.0.3 collects together a number of new features and bug fixes. Notably:</p> <p><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="98390214" data-permission-text="Title is private" data-url="https://github.com/andysworkshop/stm32plus/issues/126" data-hovercard-type="pull_request" data-hovercard-url="/andysworkshop/stm32plus/pull/126/hovercard" href="https://github.com/andysworkshop/stm32plus/pull/126">#126</a> Remap I2C1 on STM32F1<br> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="104001474" data-permission-text="Title is private" data-url="https://github.com/andysworkshop/stm32plus/issues/134" data-hovercard-type="pull_request" data-hovercard-url="/andysworkshop/stm32plus/pull/134/hovercard" href="https://github.com/andysworkshop/stm32plus/pull/134">#134</a> STM32F10X MD support<br> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="99788692" data-permission-text="Title is private" data-url="https://github.com/andysworkshop/stm32plus/issues/129" data-hovercard-type="issue" data-hovercard-url="/andysworkshop/stm32plus/issues/129/hovercard" href="https://github.com/andysworkshop/stm32plus/issues/129">#129</a> Support HSI internal clock when available on the MCU<br> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="98530444" data-permission-text="Title is private" data-url="https://github.com/andysworkshop/stm32plus/issues/128" data-hovercard-type="issue" data-hovercard-url="/andysworkshop/stm32plus/issues/128/hovercard" href="https://github.com/andysworkshop/stm32plus/issues/128">#128</a> Implement support for the internal flash peripheral<br> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="93090666" data-permission-text="Title is private" data-url="https://github.com/andysworkshop/stm32plus/issues/124" data-hovercard-type="issue" data-hovercard-url="/andysworkshop/stm32plus/issues/124/hovercard" href="https://github.com/andysworkshop/stm32plus/issues/124">#124</a> Upgrade to v1.5 of the standard peripheral library for the F0.<br> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="74142040" data-permission-text="Title is private" data-url="https://github.com/andysworkshop/stm32plus/issues/116" data-hovercard-type="issue" data-hovercard-url="/andysworkshop/stm32plus/issues/116/hovercard" href="https://github.com/andysworkshop/stm32plus/issues/116">#116</a> Provide async version of tcpConnect().</p> andysworkshop tag:github.com,2008:Repository/9329533/4.0.2 2015-05-03T15:42:31Z Release 4.0.2: bug fixes <p>This release collects together the bug fixes that have been applied since release 4.0.0. The following issues have been addressed:</p> <p><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="59432639" data-permission-text="Title is private" data-url="https://github.com/andysworkshop/stm32plus/issues/97" data-hovercard-type="pull_request" data-hovercard-url="/andysworkshop/stm32plus/pull/97/hovercard" href="https://github.com/andysworkshop/stm32plus/pull/97">#97</a>: Fix floatOpt function so that it actually works<br> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="61416078" data-permission-text="Title is private" data-url="https://github.com/andysworkshop/stm32plus/issues/100" data-hovercard-type="issue" data-hovercard-url="/andysworkshop/stm32plus/issues/100/hovercard" href="https://github.com/andysworkshop/stm32plus/issues/100">#100</a>: stm32f4xx_can doesn't build correctly<br> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="64525205" data-permission-text="Title is private" data-url="https://github.com/andysworkshop/stm32plus/issues/103" data-hovercard-type="issue" data-hovercard-url="/andysworkshop/stm32plus/issues/103/hovercard" href="https://github.com/andysworkshop/stm32plus/issues/103">#103</a>: SPI Timing issue<br> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="65259035" data-permission-text="Title is private" data-url="https://github.com/andysworkshop/stm32plus/issues/105" data-hovercard-type="pull_request" data-hovercard-url="/andysworkshop/stm32plus/pull/105/hovercard" href="https://github.com/andysworkshop/stm32plus/pull/105">#105</a>: Fix cmake example<br> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="65400569" data-permission-text="Title is private" data-url="https://github.com/andysworkshop/stm32plus/issues/106" data-hovercard-type="pull_request" data-hovercard-url="/andysworkshop/stm32plus/pull/106/hovercard" href="https://github.com/andysworkshop/stm32plus/pull/106">#106</a>: Update 'new' signature<br> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="68271524" data-permission-text="Title is private" data-url="https://github.com/andysworkshop/stm32plus/issues/108" data-hovercard-type="issue" data-hovercard-url="/andysworkshop/stm32plus/issues/108/hovercard" href="https://github.com/andysworkshop/stm32plus/issues/108">#108</a>: Ethernet PHY Support (for the LAN8710A)<br> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="72502585" data-permission-text="Title is private" data-url="https://github.com/andysworkshop/stm32plus/issues/112" data-hovercard-type="pull_request" data-hovercard-url="/andysworkshop/stm32plus/pull/112/hovercard" href="https://github.com/andysworkshop/stm32plus/pull/112">#112</a>: Switch htons -&gt; ntohs in UDP example<br> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="72822210" data-permission-text="Title is private" data-url="https://github.com/andysworkshop/stm32plus/issues/113" data-hovercard-type="issue" data-hovercard-url="/andysworkshop/stm32plus/issues/113/hovercard" href="https://github.com/andysworkshop/stm32plus/issues/113">#113</a>: Support for the Tianma TM032LDH05</p> andysworkshop tag:github.com,2008:Repository/9329533/4.0.1 2015-05-02T10:12:21Z 4.0.1: Merge pull request #112 from mikepurvis/patch-2 <p>Switch htons -&gt; ntohs in UDP example</p> andysworkshop tag:github.com,2008:Repository/9329533/4.0.0 2015-02-28T12:35:59Z Release 4.0.0 - F4 USB device support <p>Release 4.0.0 marks a major milestone in the development of stm32plus because we now support the USB peripheral in device mode on the F4 series of MCUs. Device mode means that your F4 operates as a peripheral <em>device</em> when connected to a <em>host</em> such as a PC.</p> <ul> <li>The onboard full speed PHY (12Mb/s) is the only supported PHY. The external ULPI PHY (480Mb/s) is not yet supported.</li> <li>The supported device classes are HID, CDC and MSC.</li> </ul> <p>There are a number of new examples that demonstrate the use of the USB peripheral. They're all designed to run out-of-the-box on the popular F4 discovery board so you should be able to get up and running really quickly.</p> <p><a href="https://github.com/andysworkshop/stm32plus/tree/master/examples/usb_device_cdc_com_port">usb_device_cdc_com_port</a> creates a virtual COM port that allows you to talk to your discovery board down the USB cable just as if it were an old style serial port. If you were thinking of using one of those FTDI USB-to-serial converters in your project then this technique just saved you a few dollars.</p> <p><a href="https://github.com/andysworkshop/stm32plus/tree/master/examples/usb_device_hid_custom_adc">usb_device_hid_custom_adc</a> shows how to create a HID device that periodically sends back small packets of data to the host. In this example we use the ADC peripheral to do conversions and send back the results to the PC. Real-world examples might be environment monitoring, for example temperature or weather.</p> <p><a href="https://github.com/andysworkshop/stm32plus/tree/master/examples/usb_device_hid_keyboard">usb_device_hid_keyboard</a> shows how to configure a HID device as a keyboard. Our example illustrates how to send back keystrokes to the host as well as to receive LED indicator change updates from the host.</p> <p><a href="https://github.com/andysworkshop/stm32plus/tree/master/examples/usb_device_hid_mouse">usb_device_hid_mouse</a> creates a wacky mouse out of your F4 discovery board. The built-in accelerometer is used to move the cursor around the screen.</p> <p><a href="https://github.com/andysworkshop/stm32plus/tree/master/examples/usb_device_msc_internal">usb_device_msc_internal</a> is a mass-storage device example. A small FAT12 filesystem is compiled into the <code>hex</code> file that you flash to the F4. When you connect up the F4 to the PC the filesystem is mounted and you can open and view a few sample files.</p> <p><a href="https://github.com/andysworkshop/stm32plus/tree/master/examples/usb_device_msc_sdcard">usb_device_msc_sdcard</a> is the canonical mass storage example and demo's the <em>killer feature</em> of the mass storage device class, that is the ability to hook up an SD card and use it as a disk drive storage device. This is not a standalone example - you'll need to hook up an SD card to your F4 to use it.</p> <p>In addition to this major new feature there are a number of small features and bug-fixes.</p> <p><strong>Added the SemiHosting class and example: <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="53585546" data-permission-text="Title is private" data-url="https://github.com/andysworkshop/stm32plus/issues/80" data-hovercard-type="pull_request" data-hovercard-url="/andysworkshop/stm32plus/pull/80/hovercard" href="https://github.com/andysworkshop/stm32plus/pull/80">#80</a></strong><br> Semi-hosting is a bad name for a great feature. It allows you to output debug strings from your running firmware to the console of the attached debugger. That means that if you're debugging in Eclipse and are using OpenOCD to connect to your board then you'll see strings output in your OpenOCD terminal window. There's an <a href="https://github.com/andysworkshop/stm32plus/tree/master/examples/debug_semihosting">example</a> to show you how to use it. Thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/joac/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/joac">@joac</a> for contributing this code.</p> <p><strong>Spi: add single byte/half-word send: <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="55253424" data-permission-text="Title is private" data-url="https://github.com/andysworkshop/stm32plus/issues/88" data-hovercard-type="pull_request" data-hovercard-url="/andysworkshop/stm32plus/pull/88/hovercard" href="https://github.com/andysworkshop/stm32plus/pull/88">#88</a></strong><br> This new feature allows you to easily send single bytes to the SPI peripheral. Thanks to @punkkeks for this contribution.</p> <p><strong>Fix FMC <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="55905545" data-permission-text="Title is private" data-url="https://github.com/andysworkshop/stm32plus/issues/89" data-hovercard-type="pull_request" data-hovercard-url="/andysworkshop/stm32plus/pull/89/hovercard" href="https://github.com/andysworkshop/stm32plus/pull/89">#89</a></strong><br> This is a small bug fix that fixes usage of the FMC peripheral on the F429 series.</p> andysworkshop tag:github.com,2008:Repository/9329533/3.6.0 2015-01-02T12:21:14Z Release 3.6.0: F030 support <p>I'm happy to announce the 3.6.0 release of stm32plus featuring support for the low-cost F030 Cortex-m0 line (big thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/joaoc/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/joaoc">@joaoc</a> for contributing this feature). This will probably be the last 3-point-something release before the major 4.0.0 release that will support the most popular USB device classes on the F4. More on that later, but now let's see what we've got in 3.6.0:</p> <p><strong>Typo fix and addition of STM32F030</strong>: <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="53011986" data-permission-text="Title is private" data-url="https://github.com/andysworkshop/stm32plus/issues/78" data-hovercard-type="pull_request" data-hovercard-url="/andysworkshop/stm32plus/pull/78/hovercard" href="https://github.com/andysworkshop/stm32plus/pull/78">#78</a><br> The headline feature for this release. The scons mcu target name is <code>f030</code>, for example: <code>scons mode=small mcu=f030 hse=8000000</code>.</p> <p><strong>Upgrade f4 std peripheral lib to 1.4.0 and support all F4 variants</strong>: <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="47507296" data-permission-text="Title is private" data-url="https://github.com/andysworkshop/stm32plus/issues/64" data-hovercard-type="issue" data-hovercard-url="/andysworkshop/stm32plus/issues/64/hovercard" href="https://github.com/andysworkshop/stm32plus/issues/64">#64</a><br> Adds explicit support for many more F4 variants via the scons build. In practice I expect most people to carry on using <code>mcu=f4</code> which is now an alias for <code>mcu=f407</code>.</p> <p><strong>EXTI line 13 interrupt problem</strong>: <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="53012449" data-permission-text="Title is private" data-url="https://github.com/andysworkshop/stm32plus/issues/79" data-hovercard-type="issue" data-hovercard-url="/andysworkshop/stm32plus/issues/79/hovercard" href="https://github.com/andysworkshop/stm32plus/issues/79">#79</a><br> Fix a problem affecting port C EXTI interrupt support on the f0 and f4 whereby the <code>SYSCFG</code> clock was not enabled.</p> <p><strong>SDIO driver does not support 16Gb+ card capacities</strong>: <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="52892810" data-permission-text="Title is private" data-url="https://github.com/andysworkshop/stm32plus/issues/77" data-hovercard-type="issue" data-hovercard-url="/andysworkshop/stm32plus/issues/77/hovercard" href="https://github.com/andysworkshop/stm32plus/issues/77">#77</a><br> ST demonstrate that they don't really understand how the <code>C</code> language works :(</p> <p><strong>Cannot remap USART1,2,and 3 on STM32F1 series</strong>: <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="50417645" data-permission-text="Title is private" data-url="https://github.com/andysworkshop/stm32plus/issues/74" data-hovercard-type="issue" data-hovercard-url="/andysworkshop/stm32plus/issues/74/hovercard" href="https://github.com/andysworkshop/stm32plus/issues/74">#74</a><br> Important fix for USART users on the F1 series.</p> <p><strong>Found a mistake in include/traits/f1/cl/traits.h</strong>: <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="50352614" data-permission-text="Title is private" data-url="https://github.com/andysworkshop/stm32plus/issues/71" data-hovercard-type="issue" data-hovercard-url="/andysworkshop/stm32plus/issues/71/hovercard" href="https://github.com/andysworkshop/stm32plus/issues/71">#71</a><br> Removed some unused code.</p> <p><strong>F4 OTG FS Wakeup IRQ handler name incorrect</strong>: <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="48889029" data-permission-text="Title is private" data-url="https://github.com/andysworkshop/stm32plus/issues/70" data-hovercard-type="issue" data-hovercard-url="/andysworkshop/stm32plus/issues/70/hovercard" href="https://github.com/andysworkshop/stm32plus/issues/70">#70</a><br> We'll need this fix for the next release.</p> <p><strong>Exti IRQ handler gets garbage collected by the linker</strong>: <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="48887680" data-permission-text="Title is private" data-url="https://github.com/andysworkshop/stm32plus/issues/69" data-hovercard-type="issue" data-hovercard-url="/andysworkshop/stm32plus/issues/69/hovercard" href="https://github.com/andysworkshop/stm32plus/issues/69">#69</a><br> <code>gcc</code> gets a bit over-zealous with its garbage collection algorithm.</p> <p><strong>Expose remote address of received UDP datagrams</strong>: <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="48313746" data-permission-text="Title is private" data-url="https://github.com/andysworkshop/stm32plus/issues/68" data-hovercard-type="issue" data-hovercard-url="/andysworkshop/stm32plus/issues/68/hovercard" href="https://github.com/andysworkshop/stm32plus/issues/68">#68</a><br> Add commonly required functionality to the network stack.</p> <p><strong>net_udp_receive_async doesn't clear data arrived flag on startup</strong>: <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="48199845" data-permission-text="Title is private" data-url="https://github.com/andysworkshop/stm32plus/issues/67" data-hovercard-type="issue" data-hovercard-url="/andysworkshop/stm32plus/issues/67/hovercard" href="https://github.com/andysworkshop/stm32plus/issues/67">#67</a><br> Bug in one of the examples.</p> andysworkshop tag:github.com,2008:Repository/9329533/3.5.0 2014-11-01T09:22:33Z Release 3.5.0 <p>Release 3.5.0 consists of one very important change and a collection of minor fixes.</p> <h1>SysTick interrupt handler is now a weak symbol</h1> <p>In order to solve issue <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="25809873" data-permission-text="Title is private" data-url="https://github.com/andysworkshop/stm32plus/issues/18" data-hovercard-type="pull_request" data-hovercard-url="/andysworkshop/stm32plus/pull/18/hovercard" href="https://github.com/andysworkshop/stm32plus/pull/18">#18</a> <a href="https://github.com/andysworkshop/stm32plus/blob/master/lib/src/timing/MillisecondTimer.cpp#L34">SysTick_Handler</a> is now a weak symbol. The advantage of doing this is that you can supply an implementation of <code>SysTick_Handler</code> yourself and it will be used in preference to the one supplied by stm32plus. This is a requirement for integration with RTOS systems that need SysTick for their own use.</p> <p>To complete the feature I have removed the previous weak <code>SysTick_Handler</code> from every example <code>startup.asm</code> because multiple weak symbols of the same name results in undefined behavious. See commit <a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/andysworkshop/stm32plus/commit/08aef0f0febe61680eeaabd9033130f8c7f4987a/hovercard" href="https://github.com/andysworkshop/stm32plus/commit/08aef0f0febe61680eeaabd9033130f8c7f4987a"><tt>08aef0f</tt></a> for details.</p> <p><strong>_Action required!</strong>_</p> <p>If you have a program that is built against release <code>3.4.0</code> and you have used a <code>startup.asm</code> derived from an stm32plus example then you <em>must</em> delete the weak reference to <code>SysTick_Handler</code> from your <code>startup.asm</code>. See any one of <a href="https://github.com/andysworkshop/stm32plus/blob/master/examples/adc_analog_watchdog/system/f051/Startup.asm#L213-L219">the examples</a> for details (I've commented out the weak reference).</p> <h1>Fixes and features.</h1> <ul> <li>SDIO multi-block read/write implemented. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="42145876" data-permission-text="Title is private" data-url="https://github.com/andysworkshop/stm32plus/issues/59" data-hovercard-type="issue" data-hovercard-url="/andysworkshop/stm32plus/issues/59/hovercard" href="https://github.com/andysworkshop/stm32plus/issues/59">#59</a>)</li> <li>Add slave 2nd address support to I<sup>2</sup>C</li> <li>Enable internal pullups on the SDIO lines so externals are not required.</li> <li>I<sup>2</sup>C peripheral 2 support on the F0.</li> <li>Enhance circular_buffer so it's safe for the IRQ writer, main thread reader common scenario.</li> <li>Move fonts to flash on the F0. <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="43305007" data-permission-text="Title is private" data-url="https://github.com/andysworkshop/stm32plus/issues/60" data-hovercard-type="issue" data-hovercard-url="/andysworkshop/stm32plus/issues/60/hovercard" href="https://github.com/andysworkshop/stm32plus/issues/60">#60</a>.</li> <li>Fix I2C interrupt flag names on F0.</li> <li>Optimise speed of signal/slot implementation (e.g. interrupts) for the common case of a single subscriber. Results in a 2x speed increase.</li> <li>RMII remap pinout on F4 was incorrect. Fixed.</li> <li>net physical layer gets a <code>PhyHardReset</code> feature class.</li> </ul> andysworkshop