Live data from Hacker News

Embedded Programming Without the IDE

reecestevens.me

11–20 of 59 posts

Re: Embedded Programming Without the IDE

#11
post #2

I'm very unlike the author in that I mostly dislike the terminal and I really like IDEs. That said, I think he's onto something here because, invariably, the IDE experience for embedded programming sucks . The amount of chipsets that pretty much force you to use an outdated compiler toolchain with some shitty unmaintained Eclipse plugin, or Visual Studio 2008 or whatever outdated piece of shit, is baffling. I'll neve…

I'd encourage anyone doing embedded development in 2020 to give VisualGDB a try. I'm very happily developing embedded systems in VS2019 with C++17/20, and it has built-in support for every platform I would want to use.

I have no affiliation with this company, just a happy customer.

https://visualgdb.com/

Re: Embedded Programming Without the IDE

#12
post #2

I'm very unlike the author in that I mostly dislike the terminal and I really like IDEs. That said, I think he's onto something here because, invariably, the IDE experience for embedded programming sucks . The amount of chipsets that pretty much force you to use an outdated compiler toolchain with some shitty unmaintained Eclipse plugin, or Visual Studio 2008 or whatever outdated piece of shit, is baffling. I'll neve…

I'll never understand why professional embedded developers just suck this up

Here's my point of view: historically, software engineers didn't pick the ecosystem. The electrical engineers did. They looked at (in descending order) cost, I/O capability, manufacturing lifespan, and then finally the software ecosystem.

When things started getting too similar the chipmakers picked up on this and started selling the software as feature: "Our neato IDE has a Part Wizard! You pick the part and variant and our gizmo will set up a blank project with headers and mux already done. You can run Hello World with a mouseclick!" And thus we got things like CodeWarrior in Eclipse.

The dirty little secret in embedded is that everyone is lazy and they're behind. If that manufacturer-provided IDE does the setup and gets my code launched on the part then let's go. Hell, they even give me reference projects to steal from!

Look at all the work the OP does setting up a compiler and makefiles. Could we have done that years ago? Of course. But nobody wanted to make the effort.

A lot of us have moved on. I recently worked in an ecosystem built with Zephyr, ARM GCC (psst: get it right from ARM and skip Launchpad), VSCode (w/Cortex Debug plugin), Git, and CMake. The only thing I had to pay real money for was the JTAG debugger. It ran natively in Linux and it was sweet.

Re: Embedded Programming Without the IDE

#13
post #6
post #2

I'm very unlike the author in that I mostly dislike the terminal and I really like IDEs. That said, I think he's onto something here because, invariably, the IDE experience for embedded programming sucks . The amount of chipsets that pretty much force you to use an outdated compiler toolchain with some shitty unmaintained Eclipse plugin, or Visual Studio 2008 or whatever outdated piece of shit, is baffling. I'll neve…

Eclipse CDT is perfect for embedded developing, with no real competitor. Given the compilation command line output, its buildin parser can understand very large code base (the linux kernel, chrome browser et) efficiently and precisely, long before llvm-based tools appeared. No need to configure tons of vim plugins, you have tons of powerful features in the default settings, like type hierarchy, call hierarchy, debugg…

> Eclipse CDT is perfect for embedded developing, with no real competitor.

ugh, having used cdt a bit, it is terrible when compared to qt creator. It's pretty easy to make, say, an AVR-GCC toolchain and use it with CMake, which will then work ootb with QtC like any other C/C++ project.

Re: Embedded Programming Without the IDE

#14
post #2

I'm very unlike the author in that I mostly dislike the terminal and I really like IDEs. That said, I think he's onto something here because, invariably, the IDE experience for embedded programming sucks . The amount of chipsets that pretty much force you to use an outdated compiler toolchain with some shitty unmaintained Eclipse plugin, or Visual Studio 2008 or whatever outdated piece of shit, is baffling. I'll neve…

One factor to consider is long term stability, an area where web dev works very differently from embedded devices.

Embedded code is often tied to a specific hardware device. I maintain code that was originally written almost 20 years ago.

I'm extremely conservative in my technological choices for this reason. Whatever I'm using today needs to keep working if I (or my successors) have to unearth the project in 10 years.

And you're right that the vendor-provided tools are often pretty bad, but that's one of the main reasons I personally don't care for IDEs and deep integration with the environment. FZF works reliably everywhere, dummy (non-syntax aware) completion works reliably everywhere etc...

Would I be more productive with fancy-pansy code completion? Probably a little bit. But having a simple, agnostic, portable and stable development environment is well worth the trade-off IMO.

Not that I think that people are wrong for preferring IDEs, they're just a different set of trade-offs.

Re: Embedded Programming Without the IDE

#16
I'm biased for sure, but embedded rust has a growing toolset that is likely to be long lived as it's a collection of simple but effective tooling. It's the entire goal of knurling-rs and surrounding tooling to make it dead simple to run your programs on hardware.

Re: Embedded Programming Without the IDE

#18
There's a conflation in embedded of IDE as a toolchain assist, instead of as a code or language assist. It's a conflict of interest: Should the IDE be centered around the hardware (Current standard), or the language (standard in other domains)?

For embedded Rust, I've found the Jetbrains plugin to be outstanding. Ie, CLion, PyCharm etc with the Rust plugin. [Here's a minimal STM32 quickstart](https://github.com/David-OConnor/rust-embedded-quickstart) I wrote. It's not tied to an IDE. It uses probe-run to flash and debug.

Re: Embedded Programming Without the IDE

#19
post #2

I'm very unlike the author in that I mostly dislike the terminal and I really like IDEs. That said, I think he's onto something here because, invariably, the IDE experience for embedded programming sucks . The amount of chipsets that pretty much force you to use an outdated compiler toolchain with some shitty unmaintained Eclipse plugin, or Visual Studio 2008 or whatever outdated piece of shit, is baffling. I'll neve…

It may just be a matter of time. Those of us who are old enough to remember embedded programming in assembly language, aren't all that old! The following developments occurred after I had been doing embedded development for a few years:

* Microcontrollers that could be programmed in C with tolerable results

* Big enough memory and performance to not need hand tweaked assembly code

* Vendors who didn't expect you to pay for development tools

* A single CPU platform prevalent enough for someone to adapt GCC to it

However, embedded developers are certainly not unaware of developments in general software development tools. For one thing, they invariably end up writing higher level software to interact with and test their embedded creations. For another, all but the biggest shops have some interaction between the embedded and software teams. In my own case of doing modest projects in R&D, I've often got Arduino and a Python IDE open side-by-side on a lab computer.

Re: Embedded Programming Without the IDE

#20
post #2

I'm very unlike the author in that I mostly dislike the terminal and I really like IDEs. That said, I think he's onto something here because, invariably, the IDE experience for embedded programming sucks . The amount of chipsets that pretty much force you to use an outdated compiler toolchain with some shitty unmaintained Eclipse plugin, or Visual Studio 2008 or whatever outdated piece of shit, is baffling. I'll neve…

I'll never understand why professional embedded developers just suck this up Here's my point of view: historically, software engineers didn't pick the ecosystem. The electrical engineers did. They looked at (in descending order) cost, I/O capability, manufacturing lifespan, and then finally the software ecosystem. When things started getting too similar the chipmakers picked up on this and started selling the softwar…

If you're strapped for cash you can run Blackmagic Probe firmware on a $2 bluepill board for JTAG with a fully open-soure tool set. (I run it on a $2 esp8266 for wireless JTAG. Open-source gives many options!)

Free as in speech, almost free as in beer. Less than a single (good) beer.

Post reply on HN