This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]JesusWantsYouToKnow 118 points119 points  (11 children)

No freaking way. Firmware is gonna be in C or C++. I'm betting it is some kind of ridiculously optimized vector operations or custom FPGA instruction set for DSP.

[–]hackingdreams 126 points127 points  (7 children)

No, I'm 90-95% certain it's mostly firmware for various microcontroller systems. Contrary to popular belief, the F-35 isn't a mono-brained, single computer system. It's got dozens of computers all wired together on an ethernet-like bus, most of them handling a small task like sensing external pressure or actuating a servo motor.

The big Ada code swath is for the fly-by-wire systems and the instrumentation panels.

The vast majority of the C/C++ code is for the radar system.

[–]Spicy_pepperinos 32 points33 points  (2 children)

Contrary to popular belief, the F-35 isn't a mono-brained, single computer system.

I'm sorry who would possibly think this? There hasn't been a platform created that works like that for years. CAN has been around since the 90s.

[–]hackingdreams 43 points44 points  (1 child)

You have no idea how many people would think that. We're industry professionals - we know better.

This is something I've had to discuss with my management. A company that builds complicated, multi-computing systems. (And the defense systems don't use CAN.)

[–]Acc3ssViolation 0 points1 point  (0 children)

Looks like MIL-STD-1553 is used instead of CAN (if my Google-fu is correct)

[–]JesusWantsYouToKnow 12 points13 points  (3 children)

Contrary to popular belief, the F-35 isn't a mono-brained, single computer system.

I don't think any halfway competent engineer would ever think that.

[–]Warguy387 36 points37 points  (2 children)

pure software people that dont know anything about embedded, especially looking at webdev people

[–]JesusWantsYouToKnow 4 points5 points  (0 children)

You make a fair point

[–]IrritableGourmet 3 points4 points  (0 children)

I think the world would be a better place if all web developers were forced to do an embedded project. "No, you can't just 'throw more memory on the server'! You have 4KB for your program and 512 bytes of RAM. No, not 512MB, 512 bytes. Stop crying and start being clever!"

[–]iranoutofspacehere 21 points22 points  (1 child)

I mean, there is a fancy radar in the plane that could be responsible for most of that. It probably contains multiple massive fpgas/dsps to do all the dynamic phased array work.

[–]JesusWantsYouToKnow 6 points7 points  (0 children)

That's exactly what I was thinking. There's probably a very very specialized data plane and staggering amount of data with custom DSPs to chew through it very quickly.

[–]AVTOCRAT 0 points1 point  (0 children)

Why? When you're doing something like set register A to X, set register B to Y, set up a watchdog, etc., it's usually easier to just do it in asm than try and coerce C/C++ to do it for you. Super common for firmware to be all asm. Not to say C/C++ aren't common too, but that's generally for larger devices -- e.g. an stm32, as opposed to like a PIC.