4 comments

  • cestith 2 hours ago
    I always enjoy stories about Ada, Pascal, Object Pascal, Prolog, Perl, OCaml, Standard ML, Forth, Pike, Fortran, Scheme, Common Lisp, or some APL derivative in use in the wild.

    It’s especially good to see a story about a recent project on a smaller system using Ada.

    • addaon 4 hours ago
      At a lower level in the formal verification stack than this, it's on the one hand awesome that ARM has published a machine readable architecture specification for the more recent A architectures in ASL... and on the other hand extremely frustrating that they haven't done the same for M.
    • Neywiny 3 hours ago
      I'll read more later but just keep in mind nucleo is a series of form factors. There's even M33 on a -144 which is ARMv8-M
      • varispeed 1 hour ago
        Cortex-M is a lovely platform. Shame it has stagnated. Both STM32H7 (or N6) or NXP RT1170/80 beg for a major update - more performance, inclusion of NEON (or equivalent), support for DDR3 at least, PCIe?

        It would be amazing for doing some more complex DSP.

        Otherwise using those platforms is a bit like programming on 8086 today. Fun. You get basic stuff done and then you hit a wall. Only option is to jump on SoM stuff or FPGA which is another can of worms in itself.

        • maximusdrex 1 hour ago
          ST seems to consistently put out faster chips [1]. I think the better question is why bother though? The real reason to use a Cortex-M is determinism in hard real-time systems. I'm sure DDR3 and PCIe would be cool in an MCU and people would certainly make some interesting things with it, but at that point you either aren't making a hard real-time system and would benefit greatly from an MPU, allowing you to run Linux and benefit from the wealth of drivers available for these interfaces, or your real-time deadlines are so tight an FPGA would be a better choice. The real advantage of the Cortex-Ms is that they can be manufactured on ancient process nodes for next to nothing. The moment you don't care about that, why not upgrade to an i.MX8?

          [1] https://www.st.com/content/st_com/en/campaigns/stm32v8-high-...

          • kvemkon 40 minutes ago
            > Cortex-M is determinism in hard real-time systems

            > or your real-time deadlines are so tight an FPGA would be a better choice

            That's why I'd say Cortex-M fits well for a very-very good soft real-time (99.99+%). But for hard real-time (100%) you need an FPGA.

            • varispeed 58 minutes ago
              > ST seems to consistently put out faster chips [1].

              They have not released anything in years, only modest incremental updates. STM32V8 is a welcome update, but it is nothing ground breaking and not available yet.

              > The real reason to use a Cortex-M is determinism in hard real-time systems.

              Correct.

              > but at that point you either aren't making a hard real-time system and would benefit greatly from an MPU

              Why not?

              > allowing you to run Linux and benefit from the wealth of drivers available for these interfaces

              It is precisely to avoid running Linux and the "wealth of drivers".

              > or your real-time deadlines are so tight an FPGA would be a better choice

              When MCUs were not good enough, the FPGA was a sensible choice. That said you won't get Cortex-M7 core on FPGA and other cores might be available, though there is not going to be any substantial performance improvement, unless you want to spend unreasonable amount of money (talking 5 figures at least).

              What I am trying to point out is that there is a huge market gap.

              i.MX8 is not realtime and the support for running bare metal code is very much non existent.

              • adrian_b 31 minutes ago
                The easy to obtain FPGAs contain ancient ARM cores, but which are usable for implementing microcontroller tasks.

                For example the AMD Xilinx UltraScale+, like in the AMD Kria modules and development kits (3-digit prices), include some Cortex-R5 cores, which provide deterministic operation, like Cortex-M.

                Cortex-R5 are somewhat slower than Cortex-M7 at the same clock frequency, but they are available at a higher clock frequency than many Cortex-M7 implementations.

                If you can implement some custom peripherals in the FPGA logic array, then you can obtain much higher performance than with a microcontroller alone.

                • varispeed 12 minutes ago
                  Yes, this will not offer meaningful performance improvement over "native" silicon. I am talking about computational power, access to fast memory etc. not peripherals, which can still be serviced by FPGA.