Soru Gömülü projeler için Python kullanan var mı? [kapalı]


Şirketim nispeten basit bir gömülü proje için Python kullanıyor. Gömülü platformlarda Python kullanan başka biri var mı? Genel olarak bizim için iyi çalışıyor, uygulamaları geliştirmek için hızlı, hızlı hata ayıklama. Dilin genel "eksizliğini" severim.

Günden güne çalışmamdaki tek gerçek sorun, düzenli bir derleyici tarafından yapılan statik kontrol eksikliğinin, çalışma zamanında ortaya çıkabilecek sorunlara yol açabileceğidir. Bir dizgenin basit bir yanlışlıkla kedi ve bir yazdırma ifadesinde bir int tüm uygulamayı aşağı getirebilir.


40
2017-10-27 18:41


Menşei




Cevaplar:


Python'u oldukça fazla kullanıyoruz ARM işlemciler ile gömülü panolar ve 16 MB RAM (çalışan linux).

Gerçekten iyi çalışıyor ve pythonun güçlü noktalarından biri olan hızlı bir şekilde özel kod yapmak çok kolay.

Kodun güvenilirliği için -% 100 test kapsamına girmeye çalışıyoruz. Python ile yazma testleri çok hızlıdır ve size harika bir güven duygusu verir. Kullanırız bükülmüş deneme testleri yürütmek ve kapsama hakkında rapor vermek için, ancak başka birçok araç mevcut.

Benim deneyimimde python + testleri, diğer alternatiflerden daha güvenilir ve yazması daha hızlıdır.

Gömülü çalışmanın tek dezavantajı bazen pythonun yavaş olabileceği ve bazen çok fazla bellek kullandığıdır (nispeten konuşma). Bu bize henüz bir gösteri durdurma problemine neden olmamıştır ve python bir sorun olursa hem hız hem de hafıza için profili kolayca yapılabilir.

pychecker Ayrıca oldukça yaygın hatalar da yakalayacaktır.


14
2017-09-22 12:47





BTW, bu blog yayına bakın: "Python için çıkarım yaz"Python'a isteğe bağlı statik yazmayı eklemeyi açıklayan bazı Guido van Rossum blog yayınlarına bağlantılar da dahil olmak üzere, tür çıkarımı ve statik yazım hakkında ilginç bir tartışma.

katılıyorum Bruce Eckel Güçlü yazmayı temel almaktan çok "güçlü test" uygulamadan daha iyidir. Bence gömülü gelişime eşit derecede uygundu.


10
2017-10-27 19:51





Şahsen, kullanılan cihazda çalışan bazı yazılımlarda çalıştım. BusRadio. Yerleşik yerleşik bir projenin bir örneği bükülmüş ve Python. Cihaz gömülü XScale çalışan bir işlemci debian türetilmiş dağıtım, bu yüzden "gömülü" belirli tanımları karşılamayabilir, ancak oldukça küçük Dang: bir okul otobüsü kontrol paneline sığar.

Python'u büyük kütüphanelerle kullanmanın bazı ilginç sorunları vardı. Tercümanın, gerçekten yavaş bir çip üzerinde Twisted için tüm kodu başlatması ve yüklemesi biraz zaman alabilir ve bazı şeyler özel durum optimizasyonları gerektiriyordu. Ancak, hiçbir noktada Python'un dinamik doğası bir problem değildi. Söz konusu yazılım kesinlikle mükemmel değildi, ancak en azından Twisted kullanırken, basit bir programlama hatası "tüm uygulamayı indirmez". Bir geri izleme günlüğe kaydedilir ve işlem devam eder.

Öyleyse, gömülü bir ortamda yaşıyorsanız, Python'u ilk etapta kullanabilmeniz için yeterince sınırsız, "düzenli" programlar (oyunlar, masaüstü uygulamaları, web uygulamaları) geliştirmekten farklı değil. Orada statik yazmaya ihtiyacınız yok ve buna da ihtiyacınız yok.


9
2017-10-28 02:42



Bu senaryoda Twisted'in ne kadar yeterli olduğunu vurgulayacağım. - jjmontes


Önceki işverenimde gömülü sistemler inşa etmek için biraz zaman harcamak istemiştim. tinypy, "64k kodunda Python'un minimalist bir uygulaması". (Ama ona hiç sahip olmadım ve artık zamanım yok.)


