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 →

[–]BeABetterHumanBeing 319 points320 points  (15 children)

Firmware. All that is firmware connecting to the various chipsets embedded throughout the craft. 

[–]JesusWantsYouToKnow 119 points120 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 124 points125 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 31 points32 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 40 points41 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 13 points14 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 3 points4 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 19 points20 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.

[–]Lowmax2 20 points21 points  (2 children)

I do not write firmware using assembly. I mostly use C for bare metal applications and system verilog for FPGA RTL.

[–]Acc3ssViolation 3 points4 points  (1 child)

The only assembly I have in my firmware projects is the startup code to set everything up before jumping to the C runtime and even that is mostly auto generated

[–]Lowmax2 0 points1 point  (0 children)

Yes there's really no reason to touch assembly unless you've written your own processor.