Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. Moving on up (to ARM)

Moving on up (to ARM)

Scheduled Pinned Locked Moved The Lounge
hardwarecomhelp
48 Posts 19 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • C CPallini

    Many MCU (e.g. Cypress, Microchip,...) vendors base their IDEs on GCC. Some of them provides them for free.

    "In testa che avete, Signor di Ceprano?" -- Rigoletto

    H Offline
    H Offline
    honey the codewitch
    wrote on last edited by
    #19

    Right, but again GCC doesn't include everything that I need. I need the bootloader and the HAL, and all that happy business.

    To err is human. Fortune favors the monsters.

    C 1 Reply Last reply
    0
    • H honey the codewitch

      Right, but again GCC doesn't include everything that I need. I need the bootloader and the HAL, and all that happy business.

      To err is human. Fortune favors the monsters.

      C Offline
      C Offline
      CPallini
      wrote on last edited by
      #20

      Quote:

      I need the bootloader and the HAL, and all that happy business

      I hardly believe all such stuff is provided by Keil. ARM licenses the core, the peripherals are manufacturer specific.

      "In testa che avete, Signor di Ceprano?" -- Rigoletto

      H 1 Reply Last reply
      0
      • C CPallini

        Quote:

        I need the bootloader and the HAL, and all that happy business

        I hardly believe all such stuff is provided by Keil. ARM licenses the core, the peripherals are manufacturer specific.

        "In testa che avete, Signor di Ceprano?" -- Rigoletto

        H Offline
        H Offline
        honey the codewitch
        wrote on last edited by
        #21

        I may be misunderstanding something significant. The peripherals I'm referring to are part of the SoC. You're saying those are manufacturer specific? I guess that would make sense. Hmmmm. Let me ask a stupid question since you clearly have forgotten more about this than I've hope to learn in the time I have to learn it: (By which I mean relative to you I am an utter idiot about all this. I never went to school for it or anything) If I order this. https://www.digikey.com/en/products/detail/nxp-usa-inc/MIMXRT1062DVJ6B/13574426[^] (- In theory anyway. It isn't in stock, which is actually part of my problem - I'll explain) Where do I go to get anything beyond a datasheet and maybe a hardware manual to tell me what registers to use? I find it hard to believe that there aren't HAL packages and such available for an SOC like this. Are you saying I'd get it (in this case, from NXP?) I haven't seen much from NXP for this at their site, but I didn't think to look that hard either. As far as my problem: I want to use these ARMs primarily to expand my display options, but also to take advantage some more modern features than I can get on say, ESP32 nonsense. I actually have a bootloader and a HAL for the chip I linked to (assuming I bookmarked the right one, I'd have to look to be 100% sure) but it's provided by PJRC via their Teensy 4.1 kit, and it's specific to that chip. Here's what I want to be able to do. When I'm approached with a project, I want to match requirements with an ARM chip, and then find one I can integrate, with a HAL layer and bootloader I don't have to write. Or at least the HAL, as that would make it not economical to develop against. And by peripherals, I mean the peripherals built in to this SoC, not on an external board, to be clear - like its USB 2.0 Host/Device capabilities, it's I2S, SPI, and I2C capabilities etc. Is this even realistic?

        To err is human. Fortune favors the monsters.

        C 1 Reply Last reply
        0
        • H honey the codewitch

          My little consortium of embedded developers is looking to move our offerings over to the ARM Cortex M line of processors. One of the big primary drivers of this, is lack of availability of LCD displays for the more hobbyist/Arduino type end of things. The first issue we've had is an utter lack of toolchain, bootloader firmware, HAL code, or really anything to get us going starting with a bare metal chip. I discovered keil.com which can potentially get us over that hump, if we can afford it. I'm always a little anxious when getting a price requires a quote. Waiting to hear from them, but I also am still out of my depth. I know there are some embedded developers here. I'm not afraid of failure, and I'm not afraid to get my hands dirty. Any advice as far as this move goes would be appreciated. It's definitely the deep end of the pool for me.

          To err is human. Fortune favors the monsters.

          T Offline
          T Offline
          trønderen
          wrote on last edited by
          #22

          I don't see anyone mentioning Zephyr yet (Zephyr Project[^]). As as development environment it certainly is far less complete than Visual Studio, but reasonably well adapted to standard Linux element from which you can compose your setup. (As always under Linux :-)) Zephyr is most certainly an IoT- and SoC-oriented OS, not requiring you to carry a ton of general-purpose Linux stuff that you don't need, yet providing a very Linux-like interface for the stuff you really make use of. And it is free and open-source.

          H 1 Reply Last reply
          0
          • T trønderen

            I don't see anyone mentioning Zephyr yet (Zephyr Project[^]). As as development environment it certainly is far less complete than Visual Studio, but reasonably well adapted to standard Linux element from which you can compose your setup. (As always under Linux :-)) Zephyr is most certainly an IoT- and SoC-oriented OS, not requiring you to carry a ton of general-purpose Linux stuff that you don't need, yet providing a very Linux-like interface for the stuff you really make use of. And it is free and open-source.

            H Offline
            H Offline
            honey the codewitch
            wrote on last edited by
            #23

            Absolutely I'd expect Zephyr, FreeRTOS, or some other realtime OS to be present if the thing has multiple cores, or potentially multiple filesystem mount points (SDMMC/Flash/etc), and is commonly present on gadgets like this. Unfortunately it's not the last mile I'd need. For Zephyr to work for a particular chip it needs to be ported to it. For example, there is a Zephyr port to the ESP32 SoC/MCU: Zephyr RTOS on ESP32 - Zephyr Project[^] I'd need one for any particular ARM chip I was using. Zephyr would save me time vs going from scratch, but I don't want to be in the market of making HAL layers for devices so an RTOS can run on them. I'm hoping I can find that effort already made.

            To err is human. Fortune favors the monsters.

            A T 2 Replies Last reply
            0
            • H honey the codewitch

              I may be misunderstanding something significant. The peripherals I'm referring to are part of the SoC. You're saying those are manufacturer specific? I guess that would make sense. Hmmmm. Let me ask a stupid question since you clearly have forgotten more about this than I've hope to learn in the time I have to learn it: (By which I mean relative to you I am an utter idiot about all this. I never went to school for it or anything) If I order this. https://www.digikey.com/en/products/detail/nxp-usa-inc/MIMXRT1062DVJ6B/13574426[^] (- In theory anyway. It isn't in stock, which is actually part of my problem - I'll explain) Where do I go to get anything beyond a datasheet and maybe a hardware manual to tell me what registers to use? I find it hard to believe that there aren't HAL packages and such available for an SOC like this. Are you saying I'd get it (in this case, from NXP?) I haven't seen much from NXP for this at their site, but I didn't think to look that hard either. As far as my problem: I want to use these ARMs primarily to expand my display options, but also to take advantage some more modern features than I can get on say, ESP32 nonsense. I actually have a bootloader and a HAL for the chip I linked to (assuming I bookmarked the right one, I'd have to look to be 100% sure) but it's provided by PJRC via their Teensy 4.1 kit, and it's specific to that chip. Here's what I want to be able to do. When I'm approached with a project, I want to match requirements with an ARM chip, and then find one I can integrate, with a HAL layer and bootloader I don't have to write. Or at least the HAL, as that would make it not economical to develop against. And by peripherals, I mean the peripherals built in to this SoC, not on an external board, to be clear - like its USB 2.0 Host/Device capabilities, it's I2S, SPI, and I2C capabilities etc. Is this even realistic?

              To err is human. Fortune favors the monsters.

              C Offline
              C Offline
              CPallini
              wrote on last edited by
              #24

              I am not that expert. My targets are much simpler (M0 and M3). Anyway, I think having the Teensy is a big starting point: you have a hardware reference design as well the libraries (I believe the chip on the their board is NXP, not theirs, so the software should work on your hardware). I see NXP provides its MCUXpresso SDK (which, strangley enough, relies on 'Arm GCC') you may have a look at it.

              "In testa che avete, Signor di Ceprano?" -- Rigoletto

              H 1 Reply Last reply
              0
              • H honey the codewitch

                Absolutely I'd expect Zephyr, FreeRTOS, or some other realtime OS to be present if the thing has multiple cores, or potentially multiple filesystem mount points (SDMMC/Flash/etc), and is commonly present on gadgets like this. Unfortunately it's not the last mile I'd need. For Zephyr to work for a particular chip it needs to be ported to it. For example, there is a Zephyr port to the ESP32 SoC/MCU: Zephyr RTOS on ESP32 - Zephyr Project[^] I'd need one for any particular ARM chip I was using. Zephyr would save me time vs going from scratch, but I don't want to be in the market of making HAL layers for devices so an RTOS can run on them. I'm hoping I can find that effort already made.

                To err is human. Fortune favors the monsters.

                A Offline
                A Offline
                Atanas Palavrov
                wrote on last edited by
                #25

                If you’re more specific what actually you need from Cortex M for your project could try to help for the whole product r&d life cycle. The most important is which constraints you have and how you prioritize them - time? r&d costs? lower BoM costs? maintenance costs? long term components availability? etc … You can get one max two of these, the rest will be compromised. Choosing toolchain is just a small implementation detail that comes easily once you clear your requirements, constraints and priorities. Not vice verse.

                H 1 Reply Last reply
                0
                • H honey the codewitch

                  Absolutely I'd expect Zephyr, FreeRTOS, or some other realtime OS to be present if the thing has multiple cores, or potentially multiple filesystem mount points (SDMMC/Flash/etc), and is commonly present on gadgets like this. Unfortunately it's not the last mile I'd need. For Zephyr to work for a particular chip it needs to be ported to it. For example, there is a Zephyr port to the ESP32 SoC/MCU: Zephyr RTOS on ESP32 - Zephyr Project[^] I'd need one for any particular ARM chip I was using. Zephyr would save me time vs going from scratch, but I don't want to be in the market of making HAL layers for devices so an RTOS can run on them. I'm hoping I can find that effort already made.

                  To err is human. Fortune favors the monsters.

                  T Offline
                  T Offline
                  trønderen
                  wrote on last edited by
                  #26

                  A major reason why I brought up Zephyr is your mentioning of ARM, which is the basis for the NRF IoT/SoC chips marketed by Nordic Semiconductor (Nordic Semiconductor[^]). Their primary architecture is ARM, and their primary OS is Zephyr. When you start with Zephyr on ARM - whether on Nordic's NRF chips or some other ARM chip - it is definitely not 'making HAL layers for devices so an RTOS can run on them'. That is exactly what Zephyr has done, long ago. There is no need to spend resources on porting Zephyr to ARM. That was done years ago (I suspect that ARM was one of the targets when Zephyr was initially designed!). But of course: If you do not want to consider Zephyr, please feel free not to!

                  H 1 Reply Last reply
                  0
                  • H honey the codewitch

                    My little consortium of embedded developers is looking to move our offerings over to the ARM Cortex M line of processors. One of the big primary drivers of this, is lack of availability of LCD displays for the more hobbyist/Arduino type end of things. The first issue we've had is an utter lack of toolchain, bootloader firmware, HAL code, or really anything to get us going starting with a bare metal chip. I discovered keil.com which can potentially get us over that hump, if we can afford it. I'm always a little anxious when getting a price requires a quote. Waiting to hear from them, but I also am still out of my depth. I know there are some embedded developers here. I'm not afraid of failure, and I'm not afraid to get my hands dirty. Any advice as far as this move goes would be appreciated. It's definitely the deep end of the pool for me.

                    To err is human. Fortune favors the monsters.

                    M Offline
                    M Offline
                    Member_14374279
                    wrote on last edited by
                    #27

                    I have a bare metal STM32 project that can send and receive 3 bytes via USB joystick HID, using NUCLEO-F767ZI board, AZURE USBX rtos, STM32CubeIDE and a PC. The cheap NUCLEO-F767ZI does Ethernet with UDP, TCP, HTTPS. Also CAN Bus, I2C, UART, DMA etc. GitHub - wayp123/Ux_Device_HID_Bidir: STM32 project that can send and receive 3 bytes via joystick HID[^] For Linux and Windows can use raspberry pi.

                    H 1 Reply Last reply
                    0
                    • H honey the codewitch

                      My little consortium of embedded developers is looking to move our offerings over to the ARM Cortex M line of processors. One of the big primary drivers of this, is lack of availability of LCD displays for the more hobbyist/Arduino type end of things. The first issue we've had is an utter lack of toolchain, bootloader firmware, HAL code, or really anything to get us going starting with a bare metal chip. I discovered keil.com which can potentially get us over that hump, if we can afford it. I'm always a little anxious when getting a price requires a quote. Waiting to hear from them, but I also am still out of my depth. I know there are some embedded developers here. I'm not afraid of failure, and I'm not afraid to get my hands dirty. Any advice as far as this move goes would be appreciated. It's definitely the deep end of the pool for me.

                      To err is human. Fortune favors the monsters.

                      J Offline
                      J Offline
                      JohnDG52
                      wrote on last edited by
                      #28

                      Possibly start with a Seeed Studio Xiao board, and bootstrap your way up from that? Just an idea.

                      1 Reply Last reply
                      0
                      • M Member_14374279

                        I have a bare metal STM32 project that can send and receive 3 bytes via USB joystick HID, using NUCLEO-F767ZI board, AZURE USBX rtos, STM32CubeIDE and a PC. The cheap NUCLEO-F767ZI does Ethernet with UDP, TCP, HTTPS. Also CAN Bus, I2C, UART, DMA etc. GitHub - wayp123/Ux_Device_HID_Bidir: STM32 project that can send and receive 3 bytes via joystick HID[^] For Linux and Windows can use raspberry pi.

                        H Offline
                        H Offline
                        honey the codewitch
                        wrote on last edited by
                        #29

                        I should have explicitly said, I do not count the STM32 Nucleo boards, because are all Arm Cortex M0s, have no flash, no ram, and no HDMI

                        To err is human. Fortune favors the monsters.

                        1 Reply Last reply
                        0
                        • T trønderen

                          A major reason why I brought up Zephyr is your mentioning of ARM, which is the basis for the NRF IoT/SoC chips marketed by Nordic Semiconductor (Nordic Semiconductor[^]). Their primary architecture is ARM, and their primary OS is Zephyr. When you start with Zephyr on ARM - whether on Nordic's NRF chips or some other ARM chip - it is definitely not 'making HAL layers for devices so an RTOS can run on them'. That is exactly what Zephyr has done, long ago. There is no need to spend resources on porting Zephyr to ARM. That was done years ago (I suspect that ARM was one of the targets when Zephyr was initially designed!). But of course: If you do not want to consider Zephyr, please feel free not to!

                          H Offline
                          H Offline
                          honey the codewitch
                          wrote on last edited by
                          #30

                          So they build and maintain Zephyr OS versions for arbitrary chips I can buy off digikey? And then if I want to use the HDMI facilities of that same chip? Then what?

                          To err is human. Fortune favors the monsters.

                          A 1 Reply Last reply
                          0
                          • A Atanas Palavrov

                            If you’re more specific what actually you need from Cortex M for your project could try to help for the whole product r&d life cycle. The most important is which constraints you have and how you prioritize them - time? r&d costs? lower BoM costs? maintenance costs? long term components availability? etc … You can get one max two of these, the rest will be compromised. Choosing toolchain is just a small implementation detail that comes easily once you clear your requirements, constraints and priorities. Not vice verse.

                            H Offline
                            H Offline
                            honey the codewitch
                            wrote on last edited by
                            #31

                            No no no no no. This isn't about a project. This is about moving all of my projects. Requirements vary based on project. That's why there are eleventy gazillion chips ARM based chips out there. I want to gather my requirements from a client, go to digikey, place an order for a chip that meets those requirements. And once I'm there, I want to be able actually *use* the damned chip, which isn't about requirements gathering or figuring scope or any of that. It's about getting a HAL and a bootloader for said chip.

                            To err is human. Fortune favors the monsters.

                            A 1 Reply Last reply
                            0
                            • C CPallini

                              I am not that expert. My targets are much simpler (M0 and M3). Anyway, I think having the Teensy is a big starting point: you have a hardware reference design as well the libraries (I believe the chip on the their board is NXP, not theirs, so the software should work on your hardware). I see NXP provides its MCUXpresso SDK (which, strangley enough, relies on 'Arm GCC') you may have a look at it.

                              "In testa che avete, Signor di Ceprano?" -- Rigoletto

                              H Offline
                              H Offline
                              honey the codewitch
                              wrote on last edited by
                              #32

                              Thanks. Yeah, I contacted PJRC who makes teensy, about subbing a different NXP chip with their bootloader and HAL. I asked if it would work. They were like "will it? You tell us!" And when I looked at the specs I realized there's no way some of the registers aren't different. So no I don't think PJRC's offerings will work with arbitrary NXPs, and unfortunately it's quite a bit of time and money just to check.

                              To err is human. Fortune favors the monsters.

                              C 1 Reply Last reply
                              0
                              • H honey the codewitch

                                My little consortium of embedded developers is looking to move our offerings over to the ARM Cortex M line of processors. One of the big primary drivers of this, is lack of availability of LCD displays for the more hobbyist/Arduino type end of things. The first issue we've had is an utter lack of toolchain, bootloader firmware, HAL code, or really anything to get us going starting with a bare metal chip. I discovered keil.com which can potentially get us over that hump, if we can afford it. I'm always a little anxious when getting a price requires a quote. Waiting to hear from them, but I also am still out of my depth. I know there are some embedded developers here. I'm not afraid of failure, and I'm not afraid to get my hands dirty. Any advice as far as this move goes would be appreciated. It's definitely the deep end of the pool for me.

                                To err is human. Fortune favors the monsters.

                                R Offline
                                R Offline
                                raddevus
                                wrote on last edited by
                                #33

                                Have you seen platformio : (Professional collaborative platform for embedded development — PlatformIO latest documentation[^])? There's a plug in for VS Code that includes the entire toolchain. Not sure if it supports all Cortex M but I know it supports STM32

                                H 1 Reply Last reply
                                0
                                • H honey the codewitch

                                  Thanks. Yeah, I contacted PJRC who makes teensy, about subbing a different NXP chip with their bootloader and HAL. I asked if it would work. They were like "will it? You tell us!" And when I looked at the specs I realized there's no way some of the registers aren't different. So no I don't think PJRC's offerings will work with arbitrary NXPs, and unfortunately it's quite a bit of time and money just to check.

                                  To err is human. Fortune favors the monsters.

                                  C Offline
                                  C Offline
                                  CPallini
                                  wrote on last edited by
                                  #34

                                  Time to buy a NXP (or whatever manufacturer you choose) develompment board.

                                  "In testa che avete, Signor di Ceprano?" -- Rigoletto

                                  1 Reply Last reply
                                  0
                                  • R raddevus

                                    Have you seen platformio : (Professional collaborative platform for embedded development — PlatformIO latest documentation[^])? There's a plug in for VS Code that includes the entire toolchain. Not sure if it supports all Cortex M but I know it supports STM32

                                    H Offline
                                    H Offline
                                    honey the codewitch
                                    wrote on last edited by
                                    #35

                                    Yeah I use it daily, and aside from some Arduino compliant STM32 Cortex M0 based boards and such, it doesn't support ARMs. The Cortex M0 is kind of one off for this purpose in that a lot of people have produced Arduino compatible HALs for Cortex M0 based devkits like the STM32 boards. Now a Cortex A or say an M7 isn't going to be supported because they have nothing for it.

                                    To err is human. Fortune favors the monsters.

                                    1 Reply Last reply
                                    0
                                    • H honey the codewitch

                                      My little consortium of embedded developers is looking to move our offerings over to the ARM Cortex M line of processors. One of the big primary drivers of this, is lack of availability of LCD displays for the more hobbyist/Arduino type end of things. The first issue we've had is an utter lack of toolchain, bootloader firmware, HAL code, or really anything to get us going starting with a bare metal chip. I discovered keil.com which can potentially get us over that hump, if we can afford it. I'm always a little anxious when getting a price requires a quote. Waiting to hear from them, but I also am still out of my depth. I know there are some embedded developers here. I'm not afraid of failure, and I'm not afraid to get my hands dirty. Any advice as far as this move goes would be appreciated. It's definitely the deep end of the pool for me.

                                      To err is human. Fortune favors the monsters.

                                      K Offline
                                      K Offline
                                      Kirk J Davis
                                      wrote on last edited by
                                      #36

                                      I was a C++ on AVR (NOT Arduino) person for many years. I switched to Atmel ARM devices (i.e. ARM M0+ and M4) years ago as they became bigger, faster, cheaper, lower power, etc. If you are targeting bare metal embedded applications, I would suggest using Atmel Studio 7 with GCC C++ and ASF (Advanced Software Framework). I believe ASF will provide the drivers and hardware abstraction you are looking for. They will warn you that ASF does not support C++, but ASF functions can be called as extern "C" functions. Use Atmel ICE for downloading code, source-code level debugging, and target register read/write. I wrote my own cooperative task-switching executive and resident interactive interpreter/compiler. I typically connect my embedded systems to a PC via multiple USB logical serial connections using multiple endpoints. This is very handy for separating control, status, and debugging streams.

                                      H 1 Reply Last reply
                                      0
                                      • K Kirk J Davis

                                        I was a C++ on AVR (NOT Arduino) person for many years. I switched to Atmel ARM devices (i.e. ARM M0+ and M4) years ago as they became bigger, faster, cheaper, lower power, etc. If you are targeting bare metal embedded applications, I would suggest using Atmel Studio 7 with GCC C++ and ASF (Advanced Software Framework). I believe ASF will provide the drivers and hardware abstraction you are looking for. They will warn you that ASF does not support C++, but ASF functions can be called as extern "C" functions. Use Atmel ICE for downloading code, source-code level debugging, and target register read/write. I wrote my own cooperative task-switching executive and resident interactive interpreter/compiler. I typically connect my embedded systems to a PC via multiple USB logical serial connections using multiple endpoints. This is very handy for separating control, status, and debugging streams.

                                        H Offline
                                        H Offline
                                        honey the codewitch
                                        wrote on last edited by
                                        #37

                                        Thanks!

                                        To err is human. Fortune favors the monsters.

                                        A 1 Reply Last reply
                                        0
                                        • H honey the codewitch

                                          No no no no no. This isn't about a project. This is about moving all of my projects. Requirements vary based on project. That's why there are eleventy gazillion chips ARM based chips out there. I want to gather my requirements from a client, go to digikey, place an order for a chip that meets those requirements. And once I'm there, I want to be able actually *use* the damned chip, which isn't about requirements gathering or figuring scope or any of that. It's about getting a HAL and a bootloader for said chip.

                                          To err is human. Fortune favors the monsters.

                                          A Offline
                                          A Offline
                                          Atanas Palavrov
                                          wrote on last edited by
                                          #38

                                          In that case I'm afraid that you will need to decide project by project. There is no universal HAL & bootloader who cover gazillions of custom ARM SoC in the wild. Once you got experienced (i.e. work on 5-10 projects) it will be obvious which SoC to use once you know the requirements. GCC and any open source RTOS should be fine for most cases. Some SoC (even big ones) provide SDK that's based on open source RTOS with support and examples of their custom hardware. Some closed source RTOS vendors support wide range of platforms but as you know - royalties need to be covered.

                                          www.codigi.net .NET touch screen GUI components suite

                                          H 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups