अन्य सॉफ्टवेयर्स की ही तरह एम्बेडेड सिस्टम डिज़ाइनर्स भी एम्बेडेड सिस्टम सॉफ्टवेयर विकसित करने के लिए कंपाइलर्स, असेम्बलर्स और डीबगर्स का प्रयोग करते हैं। हालांकि, वे कुछ अधिक विशिष्ट उपकरणों का प्रयोग भी कर सकते हैं।


सॉफ्टवेयर उपकरण विभिन्न स्त्रोतों से आ सकते हैं:

जैसे-जैसे एम्बेडेड सिस्टम्स की जटिलता बढ़ रही है, उच्च-स्तरीय उपकरण और ऑपरेटिंग सिस्टम्स उस मशीनरी में स्थानांतरित हो रहे हैं, जहां उनका होना अर्थ-पूर्ण होता है। उदाहरण के लिए, सेलफोन, पर्सनल डिजिटल असिस्टन्ट्स तथा अन्य उपभोक्ता कम्प्यूटर्स के लिए अक्सर लक्षणीय सॉफ्टवेयर की आवश्यकता होती है, जो इलेक्ट्रानिक्स के उत्पादक के अतिरिक्त किसी अन्य व्यक्ति द्वारा खरीदा या प्रदान किया जाता है। ऐसे तंत्रों में, एक मुक्त प्रोग्रामिंग वातावरण, जैसे: लिनक्स [Linux], NetBSD, OSGi अथवा एम्बेडेड जावा, की आवश्यकता होती है, ताकि थर्ड-पार्टी सॉफ्टवेयर प्रदाता इन्हें एक बड़े बाज़ार को बेच सके।

उपकरण
मोनोलिथिक कर्नल
एम्बेडेड सिस्टम्स में प्रोसेसर्स
सहकारी मल्टी-टास्किंग