* ANN: STM32F4 GNAT Run Time Systems 20150406 @ 2015-04-06 17:27 Simon Wright 2015-04-22 19:49 ` Jedi Tek'Unum 0 siblings, 1 reply; 6+ messages in thread From: Simon Wright @ 2015-04-06 17:27 UTC (permalink / raw) This is the fourth release of a GNAT RTS with the GCC Runtime Library exception for STM32F4 boards. (a) Tasking is implemented using FreeRTOS[3], which STMicroelectronics provide a copy of with their BSP. (b) I've included a BSP with minimal higher-level Ada interfaces to the board hardware: clock, buttons, LEDs, LCD. In addition, there's a machine-generated translation of STMicroelectronics' type-specific header in stm32f429xx_h.ads, for low-level interfacing. The release is at https://sourceforge.net/projects/stm32f4-gnat-rts/files/20150406/. From its README, 20150406 ======== This release has been reorganised from previous releases. There is one RTS, stm32f4-disco-rtos, and one BSP, stm32f4-disco-bsp. Changes to the RTS from the previous release: --------------------------------------------- These units (and supporting units) are now included: Ada.Containers.Bounded_Vectors (*) Ada.Containers.Bounded_Hashed_Maps (*) Ada.Containers.Generic_Array_Sort Ada.Containers.Generic_Constrained_Array_Sort Ada.IO_Exceptions Ada.Streams Ada.Task_Identification Interfaces.C Interfaces.C.Strings System.Assertions (*) The new iterators (for some F in Foo loop ...) are NOT supported (they require finalization). The STM32F429I_Discovery tree has been moved to the BSP. The following tickets have been fixed: 2 Protected spec hides package Interfaces 14 Last_Chance_Handler doesn’t stop tasking Tasking is started by calling Start_FreeRTOS_Scheduler. ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: ANN: STM32F4 GNAT Run Time Systems 20150406 2015-04-06 17:27 ANN: STM32F4 GNAT Run Time Systems 20150406 Simon Wright @ 2015-04-22 19:49 ` Jedi Tek'Unum 2015-04-22 20:59 ` Simon Wright 0 siblings, 1 reply; 6+ messages in thread From: Jedi Tek'Unum @ 2015-04-22 19:49 UTC (permalink / raw) On Monday, April 6, 2015 at 12:27:11 PM UTC-5, Simon Wright wrote: > This is the fourth release of a GNAT RTS with the GCC Runtime Library > exception for STM32F4 boards. Nice! One issue that can immediately cause problems for people is that STM frequently releases new versions that replace the old - and I mean the old is *gone*. I have not been able to find 1.3.0 that the RTS is based on. When I played with an earlier release the current version was 1.4.0 which I was able to get working by making some changes including in FreeRTOSConfig.h. Now I see they only have 1.5.0 available - haven't tried it yet. Have you given any thought to how this could be handled? I might have time to take a crack at it but only if you aren't planning on working in that area soon... ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: ANN: STM32F4 GNAT Run Time Systems 20150406 2015-04-22 19:49 ` Jedi Tek'Unum @ 2015-04-22 20:59 ` Simon Wright 2015-04-23 12:40 ` Jedi Tek'Unum 0 siblings, 1 reply; 6+ messages in thread From: Simon Wright @ 2015-04-22 20:59 UTC (permalink / raw) "Jedi Tek'Unum" <jeditekunum@gmail.com> writes: > On Monday, April 6, 2015 at 12:27:11 PM UTC-5, Simon Wright wrote: >> This is the fourth release of a GNAT RTS with the GCC Runtime Library >> exception for STM32F4 boards. > > Nice! > > One issue that can immediately cause problems for people is that STM > frequently releases new versions that replace the old - and I mean the > old is *gone*. I have not been able to find 1.3.0 that the RTS is > based on. When I played with an earlier release the current version > was 1.4.0 which I was able to get working by making some changes > including in FreeRTOSConfig.h. Now I see they only have 1.5.0 > available - haven't tried it yet. > > Have you given any thought to how this could be handled? > > I might have time to take a crack at it but only if you aren't > planning on working in that area soon... 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 the mean time, I think it would be legitimate to make the 1.3.0 version available? (plus the patches needed to make it compilable on Unix systems - mainly replacing \ by /). You *should* only need the Cube package if you're going to rebuild the RTS or the BSP - or include C sources - since libbsp-rtos.a includes a complete set of binaries. ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: ANN: STM32F4 GNAT Run Time Systems 20150406 2015-04-22 20:59 ` Simon Wright @ 2015-04-23 12:40 ` Jedi Tek'Unum 2015-04-23 18:41 ` Tero Koskinen 0 siblings, 1 reply; 6+ messages in thread From: Jedi Tek'Unum @ 2015-04-23 12:40 UTC (permalink / raw) 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. > In the mean time, I think it would be legitimate to make the 1.3.0 > version available? (plus the patches needed to make it compilable on > Unix systems - mainly replacing \ by /). I didn't have any issues using 1.4.0 on OS X. > You *should* only need the Cube package if you're going to rebuild the > RTS or the BSP - or include C sources - since libbsp-rtos.a includes a > complete set of binaries. I got it to build with 1.4.0 with only minor changes so its not holding me up. I prefer building everything from scratch in my embedded work... ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: ANN: STM32F4 GNAT Run Time Systems 20150406 2015-04-23 12:40 ` Jedi Tek'Unum @ 2015-04-23 18:41 ` Tero Koskinen 2015-04-24 11:12 ` Simon Wright 0 siblings, 1 reply; 6+ messages in thread From: Tero Koskinen @ 2015-04-23 18:41 UTC (permalink / raw) 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 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. Personally, I haven't really seen any need for common HAL across different ARM MCUs. Differences between ARM Cortex-Mx MCUs are usually related to peripherals (uart, spi, i2c, timers) and vendors implement the peripherals slightly different way to allow some specific use case. Some concentrate on performance and have DMA transfers, others target low-power use and have features like "sleepwalking" (peripherals working while CPU is sleeping). I think it would be somewhat hard to create easy to use HAL for these. (If nothing else, you either have maze of compile time conditions or a large binary size.) If you want to have some sort of HAL, but don't want to or cannot use CMSIS, you can use a RTOS, which provides its own HAL. Or with a little bit planning, you can create Ada code, which works on AVRs, MSP430s, and 32-bit ARM MCUs. Just separate the platform/architecture specific code in their own packages. Yours, Tero ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: ANN: STM32F4 GNAT Run Time Systems 20150406 2015-04-23 18:41 ` Tero Koskinen @ 2015-04-24 11:12 ` Simon Wright 0 siblings, 0 replies; 6+ messages in thread From: Simon Wright @ 2015-04-24 11:12 UTC (permalink / raw) Tero Koskinen <tero.koskinen@iki.fi> 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. ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2015-04-24 11:12 UTC | newest] Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2015-04-06 17:27 ANN: STM32F4 GNAT Run Time Systems 20150406 Simon Wright 2015-04-22 19:49 ` Jedi Tek'Unum 2015-04-22 20:59 ` Simon Wright 2015-04-23 12:40 ` Jedi Tek'Unum 2015-04-23 18:41 ` Tero Koskinen 2015-04-24 11:12 ` Simon Wright
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox