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. Swimming out past the markers

Swimming out past the markers

Scheduled Pinned Locked Moved The Lounge
hardwaretutorialvisual-studiocomgraphics
19 Posts 10 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.
  • H Offline
    H Offline
    honey the codewitch
    wrote on last edited by
    #1

    This isn't a criticism, just an observation: There are no "real"" articles on getting going with embedded here at codeproject. For example, I just searched for Devicetree - a declarative format for configuring hardware for an operating system like Linux and ZephyrOS. I found one result - an interesting little linux driver that implements a loop back of some sort. Nothing really on using ST's HAL, or NXP's offerings, or even the VS Code extensions by Nordic Semiconductor. On one hand, that's fertile article territory. On the other, codeproject is in good company in this respect. If you intend to practice the black arts of commercial embedded, you will eventually need to know these things, only to find out that A) After sitting through 30 minutes of a how to video you notice it won't support your hardware B) Google laughs at your search queries. Laughs in your face. Try googling how to do SPI with CMSIS. You'll find two useful article with code and concepts, both for a particular semiconductor vendor you don't use. I've already looked. C) Try using Cube. Just try. If the screen doesn't stop repainting for you 5-10 minutes in, you're a luckier person than me. And even if you get past that, you still have to learn how to use it D) Everything else is courses and academies. Regarding D: I really don't do well with that format. I test well, but only if I can figure out how to learn something on my own before the test is due. That worked in high school. It won't work here. I need better options. I'm on a discord about this. And I've been in my element banging away at ZephyrOS. I may just have some codeproject articles on this eventually. Of course that's what I said about getting an OSless setup running on an ARM Cortex A before I gave that up.

    Check out my IoT graphics library here: https://honeythecodewitch.com/gfx

    C M P R B 8 Replies Last reply
    0
    • H honey the codewitch

      This isn't a criticism, just an observation: There are no "real"" articles on getting going with embedded here at codeproject. For example, I just searched for Devicetree - a declarative format for configuring hardware for an operating system like Linux and ZephyrOS. I found one result - an interesting little linux driver that implements a loop back of some sort. Nothing really on using ST's HAL, or NXP's offerings, or even the VS Code extensions by Nordic Semiconductor. On one hand, that's fertile article territory. On the other, codeproject is in good company in this respect. If you intend to practice the black arts of commercial embedded, you will eventually need to know these things, only to find out that A) After sitting through 30 minutes of a how to video you notice it won't support your hardware B) Google laughs at your search queries. Laughs in your face. Try googling how to do SPI with CMSIS. You'll find two useful article with code and concepts, both for a particular semiconductor vendor you don't use. I've already looked. C) Try using Cube. Just try. If the screen doesn't stop repainting for you 5-10 minutes in, you're a luckier person than me. And even if you get past that, you still have to learn how to use it D) Everything else is courses and academies. Regarding D: I really don't do well with that format. I test well, but only if I can figure out how to learn something on my own before the test is due. That worked in high school. It won't work here. I need better options. I'm on a discord about this. And I've been in my element banging away at ZephyrOS. I may just have some codeproject articles on this eventually. Of course that's what I said about getting an OSless setup running on an ARM Cortex A before I gave that up.

      Check out my IoT graphics library here: https://honeythecodewitch.com/gfx

      C Offline
      C Offline
      charlieg
      wrote on last edited by
      #2

      Completely agree. In the middle of looking at a number of technical issues - all related to Microsoft. I'm sure they answered the question somewhere, but there are so many answers and so much clutter it's useless - that's on Microsoft's site. Going through google, it gets even worse. A full page of responses that are all paid advertisements but no information. The embedded world is somewhat of a microcosm. I have found most of my information from the tool vendor forums and occasionally reddit.

      Charlie Gilley “They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759 Has never been more appropriate.

      1 Reply Last reply
      0
      • H honey the codewitch

        This isn't a criticism, just an observation: There are no "real"" articles on getting going with embedded here at codeproject. For example, I just searched for Devicetree - a declarative format for configuring hardware for an operating system like Linux and ZephyrOS. I found one result - an interesting little linux driver that implements a loop back of some sort. Nothing really on using ST's HAL, or NXP's offerings, or even the VS Code extensions by Nordic Semiconductor. On one hand, that's fertile article territory. On the other, codeproject is in good company in this respect. If you intend to practice the black arts of commercial embedded, you will eventually need to know these things, only to find out that A) After sitting through 30 minutes of a how to video you notice it won't support your hardware B) Google laughs at your search queries. Laughs in your face. Try googling how to do SPI with CMSIS. You'll find two useful article with code and concepts, both for a particular semiconductor vendor you don't use. I've already looked. C) Try using Cube. Just try. If the screen doesn't stop repainting for you 5-10 minutes in, you're a luckier person than me. And even if you get past that, you still have to learn how to use it D) Everything else is courses and academies. Regarding D: I really don't do well with that format. I test well, but only if I can figure out how to learn something on my own before the test is due. That worked in high school. It won't work here. I need better options. I'm on a discord about this. And I've been in my element banging away at ZephyrOS. I may just have some codeproject articles on this eventually. Of course that's what I said about getting an OSless setup running on an ARM Cortex A before I gave that up.

        Check out my IoT graphics library here: https://honeythecodewitch.com/gfx

        M Offline
        M Offline
        Marc Clifton
        wrote on last edited by
        #3

        Have you asked ChatGPT? ;) I just asked it "how to implement SPI with CMSIS" and it gave a lengthy answer including some stub code examples in C/C++, but here:

        Quote:

        Initialize CMSIS: Include the CMSIS header file for your specific microcontroller in your project. For example, for ARM Cortex-M microcontrollers, you can include "core_cmX.h," where "X" represents the Cortex-M version. Configure SPI Registers using CMSIS: Access the SPI registers using CMSIS structures and configure them accordingly.

        Is where I suspect it could be less vague. :laugh:

        Latest Articles:
        A Lightweight Thread Safe In-Memory Keyed Generic Cache Collection Service A Dynamic Where Implementation for Entity Framework

        H 1 Reply Last reply
        0
        • M Marc Clifton

          Have you asked ChatGPT? ;) I just asked it "how to implement SPI with CMSIS" and it gave a lengthy answer including some stub code examples in C/C++, but here:

          Quote:

          Initialize CMSIS: Include the CMSIS header file for your specific microcontroller in your project. For example, for ARM Cortex-M microcontrollers, you can include "core_cmX.h," where "X" represents the Cortex-M version. Configure SPI Registers using CMSIS: Access the SPI registers using CMSIS structures and configure them accordingly.

          Is where I suspect it could be less vague. :laugh:

          Latest Articles:
          A Lightweight Thread Safe In-Memory Keyed Generic Cache Collection Service A Dynamic Where Implementation for Entity Framework

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

          Like Microsoft documentation - technically correct, but practically useless. :laugh:

          Check out my IoT graphics library here: https://honeythecodewitch.com/gfx

          1 Reply Last reply
          0
          • H honey the codewitch

            This isn't a criticism, just an observation: There are no "real"" articles on getting going with embedded here at codeproject. For example, I just searched for Devicetree - a declarative format for configuring hardware for an operating system like Linux and ZephyrOS. I found one result - an interesting little linux driver that implements a loop back of some sort. Nothing really on using ST's HAL, or NXP's offerings, or even the VS Code extensions by Nordic Semiconductor. On one hand, that's fertile article territory. On the other, codeproject is in good company in this respect. If you intend to practice the black arts of commercial embedded, you will eventually need to know these things, only to find out that A) After sitting through 30 minutes of a how to video you notice it won't support your hardware B) Google laughs at your search queries. Laughs in your face. Try googling how to do SPI with CMSIS. You'll find two useful article with code and concepts, both for a particular semiconductor vendor you don't use. I've already looked. C) Try using Cube. Just try. If the screen doesn't stop repainting for you 5-10 minutes in, you're a luckier person than me. And even if you get past that, you still have to learn how to use it D) Everything else is courses and academies. Regarding D: I really don't do well with that format. I test well, but only if I can figure out how to learn something on my own before the test is due. That worked in high school. It won't work here. I need better options. I'm on a discord about this. And I've been in my element banging away at ZephyrOS. I may just have some codeproject articles on this eventually. Of course that's what I said about getting an OSless setup running on an ARM Cortex A before I gave that up.

            Check out my IoT graphics library here: https://honeythecodewitch.com/gfx

            P Offline
            P Offline
            PIEBALDconsult
            wrote on last edited by
            #5

            History has taught me not to go beyond the crayons.

            1 Reply Last reply
            0
            • H honey the codewitch

              This isn't a criticism, just an observation: There are no "real"" articles on getting going with embedded here at codeproject. For example, I just searched for Devicetree - a declarative format for configuring hardware for an operating system like Linux and ZephyrOS. I found one result - an interesting little linux driver that implements a loop back of some sort. Nothing really on using ST's HAL, or NXP's offerings, or even the VS Code extensions by Nordic Semiconductor. On one hand, that's fertile article territory. On the other, codeproject is in good company in this respect. If you intend to practice the black arts of commercial embedded, you will eventually need to know these things, only to find out that A) After sitting through 30 minutes of a how to video you notice it won't support your hardware B) Google laughs at your search queries. Laughs in your face. Try googling how to do SPI with CMSIS. You'll find two useful article with code and concepts, both for a particular semiconductor vendor you don't use. I've already looked. C) Try using Cube. Just try. If the screen doesn't stop repainting for you 5-10 minutes in, you're a luckier person than me. And even if you get past that, you still have to learn how to use it D) Everything else is courses and academies. Regarding D: I really don't do well with that format. I test well, but only if I can figure out how to learn something on my own before the test is due. That worked in high school. It won't work here. I need better options. I'm on a discord about this. And I've been in my element banging away at ZephyrOS. I may just have some codeproject articles on this eventually. Of course that's what I said about getting an OSless setup running on an ARM Cortex A before I gave that up.

              Check out my IoT graphics library here: https://honeythecodewitch.com/gfx

              R Offline
              R Offline
              Roger Wright
              wrote on last edited by
              #6

              We're relying on you to lead the way, to give us some direction! You are the CodeWitch - All Hail The CodeWitch! Someone has to go first, young lady, and you have a healthy head start on the rest. Lead the way, start filling that void, and claim the fame you deserve.

              Will Rogers never met me.

              H 1 Reply Last reply
              0
              • R Roger Wright

                We're relying on you to lead the way, to give us some direction! You are the CodeWitch - All Hail The CodeWitch! Someone has to go first, young lady, and you have a healthy head start on the rest. Lead the way, start filling that void, and claim the fame you deserve.

                Will Rogers never met me.

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

                I am busy zephyrizing a bunch of my IoT ecosystem in order to have some fundamentals to work with

                Check out my IoT graphics library here: https://honeythecodewitch.com/gfx

                C 1 Reply Last reply
                0
                • H honey the codewitch

                  This isn't a criticism, just an observation: There are no "real"" articles on getting going with embedded here at codeproject. For example, I just searched for Devicetree - a declarative format for configuring hardware for an operating system like Linux and ZephyrOS. I found one result - an interesting little linux driver that implements a loop back of some sort. Nothing really on using ST's HAL, or NXP's offerings, or even the VS Code extensions by Nordic Semiconductor. On one hand, that's fertile article territory. On the other, codeproject is in good company in this respect. If you intend to practice the black arts of commercial embedded, you will eventually need to know these things, only to find out that A) After sitting through 30 minutes of a how to video you notice it won't support your hardware B) Google laughs at your search queries. Laughs in your face. Try googling how to do SPI with CMSIS. You'll find two useful article with code and concepts, both for a particular semiconductor vendor you don't use. I've already looked. C) Try using Cube. Just try. If the screen doesn't stop repainting for you 5-10 minutes in, you're a luckier person than me. And even if you get past that, you still have to learn how to use it D) Everything else is courses and academies. Regarding D: I really don't do well with that format. I test well, but only if I can figure out how to learn something on my own before the test is due. That worked in high school. It won't work here. I need better options. I'm on a discord about this. And I've been in my element banging away at ZephyrOS. I may just have some codeproject articles on this eventually. Of course that's what I said about getting an OSless setup running on an ARM Cortex A before I gave that up.

                  Check out my IoT graphics library here: https://honeythecodewitch.com/gfx

                  B Offline
                  B Offline
                  BillWoodruff
                  wrote on last edited by
                  #8

                  so, lead the charge ? isn't there a yuge bunch of makers, bloggers, etc., around Arduino, etc. ? lots of competition in the industry, and many manufacturers targeting hobbyists, researchers ?[^] Your frustration comes as you struggle to make your graphic/imaging facility (high quality font and image rendering ?) work with newer, less known, boards ... with smaller image/font displays ? Please leave more clued on the path to the rabbit hole :) cheers, bill

                  «The mind is not a vessel to be filled but a fire to be kindled» Plutarch

                  H 1 Reply Last reply
                  0
                  • B BillWoodruff

                    so, lead the charge ? isn't there a yuge bunch of makers, bloggers, etc., around Arduino, etc. ? lots of competition in the industry, and many manufacturers targeting hobbyists, researchers ?[^] Your frustration comes as you struggle to make your graphic/imaging facility (high quality font and image rendering ?) work with newer, less known, boards ... with smaller image/font displays ? Please leave more clued on the path to the rabbit hole :) cheers, bill

                    «The mind is not a vessel to be filled but a fire to be kindled» Plutarch

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

                    You can't really make proper embedded devices with Arduino. Embedded involves like ZephyrOS, embedded linux, or FreeRTOS. It involves pulling your hair out because you spent the day trying to get SPI working only you didn't read paragraph 3, page 1059 of the hardware reference manual's errata which tells you that SPI won't work at the clock speed you're running at due to a hardware bug. That's embedded. :((

                    Check out my IoT graphics library here: https://honeythecodewitch.com/gfx

                    B 1 Reply Last reply
                    0
                    • H honey the codewitch

                      You can't really make proper embedded devices with Arduino. Embedded involves like ZephyrOS, embedded linux, or FreeRTOS. It involves pulling your hair out because you spent the day trying to get SPI working only you didn't read paragraph 3, page 1059 of the hardware reference manual's errata which tells you that SPI won't work at the clock speed you're running at due to a hardware bug. That's embedded. :((

                      Check out my IoT graphics library here: https://honeythecodewitch.com/gfx

                      B Offline
                      B Offline
                      BillWoodruff
                      wrote on last edited by
                      #10

                      got it, thanks: imho, your definition of "embedded" is critical to your work, and, i don't get ... that :omg: :) advice ?: if i wanted to find a low cost limited functioning robot kit i could cover with my own design cover, that i'd then send commands to by bluetooth ... imagine a small robot dog ... where would you look ? thanks, bill

                      «The mind is not a vessel to be filled but a fire to be kindled» Plutarch

                      H 1 Reply Last reply
                      0
                      • B BillWoodruff

                        got it, thanks: imho, your definition of "embedded" is critical to your work, and, i don't get ... that :omg: :) advice ?: if i wanted to find a low cost limited functioning robot kit i could cover with my own design cover, that i'd then send commands to by bluetooth ... imagine a small robot dog ... where would you look ? thanks, bill

                        «The mind is not a vessel to be filled but a fire to be kindled» Plutarch

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

                        Honestly, Amazon has a pretty big selection of them. You'll have to get creative about designing a cover for one, but it's a start Amazon.com : arduino robot[^]

                        Check out my IoT graphics library here: https://honeythecodewitch.com/gfx

                        1 Reply Last reply
                        0
                        • H honey the codewitch

                          I am busy zephyrizing a bunch of my IoT ecosystem in order to have some fundamentals to work with

                          Check out my IoT graphics library here: https://honeythecodewitch.com/gfx

                          C Offline
                          C Offline
                          charlieg
                          wrote on last edited by
                          #12

                          I'd be curious after all the optimization, how portable the code is from project to project. My experience has been that unless you are solving a very specific/generic problem, code reuse doesn't happen. The concepts are transferred but not the code itself.

                          Charlie Gilley “They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759 Has never been more appropriate.

                          H 1 Reply Last reply
                          0
                          • C charlieg

                            I'd be curious after all the optimization, how portable the code is from project to project. My experience has been that unless you are solving a very specific/generic problem, code reuse doesn't happen. The concepts are transferred but not the code itself.

                            Charlie Gilley “They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759 Has never been more appropriate.

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

                            I just got it working. uix on zephyr os - YouTube[^] That uses much of my ecosystem. Not the drivers. I can't really write zephyr drivers as part of my ecosystem because of the way it initializes globals in C++ - it does so after the drivers are initialized, so you cannot use C++ to write the drivers. On the other hand, I've been looking and most of the ones I've written are either already written, or a variant is written that can be easily modified.

                            Check out my IoT graphics library here: https://honeythecodewitch.com/gfx

                            1 Reply Last reply
                            0
                            • H honey the codewitch

                              This isn't a criticism, just an observation: There are no "real"" articles on getting going with embedded here at codeproject. For example, I just searched for Devicetree - a declarative format for configuring hardware for an operating system like Linux and ZephyrOS. I found one result - an interesting little linux driver that implements a loop back of some sort. Nothing really on using ST's HAL, or NXP's offerings, or even the VS Code extensions by Nordic Semiconductor. On one hand, that's fertile article territory. On the other, codeproject is in good company in this respect. If you intend to practice the black arts of commercial embedded, you will eventually need to know these things, only to find out that A) After sitting through 30 minutes of a how to video you notice it won't support your hardware B) Google laughs at your search queries. Laughs in your face. Try googling how to do SPI with CMSIS. You'll find two useful article with code and concepts, both for a particular semiconductor vendor you don't use. I've already looked. C) Try using Cube. Just try. If the screen doesn't stop repainting for you 5-10 minutes in, you're a luckier person than me. And even if you get past that, you still have to learn how to use it D) Everything else is courses and academies. Regarding D: I really don't do well with that format. I test well, but only if I can figure out how to learn something on my own before the test is due. That worked in high school. It won't work here. I need better options. I'm on a discord about this. And I've been in my element banging away at ZephyrOS. I may just have some codeproject articles on this eventually. Of course that's what I said about getting an OSless setup running on an ARM Cortex A before I gave that up.

                              Check out my IoT graphics library here: https://honeythecodewitch.com/gfx

                              C Offline
                              C Offline
                              Cpichols
                              wrote on last edited by
                              #14

                              Does this mean you are a pioneer? I think it does.

                              H 1 Reply Last reply
                              0
                              • C Cpichols

                                Does this mean you are a pioneer? I think it does.

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

                                Oh plenty of people do embedded. They just aren't talking. :-\

                                Check out my IoT graphics library here: https://honeythecodewitch.com/gfx

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

                                  Oh plenty of people do embedded. They just aren't talking. :-\

                                  Check out my IoT graphics library here: https://honeythecodewitch.com/gfx

                                  C Offline
                                  C Offline
                                  Cpichols
                                  wrote on last edited by
                                  #16

                                  So you aren't Lewis and Clark, but you could be Laura Ingalls ...

                                  1 Reply Last reply
                                  0
                                  • H honey the codewitch

                                    This isn't a criticism, just an observation: There are no "real"" articles on getting going with embedded here at codeproject. For example, I just searched for Devicetree - a declarative format for configuring hardware for an operating system like Linux and ZephyrOS. I found one result - an interesting little linux driver that implements a loop back of some sort. Nothing really on using ST's HAL, or NXP's offerings, or even the VS Code extensions by Nordic Semiconductor. On one hand, that's fertile article territory. On the other, codeproject is in good company in this respect. If you intend to practice the black arts of commercial embedded, you will eventually need to know these things, only to find out that A) After sitting through 30 minutes of a how to video you notice it won't support your hardware B) Google laughs at your search queries. Laughs in your face. Try googling how to do SPI with CMSIS. You'll find two useful article with code and concepts, both for a particular semiconductor vendor you don't use. I've already looked. C) Try using Cube. Just try. If the screen doesn't stop repainting for you 5-10 minutes in, you're a luckier person than me. And even if you get past that, you still have to learn how to use it D) Everything else is courses and academies. Regarding D: I really don't do well with that format. I test well, but only if I can figure out how to learn something on my own before the test is due. That worked in high school. It won't work here. I need better options. I'm on a discord about this. And I've been in my element banging away at ZephyrOS. I may just have some codeproject articles on this eventually. Of course that's what I said about getting an OSless setup running on an ARM Cortex A before I gave that up.

                                    Check out my IoT graphics library here: https://honeythecodewitch.com/gfx

                                    S Offline
                                    S Offline
                                    sasadler
                                    wrote on last edited by
                                    #17

                                    In the later half of my embedded career, I was pretty much locked into using TI DSPs. Our 911 products did lots of audio processing (one product had 23 audio channels). TI has lots of samples for their DSP products and since they have a fair number of ARM processors, I'd bet they have samples for them too. You might want to check them out. They also have cheap dev boards where you can try things out. The only ARM project I worked on was using an ARM7tdmi. It's been around for a long time so it was fairly easy to find sample code on the web.

                                    1 Reply Last reply
                                    0
                                    • H honey the codewitch

                                      Oh plenty of people do embedded. They just aren't talking. :-\

                                      Check out my IoT graphics library here: https://honeythecodewitch.com/gfx

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

                                      Maybe they are talking, but in more specific forums. Such as for the Nordic Semiconductor chips: There is quite some traffic at Nordic DevZone[^], bur aimed at those developing for Nordic chips. Yet you might be able to pick up some useful tricks, if you work with ARM based chips and Zephyr. Lots of issues relate to Zephyr and ARM, not specifically to the Nordic implementation.

                                      1 Reply Last reply
                                      0
                                      • H honey the codewitch

                                        This isn't a criticism, just an observation: There are no "real"" articles on getting going with embedded here at codeproject. For example, I just searched for Devicetree - a declarative format for configuring hardware for an operating system like Linux and ZephyrOS. I found one result - an interesting little linux driver that implements a loop back of some sort. Nothing really on using ST's HAL, or NXP's offerings, or even the VS Code extensions by Nordic Semiconductor. On one hand, that's fertile article territory. On the other, codeproject is in good company in this respect. If you intend to practice the black arts of commercial embedded, you will eventually need to know these things, only to find out that A) After sitting through 30 minutes of a how to video you notice it won't support your hardware B) Google laughs at your search queries. Laughs in your face. Try googling how to do SPI with CMSIS. You'll find two useful article with code and concepts, both for a particular semiconductor vendor you don't use. I've already looked. C) Try using Cube. Just try. If the screen doesn't stop repainting for you 5-10 minutes in, you're a luckier person than me. And even if you get past that, you still have to learn how to use it D) Everything else is courses and academies. Regarding D: I really don't do well with that format. I test well, but only if I can figure out how to learn something on my own before the test is due. That worked in high school. It won't work here. I need better options. I'm on a discord about this. And I've been in my element banging away at ZephyrOS. I may just have some codeproject articles on this eventually. Of course that's what I said about getting an OSless setup running on an ARM Cortex A before I gave that up.

                                        Check out my IoT graphics library here: https://honeythecodewitch.com/gfx

                                        M Offline
                                        M Offline
                                        Member_14884492
                                        wrote on last edited by
                                        #19

                                        Embedded programming is antithetical to pretty much every programming trend of the last 20 years. Note: If you are programming on a board that runs Linux or Android then this discussion is not really aimed at you. Deeply embedded systems are often built on severely resource constrained hardware. The typical embedded system uses only the memory built into the processor which can be a lot less than you expect. Cortex M0 processers for example come in variants with as little as 32KB FLASH and 2 KB RAM. Note the K vs M. The primary embedded programming languages is C (not C++ even though your compiler will claim to be C/C++). You will also need assembly code if you do board support packages. If you are not a proficient C coder, then get a good book and teach yourself. Book recommendations: All of these are older than dirt, but they are classics for a reason and will help you develop the mindset of an effective embedded programmer. Some of these are available as free downloads. * "Practical C Programming" by Steve Oualline for learning C coding in general. * "The Art of Embedded Systems" by Jack Gansslle for the general philosophy of embedded programming. * "Math Toolkit for Real-Time Programming" by Jack Crenshaw for complicated math. * "Insiders Guide to the Phillips ARM7 based Microcontrollers" by Trevor Martin for using processor resources. Martin's book on Philips ARM7 is the very best hardware tutorial book I have ever read. Hitex did a great thing for embedded programmers when they released this book as a free download (I think Philips paid for this book). I wish they had done the same thing for Cortex M processors, but life happens and money is not infinite. https://perswww.kuleuven.be/~u0068190/ARM7/lpc-ARM-book\_srn.pdf Embedded systems can go years between reboots and memory usage management is up to the programmer. Automatic memory allocation (malloc, new, etc.), or anything object oriented can be dangerous. Be wary of any library code that uses these kinds of things. This is one of the reasons why I want the source code for all libraries I use. Ring buffers are your friend. If properly implemented, buffer overflow exploits just became a thing of the past. You will need to be able to deal with missing data. I use packetized messages with error detection and missing message detection built into the communication protocol (I have been using my own processor to processor packetized protocol that I have used and extended over the last 2 decades). Every embedded product needs a r

                                        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