I am an absolute beginner , what I know is that to start embedded programming you should get a development board , create your project code using the development board. then in order to use that code in a real project you can either:
1-"manufacture" your own board using microcontroller chips and various electronic components from the market.
OR
2- use one of the boards that are "ready made".
correct? I mean is #1 is the way to go?
I think using a development board in real world projects is expensive. and even often development boards are large and heavy. given the complexity (I think) of arm processors is it feasible for "serious hobbyist" to create his own boards at home?
john moore said:I am an absolute beginner
Do you have any other programming experience?
If not, it would be easier to start by learning the basics of programming in C or C++ on a "conventional" computer - where you will have a far more "comfortable" experience away from all the added complications & restrictions of embedded microcontrollers.
Here are some C learning & reference materials - including a free online textbook:
blog.antronics.co.uk/.../
Once you have that, then you can move on to applying it to embedded microcontrollers.
I would certainly strongly recommend that you start with development board: then you have known-good hardware, support, examples, tutorials, etc - and won't be left wondering if it's your hardware or your software or both that's at fault.
I would also suggest that you get a manufacturer's own development board - as a known & supported platform - rather than some no-name board from ebay or suchlike.
Be sure to get a board with built-in debugger: you don't want the hassle of having to source, configure, and connect a separate one at this stage. They are pretty much de rigueur these days anyhow - so anything without one is really behind the times...
Or there's always Arduino ...
john moore said:is #1 is the way to go?
is #1 is the way to go?
As above, I would say not for "an absolute beginner" - start out on known-good hardware.
Designing your own board requires a whole lot more than just programming - you will also need good electronics skills, etc ...
john moore said:I think using a development board in real world projects is expensive.
Not at all - especially if you account for your time.
Even the manufacturer's own dev boards with built-in debugger these days are often under $20 or so.
Once you have gained experience, there are plenty of very cheap boards available on the likes of ebay - often for less than you can buy the parts yourself. They don't come with all the support that a beginner would need - but are fine for experienced users.
john moore said:often development boards are large and heavy
Not necessarily.
Nowadays, there are lots of very compact dev boards; eg, the STM32 Nucleo-32; Microchips Xplained Nano and Curiosity Nano, etc ...
See also:
https://community.arm.com/developer/f/infrastructure-solutions/49407/i-am-new-to-arm-development-how-do-i-start/
https://community.arm.com/developer/tools-software/f/simulation-models/48752/an-emulator-for-arm-cortex-m-mcues/
https://community.arm.com/developer/f/infrastructure-solutions/49417/is-c-programming-standard-for-all-arm-chips
And here are some general microcontroller beginner 'Getting Started' tips:
https://www.avrfreaks.net/comment/2079906#comment-2079906
thank you very much
Cortex-M Microcontroller boards are within the realm of "build-it-yourself abilities.
But the era of Large, expensive, heavy development boards seems to be pretty much over, killed by Arduino and it's brothers.
ST, NXP, and TI have a large variety of eval boards for their respective Cortex-M offerings that are quite resonably priced, and include on-board debug hardware.
Assorted Arduino an Arduino derivative boards cover a broad range of Microchip parts, go down toward the "very small" and "very cheap", and aren't really much more than a bare Microchip ARM chip plus the basic circuitry needed for it to run (say, like an Adafruit "Itsy Bitsy" based on SAMD21 or SAMD51.) And the Microchip "Curiosity Nano" boards that include a debugger as well.
Then there's the new $4 Raspberry Pi Pico board...
I would say if your interest is "embedded programming", you should start with pre-built board - having things go wrong and not knowing whether it's your hardware design, your HW building skills, your build environment, or your software is just ... really annoying. And this is WHY manufacturers provide "development boards" and environments. "Here is a known working set of stuff. Anything that goes wrong is YOUR fault. Almost certainly.")
THEN design your own board, because that's an important skill too. The number of people who are willing to plunk a "development board" in the middle of something that they hope to make into an actual product is ... depressing. (but may also "a good decision", based on pricing! An RP2040 is $1, and a Pico Board is $4. I don't think anyone can design the components of a Pico from bare parts for less than $4, in small volumes... (and then there's trying to solder 0.4mm QFN packages!))
(heh. I should also confess that I have a large stash of "development boards" that I've never actually done anything with. They were cheap (occasionally free), and they make up a sort of "library" of "this isn't my chip of choice, but if I have to I can try it out.)