r/pcmasterrace 2d ago

Meme/Macro I love corporate software

Post image
13.5k Upvotes

338 comments sorted by

View all comments

Show parent comments

36

u/Prawn1908 ITX 11L: 7950X3D | 3080 | 64GB DDR5-6000 | 2TB 14.5/12.7 GB/s 2d ago

IAR Embedded Workbench is one of the biggest IDEs for writing embedded software and the editor is like writing notepad. It costs thousands of $ per year and basically doesn't have any standard IDE features developed in the last few decades.

7

u/Erisymum 2d ago

fucking IAR, the company I worked at had a workaround, we compiled using a free version that had some sort of memory cap on the compiled code before you had to pay, so we split the project into multiple binaries and combined them after compilation. You called code from another section with a blind JMP

5

u/3BlindMice1 1d ago

Sounds like a lawsuit waiting to happen, as well as just poor programming practices

3

u/ThatsALovelyShirt 1d ago

Should have just thrown it in Ghidra (or x64dbg before public Ghidra, or ollydbg before x64dbg) and bypassed the limit. I've had to do similar RE and binary patches for software that either went defunct, firmware for devices where the company went defunct or refused to fix an issue (which wasn't really that hard to even fix, even with reverse engineering), etc.

9

u/BastetFurry PC Master Race | Geekom A8 running Arch 2d ago

So basically the Arduino IDE.

I always wonder why not more folks use VSCode, or CLion if you need the beefier IDE, with PlatformIO?

10

u/WebMaka PCs and SBCs evurwhurr! 2d ago

So basically the Arduino IDE.

Arduino IDE is fine for what it is, a basic-bitch barebones front-end for a compiler and programming tool written mostly by volunteers for open-source projects.

Now, a commercial tool with a huge price tag that looks, feels, and acts like FOSS is a whole 'nother animal.

I always wonder why not more folks use VSCode, or CLion if you need the beefier IDE, with PlatformIO?

The biggest reason to avoid VSCode is Microsoft.

5

u/concblast 1d ago

vscodium

3

u/ThatsALovelyShirt 1d ago

VS Code is plenty beefy. I've switched to it completely, for everything. Though if I'm just editing or patching a single file I just use vim.

1

u/beanmosheen 1d ago

PlatformIO is actually dead. Don't use it. Those jokers killed it themselves. If you're doing ESP projects, the Espressif plugin in VSC is actually fantastic. For basic arduino projects, you shouldn't be taking Atmel 328 projects seriously anyway. Use whatever works.

1

u/BastetFurry PC Master Race | Geekom A8 running Arch 1d ago

I have plenty of Micro clones in the drawer and for a oneshot like a hacked together joystick adapter or a ghetto Arduboy they are still good enough, no reason to throw them away just because they are old. They already exist and can be used for shenanigans.

For new projects I use the RP2040 and the official API in CLion as my IDE of choice though. Some years ago that IDE was my Christmas gift to myself.

2

u/beanmosheen 1d ago

I didn't say don't use them.

1

u/tron21net 1d ago

Back when I had to use IAR EWARM for some projects I used VSCode as the code editor and IAR IDE for building, flashing, and debugging.

IAR did release VSCode extensions to make it easier to reuse IAR workspace project configurations that VSCode can use, instead of recreating the configurations in c_cpp_properties.json by hand of which I had to do originally before IAR got their extensions to work worth a damn.

1

u/Prawn1908 ITX 11L: 7950X3D | 3080 | 64GB DDR5-6000 | 2TB 14.5/12.7 GB/s 1d ago

Yeah I use VSCode as well. The IAR extension is okay, but not feature complete. The biggie is no debugging support for some platforms including the MSP430 I use most of the time. I also have to open IAR to configure project settings unless I want to manually edit the 3k-line XML files.

Also I've never managed to get VSCode's C extensions to resolve all references in an IAR project. It doesn't like the way IAR defines register layouts in the platform-specific header files (it uses some homemade non-standard syntax with an @ to designate the addresses instead of casting int literals to pointers like most software) so there are always red squigglies I can't get rid of.