Live data from Hacker News

Embedded Programming Without the IDE

reecestevens.me

31–40 of 59 posts

Re: Embedded Programming Without the IDE

#31
Author here. Wow, I wrote this article back in college and I was really surprised to see it up here on HN! Pretty cool to see so many talented embedded folks reading my "write to learn" piece :)

This blog post was the start of me figuring out the love of diving in deep to embedded development. Since then, I built a patient monitor device using this makefile-driven build approach. Nowadays, I am re-writing this device using embedded Rust. It has been such a great experience watching the embedded Rust space grow and mature over the years; it wasn't the case several years ago, but now I can build a complex embedded system using stable Rust! I've even got on-device unit tests working, and it's still the same terminal-driven, vim-based workflow I've gotten so familiar with.

Re: Embedded Programming Without the IDE

#32

Author here. Wow, I wrote this article back in college and I was really surprised to see it up here on HN! Pretty cool to see so many talented embedded folks reading my "write to learn" piece :) This blog post was the start of me figuring out the love of diving in deep to embedded development. Since then, I built a patient monitor device using this makefile-driven build approach. Nowadays, I am re-writing this device…

Hi Reece! Love your work! Also checkout comments here https://www.reddit.com/r/embedded/comments/jgk3o1/embedded_p...

Re: Embedded Programming Without the IDE

#33
post #9

Hasn't Make been launched in, like 1976? And vi in '77. Congrats on rediscovering them.

haha, indeed I was quite late to the party in discovering the power of these tools :) In a way though, the fact that a college student in 2016 can get excited about the possibilities of vi and make speak volumes to how influential a well-designed software tool can be!

Re: Embedded Programming Without the IDE

#34
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…

Can I ask which JTAG debugger specifically? I’m in the market for a good one.

Re: Embedded Programming Without the IDE

#35
post #21
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…

So the embedded industry basically has three types of toolchains/dev environments. Open source, vendor supplied, or paid commercial stuff. The commercial stuff costs a lot of money. Depending on what the project is and the size of the company, there's a good chance an embedded developer will have to suffer with this stuff. Compiler error messages are straight out of the 90s in terms of how bad they are, basically wha…

You're absolutely right about the suffering the the commercial stuff and the open source stuff being more flexible.

However, when a product needs to use a certified toolchain to meet required safety standards, and to be supported using that toolchain throughout the product life, it does have its place. Doesn't stop you using GCC or LLVM in addition for the better diagnostics though. But you would not want to bet with people's lives on the assembler output of optimising compilers, when it comes down to real life critical stuff in production. You could use it, but independently validating the toolchain would be really expensive. The commercial toolchains (allegedly) provide behaviour guarantees that standard compilers do not. Probably more expensive than forking out for the commercial licences in most situations, which is most likely why they are so costly.

Doesn't mean that us devs don't wish daily for GCC and LLVM levels of user friendliness and features though...

Re: Embedded Programming Without the IDE

#36
post #8

Earlier quoted context omitted.

Life as an amateur is probably worse. I understand why businesses don't focus on this market, but the hurdles imposed on simply getting into embedded programming are absurd. Yes, you have things like Arduino that can target multiple platforms. On the other hand, all of the hand-holding with libraries and hardware modules doesn't exactly encourage diving deeply into the subject. Then there is the stuff that simply isn…

Life as an amateur is better. Arduino + PlatformIO is plain fun to work with. As a professional (as in getting paid to do it), I shed being ashamed of using Arduino a while ago. With PlatformIO, you have great tooling and you can avoid the garbage that are the vendor supplied IDEs. And even tough the Arduino HAL isn't exactly elegant, I can switch between uCs without having to learn a new API. I can even port between…

The problem with a lot of this solutions is that they won’t hold for complex projects. If all you are doing is turning on some leds and connecting through usb, it works okay.

Try heavily time-sensitive synchronized SPI transfers and going deep into the hardware layout becomes necessary.

Re: Embedded Programming Without the IDE

#37
post #34

Earlier quoted context omitted.

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…

Can I ask which JTAG debugger specifically? I’m in the market for a good one.

Segger. Lots of choices at different price levels.

Re: Embedded Programming Without the IDE

#38
post #8

Earlier quoted context omitted.

Life as an amateur is probably worse. I understand why businesses don't focus on this market, but the hurdles imposed on simply getting into embedded programming are absurd. Yes, you have things like Arduino that can target multiple platforms. On the other hand, all of the hand-holding with libraries and hardware modules doesn't exactly encourage diving deeply into the subject. Then there is the stuff that simply isn…

Life as an amateur is better. Arduino + PlatformIO is plain fun to work with. As a professional (as in getting paid to do it), I shed being ashamed of using Arduino a while ago. With PlatformIO, you have great tooling and you can avoid the garbage that are the vendor supplied IDEs. And even tough the Arduino HAL isn't exactly elegant, I can switch between uCs without having to learn a new API. I can even port between…

There are a lot of great things about Arduino and I agree that there is no reason to be ashamed of it, but the community can be a bit disappointing at times.

I suppose that a lot of people approach the Arduino from the perspective of wanting to create something, yet I am more interested in learning how things work. You can definitely pursue to latter with Arduino. The hurdle I've been running into is a great many people are only interested in using the Arduino libraries, while the few who dive deeper seem to focus upon documenting their projects. Very few people seem to discuss bridging the gap.

Sometimes the most interesting bits lay in that gap. I learned more about microcontrollers by disassembling simple programs and referencing datasheets than from following tutorials or attempting to read the datasheets on their own. You simply cannot do that sort of stuff with the basic Arduino IDE. It hides the details of implementation and of the toolchain. In my case, it took the arduino-cli tools.

None of that is meant to diminish Arduino, MicroPython, or the many other projects that are intended to make life easier. Are they more fun? That depends upon what you're trying to accomplish. I play with this stuff because it brings back memories of the early days of personal computers, so I am more keen on seeing what can be accomplished within tight constraints and shedding away the layers of abstraction. Of course, different people will have different goals and expectations.

Re: Embedded Programming Without the IDE

#39
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…

The tooling is not very good because nobody pays for software tools. When the electrical engineers pick the ecosystem they are not stupid enough to just use whatever tooling comes with the ecosystem for free, they spend $50k/year per engineer(!) to buy adequate tools to make their engineers productive. In contrast, software engineers and their engineering organizations are happy to waste equally valuable engineers just to save a couple bucks; it is insanity. In what other industry is a $10k expenditure an instant deal-breaker when investing in the productivity of an employee who costs more than $100k/yr? Companies invest more in the productivity of their truck drivers and admins than they do in software engineers. We are extremely valuable employees and we should demand that our companies invest reasonable amounts into actually making us productive instead of just tossing us the scraps since they are harming their own profitability by doing so. I mean, think of all the awesome tools that would make our jobs easier and more productive if our productivity were valued even half as much as the average electrical engineer.

Re: Embedded Programming Without the IDE

#40

Earlier quoted context omitted.

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.

Everyone loves a Chestnut Brown ale that your neighbor brewed in his basement. But my clients prefer name brands delivered in sealed bottles.

For the sealed-bottle experience, you can buy the commercially supported Black Magic Probe hardware. Still open-source and better integrated into gdb than Segger etc.
Post reply on HN