4 comments

  • cestith2 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.<p>It’s especially good to see a story about a recent project on a smaller system using Ada.
  • addaon4 hours ago
    At a lower level in the formal verification stack than this, it&#x27;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&#x27;t done the same for M.
    • topspin3 hours ago
      Looks as though ARM is doing ASL for Armv8-M.<p>&quot;For example, the ASL code published through the A-Profile Arm Architecture Reference Manual, Exploration Tools downloads for A-Profile, or the Armv8-M Architecture Reference Manual.&quot;<p><a href="https:&#x2F;&#x2F;developer.arm.com&#x2F;architectures&#x2F;architecture%20specification%20language" rel="nofollow">https:&#x2F;&#x2F;developer.arm.com&#x2F;architectures&#x2F;architecture%20speci...</a>
  • Neywiny3 hours ago
    I&#x27;ll read more later but just keep in mind nucleo is a series of form factors. There&#x27;s even M33 on a -144 which is ARMv8-M
  • varispeed1 hour ago
    Cortex-M is a lovely platform. Shame it has stagnated. Both STM32H7 (or N6) or NXP RT1170&#x2F;80 beg for a major update - more performance, inclusion of NEON (or equivalent), support for DDR3 at least, PCIe?<p>It would be amazing for doing some more complex DSP.<p>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.
    • maximusdrex1 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&#x27;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&#x27;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&#x27;t care about that, why not upgrade to an i.MX8?<p>[1] <a href="https:&#x2F;&#x2F;www.st.com&#x2F;content&#x2F;st_com&#x2F;en&#x2F;campaigns&#x2F;stm32v8-high-performance-cortex-m85-mcu-z11.html" rel="nofollow">https:&#x2F;&#x2F;www.st.com&#x2F;content&#x2F;st_com&#x2F;en&#x2F;campaigns&#x2F;stm32v8-high-...</a>
      • kvemkon34 minutes ago
        &gt; Cortex-M is determinism in hard real-time systems<p>&gt; or your real-time deadlines are so tight an FPGA would be a better choice<p>That&#x27;s why I&#x27;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.
      • varispeed52 minutes ago
        &gt; ST seems to consistently put out faster chips [1].<p>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.<p>&gt; The real reason to use a Cortex-M is determinism in hard real-time systems.<p>Correct.<p>&gt; but at that point you either aren&#x27;t making a hard real-time system and would benefit greatly from an MPU<p>Why not?<p>&gt; allowing you to run Linux and benefit from the wealth of drivers available for these interfaces<p>It is precisely to avoid running Linux and the &quot;wealth of drivers&quot;.<p>&gt; or your real-time deadlines are so tight an FPGA would be a better choice<p>When MCUs were not good enough, the FPGA was a sensible choice. That said you won&#x27;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).<p>What I am trying to point out is that there is a huge market gap.<p>i.MX8 is not realtime and the support for running bare metal code is very much non existent.
        • adrian_b25 minutes ago
          The easy to obtain FPGAs contain ancient ARM cores, but which are usable for implementing microcontroller tasks.<p>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.<p>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.<p>If you can implement some custom peripherals in the FPGA logic array, then you can obtain much higher performance than with a microcontroller alone.
          • varispeed6 minutes ago
            Yes, this will not offer meaningful performance improvement over &quot;native&quot; silicon. I am talking about computational power, access to fast memory etc. not peripherals, which can still be serviced by FPGA.