8
2017-10-27 19:45





Eski ve yavaş powerpc ve 16Mb RAM tabanlı mikrodalga telekomünikasyon ekipmanları üzerinde çalışıyorum.

Komut satırı yorumlayıcısını doğrudan hedef kabuktan temin etmek veya hedef flaşa yüklenen python komut dosyalarını çalıştırmak için Python 2.6.1 yorumlayıcısını VxWorks üzerinde çalıştırabildim.

Bu scriptleri hedef üzerinde oto testi yapmak veya teşhis prosedürlerini uygulamak için kullandık. İşte tüm prosedürle ilgili bazı ayrıntılar: NASIL YAPILIR: Port Python - VxWorks


7
2017-11-24 16:15





Telit markaları GSM / GPRS modem modülleri bir dahil gömülü Python yorumlayıcısı.

Onları kendim denemedim, bu yüzden Python yorumlayıcısının modüller, RAM ve ROM bellek limitleri, yürütme hızı vb. Gibi bir PC uygulamasından nasıl farklı olduğunu veya farklı olduğunu bilmiyorum.

Ancak, kullanıcı öngörüsünün bir yorumda işaret ettiği gibi, gerçekten eski bir sürüm olan Python 1.5.x kullanıyorlar ve bu yüzden onları ciddiye almada sorun yaşayacağım. Python geliştiricileri, pek çok modern Python özelliği olmaksızın böyle eski bir sürüme indirmekten hoşlanmayacaklardı. Böyle eski bir sürümle güvenlik sorunları hakkında endişelenirim.


7
2017-09-16 01:31



Bu kod için güzel bir yoldur, ancak bu platformda daha fazla yapmaya çalıştığınızda bazı performans sorunları vardır. İyi kısmı, platformun pahalı olmamasıdır, ki bu çok önemlidir. Soruma bakın: stackoverflow.com/questions/7943919/... - INS
Telit'ten GM862-GPS modüllerini kullandım. Python doğru hatırlamıyorsa, verim 1.5.2'dir. Ancak, hız o kadar da iyi değil. Kesintiler, sinyaller veya iplikler için destek yoktur, böylece programınız bir süper döngüye sahip olmalıdır. Böylece, sadece küçük projeler için iyidir. OP'in belirttiği gibi, Python'un statik tip denetimi olmadığından, bazı yazım hataları veya yanlış türlerden dolayı çökebilir. Yaptığım şey, bloğun dışında büyük bir denemenin içine koymak ve seri bağlantı noktasına veya hatta bir TCP soketine istisnalar çıkarmaktır, böylece ne olduğunu biliyorum. - foresightyj


Gün içinde sahip olduğum tek gerçek sorun   günlük çalışma, son statik olan   düzenli bir derleyici vs vs   sorunlara neden olmak   çalışma zamanı, ör. basit bir kazara kedi   bir dize ve bir baskıda bir int   deyim bütünü getirebilir   uygulama aşağı.

Birim testleri bu şeylere karşı tek güvenliğinizdir.


4
2017-11-10 16:50





Gerçekten de, Python bir tür test yapmaniz gerektiginde genellikle 'destek dili' olarak kullanilir - yani, (Python tabanli) test çerçeve kod tabani (ki?) Olan bir projeye dahil oldum. ana ürün. Python 'ajanları', QNX, VxWorks üzerinde çalışıyor ve sahip olduğumuz birçok sorun, kodumuzun düzgün bir şekilde işlenmesini ve ağla ilgili bölümlerini taşımaktı.

Bir göz atmaya değer olabilir OpenMoko projesi Python'da gömülü bir çok gelişme var.

İzlenecek şeyler: - Python / C uzatma modülü desteği platform / OS'ye bağlı olarak oldukça garip davranabilir - gömülü platformların çoğu oldukça eski Python sürümlerini sunar - nihayet, her bit sayımın 'uygun' gömülü yazılımı ile> 412MHz XScale CPU'lar üzerinde 128MB daha fazla olan 'modern' gömülü yazılımlar arasında bir fark olduğunu öğreneceksiniz ve Python sadece eşleşmiyor Hedeflemek istediğiniz donanım :(


3
2017-10-28 08:57