From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=unavailable autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!mx02.eternal-september.org!.POSTED!not-for-mail From: Simon Wright Newsgroups: comp.lang.ada Subject: Re: ANN: STM32F4 GNAT Run Time Systems 20150406 Date: Fri, 24 Apr 2015 12:12:35 +0100 Organization: A noiseless patient Spider Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain Injection-Info: mx02.eternal-september.org; posting-host="64b4c1505dbd9f45d064ed0ede641202"; logging-data="13798"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+XnIhI0+LTJNDMJBlW6mbC+GphK1mH7Xs=" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.4 (darwin) Cancel-Lock: sha1:PUjnnJuaMlNAZfFp9cIBW9EJLn8= sha1:bS5SsYe/YvGK51WohOUJngglB54= Xref: news.eternal-september.org comp.lang.ada:25591 Date: 2015-04-24T12:12:35+01:00 List-Id: Tero Koskinen writes: > 23.4.2015, 15:40, Jedi Tek'Unum kirjoitti: >> On Wednesday, April 22, 2015 at 3:59:26 PM UTC-5, Simon Wright >> wrote: >>> Now I have GCC 5.1, this issue, and one of my own projects with a >>> lurking bug that needs major rework to fix - fun all round! I will >>> certainly get on to this (just downloaded 1.5.0). >> >> In my 35+ years working in the world of "big iron" I am constantly >> disappointed with portability hell in just the Unix zoo - even in the >> context of "standards". I only recently started playing with the >> embedded world and it makes the Unix world look like nirvana! >> Somebody needs to develop an industry standard HAL that the chip >> vendors can all implement. > > There is one, it is called CMSIS - Cortex Microcontroller Software > Interface Standard, see > http://www.arm.com/products/processors/cortex-m/cortex-microcontroller-software-interface-standard.php I first thought CMSIS would be the way to go. ST's CMSIS is implemented in FreeRTOS, and CMSIS's approach to task creation seemed excessively clumsy compared to the FreeRTOS version, and FreeRTOS has a wider applicability than CMSIS, so it seemed like a better bet. > In this case, ST just is not that good at software development. Their > Stdperipheral and Cube libraries are quite buggy or hard to use and > many prefer "raw" register access instead. Not a lot of experience with this, but I found dealing with the register access straightforward and no more complicated (indeed, less complicated) than handling the STMCube version. For STMCube 1.5.0 vs 1.3.0, the only change I've had to make in that small sample of code (GPIO-related) is that ST used to split the 32-bit BSRR register into 16-bit BSRRH and BSRRL; the newer way seems closer to the reference manual.