What is Embedded Programming? #programming #lowcode #tech #codinglessons #security

preview_player
Показать описание

Magic Addresses 📚🚀 #Cplusplus #CodingTips #OperatorOverloading #MatrixMultiplication #CodeTricks

🔥🔥🔥 SOCIALS 🔥🔥🔥
Рекомендации по теме
Комментарии
Автор

And that’s why you mark the variables that referenced those points in memory as volatile. Otherwise the compiler will optimize them out.

JohnWasinger
Автор

Embedded Programming really is more about working close to the hardware, in a highly memory limited environment, without a an OS(at most an RTOS, maybe embedded Linux) usually on Chips with significantly lower Clock Speeds. Also often whilst working in close cooperation with the people who design your hardware.

LunaNicoleTheFox
Автор

When people say embedded programming, litterally all that means is you read documentation 95% of time, and write code 5% of time

farukhalilagic
Автор

The common distinction is really the lack of a full-fledged OS with a scheduler and memory management that you would normally find in desktop or server environments.

Having memory addresses mapped to devices is something that you also find on any non-embedded environment, especially if you go into driver programming and really misses the point why embedded programming is seen as something inherently different. However, the lines have become very blurry in recent years, especially when you look at the RPI running a Linux as example.

Asto
Автор

When people say embedded programming is a lot more than memory variables. But yeah for someone with tiktok attention span thats about right.

yanava
Автор

Embedded Programming is 98% testing 2% writing code (where I work). It's some of the best problem solving work available. I really like it.

lylesnodgrass
Автор

That's all what embedded programming is? Dunning-Kruger is strong with this one.

sharpfang
Автор

It is also:

Your code will run on another architecture, than your pc, so sometimes the instructionset is different, and as a result the machine you are targeting will produce another result than you get when testing on your machine.. like a 16 bit machine won't hold the same range of integer values that you can when testing.

Or perhaps there is no hardware support for floating point operations, so it may be worth discussing if some value should be represented as integers instead, even though that is clearly giving a loss of accuracy..

There is also real-time concerns, like "if this takes too long, something literally explodes and kills someone" which happens less often when writing some user application

HenrikDalsager
Автор

This is a gross misrepresentation of what embedded programming is. Embedded programming is more about working within highly resource constrained environments and on devices that often have to run non-stop without issue for substantial portions of their lifecycle.

polarpenguin
Автор

You have mmio on non embedded as well, embedded has more to do with having no scheduler and mmu and being deterministic, and also being more resources constrained

spidertube
Автор

Embedded is more about targeting a different architecture, so you are cross compiling some firmware and loading it to the embedded system. Today this is either usually a microcontroller or linux SoC. You're writing a firmware, hence your code is "embedded" in the system, not in userspace.

alexstixx
Автор

If you happen to avoid the OS and reach kernel level, it's pretty much the same. Writing to a display device as an example on a driver is the same

Abraham_writes_random_code
Автор

You just described memory mapped io, not embedded programming.
This is a very popular way to do computer control on hardware, IE most drivers.

Back up a second here... And ask a professional.

Embedded programming just writes code for computers typically found inside other products that are associated with a specific use that is not a general purpose computer.
The NES is pretty much for video games. The computer that makes your washing machine or the computer that controls the valves and fuel injector in your car _probably_ have memory mapped io, but a the embedded algorithms don't really care about how the drivers work. The just call a function or send an ipc message that does memory mapped io.

kayakMike
Автор

Embedded programming is not the same as Memory Mapped I/O, otherwise, device drivers would be embedded programming.

guilherme
Автор

I thought it meant coding while you're in bed

xixSAUCExix
Автор

I must admit the first embedded system project that interest me the most is the atm machine. I studied about the pin and the electrical stuff that could effect the pin whether its active low or high things like this.
Then, i thought it was not possible to reverse engineer it since i do not know at what address is the code for dispensing the money. So, i abondon the project and look at other project.

abacaabaca
Автор

Reading magical addresses can have side effects as well. The volatile keyword comes in handy to ensure an optimization pass doesn't optimize away a read/write

fortysixfish
Автор

This is so wrong- embedded developers work with oscilloscopes, look at schematics and work with electrical engineers to agree on I/O, and measure pin levels and things of this nature.

Application developers don’t do that.

Much more than registers, which is what he’s talking about.

Source- I work on embedded systems for the U.S. DoD.

youngan
Автор

I've always defined embedded programming as programming for an environment without OS services, but this definition makes sense too

elkvis
Автор

a better description would be "remember when I said programming has userspace and kernel portions and you write on the user side?" embedded means you're on the kernel side and nothing is provided for you unless you have a bios to tap into. no guard rails. no protection. no housekeeping for memory/heap. everything is manual

kehlarn