Perangkat lunak tertanam (embedded software) adalah pemrograman khusus yang tertanam dalam sebuah chip atau pada firmware dalam perangkat tertanam untuk mengontrol fungsinya.
Produsen perangkat keras menggunakan perangkat lunak tertanam untuk mengendalikan fungsi berbagai perangkat dan sistem perangkat keras. Perangkat lunak tertanam mengontrol fungsi perangkat dengan cara yang sama seperti sistem operasi komputer mengontrol fungsi aplikasi perangkat lunak. Hampir semua perangkat dapat mengandung perangkat lunak tertanam – mulai dari yang sangat sederhana, seperti pemanggang roti dan lampu, hingga sistem pelacakan kompleks dalam misil.
Perangkat lunak tertanam digunakan untuk mengontrol fungsi terbatas dan spesifik dari perangkat keras dan umumnya tidak memerlukan masukan pengguna; pengguna biasanya tidak berinteraksi langsung dengan perangkat lunak ini. Fungsinya diaktifkan melalui kendali eksternal, baik melalui aksi dari perangkat itu sendiri maupun melalui input jarak jauh. Perangkat ini mungkin memiliki jalur komunikasi dengan perangkat lain untuk mendukung fungsinya atau untuk keperluan penyesuaian, kalibrasi, atau diagnostik. Melalui koneksi ini pula, seseorang dapat mencoba melakukan peretasan sistem tertanam.
Perangkat lunak tertanam memiliki tingkat kompleksitas yang beragam, tergantung pada perangkat yang dikendalikannya. Meskipun istilah ini sering digunakan secara bergantian dengan firmware, perangkat lunak tertanam sering kali merupakan satu-satunya kode komputer yang berjalan pada suatu perangkat keras, sedangkan firmware, sebaliknya, dapat menyerahkan kendali kepada sistem operasi yang kemudian meluncurkan dan mengelola berbagai program.