Embedded software is the brain of an embedded device, and is written specifically for the hardware. It is the machine code that directly accesses the underlying controller or processor and the built-in and/or connected peripherals. It is typically written in C, but other languages such as Python, Java, JavaScript, C++, Verilog, Rust, and low-level assembly languages are also used. Software development tools include a code editor, linker, debugger, and compiler/assembler. The code editor writes and edits the source code, the linker combines the main code and all the dependencies into one executable unit, the debugger ensures there are no errors in the code, and the compiler or assembler converts the source code into the final implementable machine code.
