0

Firstly I am thinking of modern digital cameras like DSLR and Mirrorless Bodies.

Curious about both the "front end" that is user interfaces on digital screens and the more hardware driver side of things like the sensor or data storage controller.

What about digital cinema cameras?

Anyone know?

  • 1
    This seems off topic... the language(s) used to write the firmware would have little impact even if you were trying to write software that runs on the camera, and even less impact on using the camera for photography as the term is used on this site. – Caleb Dec 9 '19 at 19:57
  • Perhaps off topic, yes, but I thought that developers for camera companies might frequent this site and would be able to chime in. – WillD Dec 9 '19 at 20:00
  • 1
    Probably you'd get a better answer over at electronics.stackexchange.com -- that's where firmware developers usually hang out. – Nate S. Dec 9 '19 at 21:54
  • What language most of the firmware for an embedded device is written in is PLENTY relevant for anyone wanting to write - sanctioned or unsanctioned - further software for that device. Library bindings, ABIs etc etc.... – rackandboneman Dec 10 '19 at 11:45
  • Also, not all firmware parts might be in a compiled language - there might be scripts, interpreted code. And even with compiled languages - it is good to know as much as possible about how binary code came to be when attempting to reverse engineer it. – rackandboneman Dec 10 '19 at 11:49
3

The source code of MagicLantern (an alternative/extension firmware for Canon DSLRs) is written mostly in C.

| improve this answer | |
2

From what I have talked to people that write firmware: They all used C.

A classic example that I've loved to death: The fantastic FOSS mp3 player firnware Rockbox is mostly written in C.

I guess mainly for simplicity (little overhead) and speed.

Here's a relevant Quora link: Why is C preferred over C++ in firmware development

A short quote from a hackernoon article : "Since C language was originally designed for system level programming, it’s no surprise that it’s commonly used to build operating systems and firmware. It’s close enough to the hardware layer to manipulate low-level code but also fast and energy-efficient."

| improve this answer | |

Not the answer you're looking for? Browse other questions tagged or ask your own question.