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: buffer1.nntp.dca1.giganews.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!usenet.blueworldhosting.com!feeder01.blueworldhosting.com!feeder.erje.net!1.eu.feeder.erje.net!eternal-september.org!feeder.eternal-september.org!mx02.eternal-september.org!.POSTED!not-for-mail From: Simon Wright Newsgroups: comp.lang.ada Subject: Re: GNAT GPL 2015 Troubles Date: Sat, 20 Jun 2015 20:31:21 +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="c762050aff3a30866fa7e79999b14776"; logging-data="16855"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+c08xTLk0f3BzhUj6+WPvU7nKoclIxF80=" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (darwin) Cancel-Lock: sha1:wJA0u57d4Q/iJL9MOHGZ4AWk6zc= sha1:+l4KX5/xxDYTw88xUiLGb62obKk= Xref: number.nntp.giganews.com comp.lang.ada:193698 Date: 2015-06-20T20:31:21+01:00 List-Id: "RasikaSrinivasan@gmail.com" writes: > c. I don't have to specify the location of the profile for ARM targets > (this is great) but I am not sure which profile the system is > using. browsing the directories there appear to be 2 ravenscar > profiles being installed. I don't know the Windows setup, but - there are 2 Ravenscar profiles, as you say. In your project's GPR (you need to be using GNAT Projects), you should be able to say for Runtime ("ada") use "ravenscar-sfp-stm32f4"; for the small-footprint profile, and for Runtime ("ada") use "ravenscar-full-stm32f4"; for the profile that allows exception propagation, has the containers etc etc (but of course still restricted tasking!) Check out $prefix/arm-eabi/lib/gnat (/ => \, of course). It looks as though you can use the scenario variable BOARD, possible values STM32F4-DISCO, STM32F429-DISCO, or STM32F7-EVAL to select the board you're using. One thing that puzzled me is how setup_pll.adb knows which board it's on (I know the max clock frequency is different for STM32F4-DISCO and STM32F429-DISCO, no idea about STM32F7-EVAL). It would be a lot easier to navigate this IF ADACORE WOULD STOP USING "use"!!! It would be far simpler to understand procedure Initialize_Clocks is HSECLK : constant Integer := Integer (HSE_Clock (MCU_ID.DEV_ID)); MCU_ID_Cp : constant MCU_ID_Register := MCU_ID; if they hadn't said with System.STM32F4; use System.STM32F4; << MCU_ID with System.STM32F4.RCC; with System.BB.Parameters; use System.BB.Parameters; << HSE_Clock It turns out they're using the MCU device ID code, para 38.6.1 of ST's document 018909 rev 7 (page 1667!)