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: STM32F4 GNAT Run Time System - roadmap Date: Sun, 06 Dec 2015 18:34:41 +0000 Organization: A noiseless patient Spider Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain Injection-Info: mx02.eternal-september.org; posting-host="6f4ba2ce0f80cf6975f919f4f22c2ad9"; logging-data="815"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX196jQMHKV+3DHRACznqmiNmj7JsKTW1/zQ=" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (darwin) Cancel-Lock: sha1:3cqfE1nVpIEIrbCflIFmtO9Dh7A= sha1:HsiTLhLm7lK5BAaUByPYytbuSCo= Xref: news.eternal-september.org comp.lang.ada:28672 Date: 2015-12-06T18:34:41+00:00 List-Id: Brian Drummond writes: > Anything that can be done to make adding an MCU easier is > worthwhile. In the MSP430 case I had a parser for the C header files > so that all MSP430s were available (to the extent the parser worked) > but that won't work across multiple manufacturers. > > So establishing a framework into which someone can plug in the details > of a new MCU, or which guides or helps him in doing so, would be > important. ARM's CMSIS[1] contains (in the CMSIS-SVD tab) the definition "The System View Description (SVD) files provide peripheral information and other device parameters in formalized XML based format. "The SVD file typically matches the information provided by silicon vendors in device reference manuals." AdaCore, as recently noted here, have made some tools available on Github[2]; one of these is svd2ada. There are a lot of SVDs archived at [3]. They appear to have come from the ARM site[1] (but there are more vendors at [3] than at [1]). svd2ada will process these files (well, I tried the Arduino Due, ATSAM3X8E, and AdaCore used STM32F4*); I've not done any evaluation yet aside from noting that they generate the GNAT-specific Volatile_Full_Access aspect, which is noted in the 'under development' version of the GCC docs (so, will likely be in GCC 6). Maybe plain Volatile will do (but users would have to remember to access the whole register explicitly, rather than leaving it up to the compiler to Do The Right Thing); that would be an easy-enough patch. [1] http://www.arm.com/products/processors/cortex-m/cortex-microcontroller-software-interface-standard.php [2] https://github.com/AdaCore [3] https://github.com/posborne/cmsis-svd