Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Embedded system
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
===Tools=== As with other software, embedded system designers use [[compiler]]s, [[Assembly language|assemblers]], and [[debugger]]s to develop embedded system software. However, they may also use more specific tools: * In circuit debuggers or emulators (see [[#Debugging|next section]]). * Utilities to add a checksum or [[Cyclic redundancy check|CRC]] to a program, so the embedded system can check if the program is valid. * For systems using [[digital signal processing]], developers may use a [[computational notebook]] to simulate the mathematics. * System-level modeling and simulation tools help designers to construct simulation models of a system with hardware components such as processors, [[memories]], [[Direct memory access|DMA]], [[Interface (computing)|interface]]s, buses and software behavior flow as a state diagram or flow diagram using configurable library blocks. Simulation is conducted to select the right components by performing power vs. performance trade-offs, reliability analysis and bottleneck analysis. Typical reports that help a designer to make architecture decisions include application latency, device throughput, device utilization, power consumption of the full system as well as device-level power consumption. * A model-based development tool creates and simulates graphical data flow and UML state chart diagrams of components like digital filters, motor controllers, communication protocol decoding and multi-rate tasks. * Custom compilers and linkers may be used to optimize specialized hardware. * An embedded system may have its own special language or design tool, or add enhancements to an existing language such as [[Forth (programming language)|Forth]] or [[BASIC Stamp|Basic]]. * Another alternative is to add a RTOS or [[embedded operating system]] * Modeling and code generating [[UML tool|tools]] often based on [[UML state machine|state machines]] Software tools can come from several sources: * Software companies that specialize in the embedded market * Ported from the [[GNU]] software development tools * Sometimes, development tools for a personal computer can be used if the embedded processor is a close relative to a common PC processor Embedded software often requires a variety of development tools, including programming languages such as [[C++]], [[Rust (programming language)|Rust]], or [[Python (programming language)|Python]], and frameworks like [[Qt (software)|Qt]] for graphical interfaces. These tools enable developers to create efficient, scalable, and feature-rich applications tailored to the specific requirements of embedded systems. The choice of tools is driven by factors such as real-time performance, integration with hardware, or energy efficiency. As the complexity of embedded systems grows, higher-level tools and operating systems are migrating into machinery where it makes sense. For example, [[cellphone]]s, [[personal digital assistant]]s and other consumer computers often need significant software that is purchased or provided by a person other than the manufacturer of the electronics. In these systems, an open programming environment such as [[Linux]], [[NetBSD]], [[FreeBSD]], [[OSGi]] or [[Embedded Java]] is required so that the third-party software provider can sell to a large market.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)