Denetimsiz gömülü sistem geliştirmeyi öğrenme [kapalı]


10

Bu yıl mezun oldum ve C programlama, Linux yönetimi ve gömülü sistem geliştirme ile ilgili ilk işimi aldım. İşimden oldukça memnunum ama korkuyorum ki bu alanda başarılı bir programcı olmayacağım. Artık işimde yalnız bir geliştiriciyim, takım arkadaşlarım donanım uzmanları, bana rehberlik edecek veya gömülü programlama yollarında öğretecek kimse yok, hepsini kendi başıma çalışmak zorundayım.

Sorularım işte burada. Üst düzey programcılar tarafından gözetim olmadan giriş seviyesi konumundan başlayarak iyi bir gömülü sistem geliştiricisi olmak mümkün müdür? Nasıl olabilirim (belki forumların, IRC kanallarının, iyi ders kitaplarının yardımıyla)? Ne kadar sürer?

GÜNCELLEME: Şimdiye kadar, birkaç yararlı cevap aldım, ancak konuyla ilgili bazı özel işaretlere ihtiyacım olduğunu fark ettim.

İşte benim özel sorularım:

  1. Gömülü gelişimi öğrenmek için kullanabileceğiniz bazı iyi ders kitapları nelerdir?
  2. Hangi özel çevrimiçi topluluklar, hedefleyen yerleşik bir geliştirici için yararlı olabilir (Stack Overflow, Reddit ve benzeri genel öğeleri saymaz)?
  3. Gömülü gelişime adanmış en ilginç bloglar hangileri?

Yanıtlar:


3

Sizin durumunuzda olmak işleri biraz zorlaştıracaksınız. Ancak sorununuzu çözmek için birçok çözüm vardır.

  1. Öncelikle bunun gibi topluluklara katılmaya çalışın , ancak alanınızda daha uzmanlaşın. Katıldığınızda bilginizi artıracak ve daha da önemlisi diğer insanlarla tanışacaksınız.

  2. Kod kamplarına veya sizin gibi diğer geliştiricilerle gerçekte tanıştığınız herhangi bir girişime katılmaya çalışın . Önünüzdeki kişi olduğunda bilginizi paylaşmak daha kolaydır.

  3. Patronunuzdan yılda en az 10 gün eğitim almasını isteyin . Buradaki avantajları açıklamaya gerek yok, reddederse aptalca.

  4. İşletmenizle ilgili 1-2 konferansa veya ticaret fuarına gitmeye çalışın .

  5. İki ayda bir teknik kitap okumaya çalışın . Daha fazlasını okuyabilirseniz tereddüt etmeyin.

  6. Bir akıl hocası alın . Tabii ki başarılması en kolay şey değil.

  7. Kitaplarınızda, topluluğunuzda, fuarlarınızda, eğitimlerinizde vb. Okuduğunuz şeylerin yeni teknolojilerini deneyerek araştırma ve geliştirme yapmak için haftada biraz zaman ayırın ... Öğrendiklerinizi uygulamak için zaman ayırmak ÇOK önemlidir.

  8. Bugün tek geliştiricisiniz, ancak sıkı çalışmanız sayesinde bulunduğunuz şirket büyüyecek ve muhtemelen türünüzden daha fazla kişi kiralamanız gerekecektir .


3

Şu an işimde yalnız bir geliştiriciyim, takım arkadaşlarım donanım uzmanları

Bunları kaynak olarak kullanmaktan çekinmeyin. Enerji Verimliliği olmayan gömülü programcılar için en zor şeylerden biri donanım ile rahatlamaktır. Bir şemayı okuyabilmek (bir tane tasarlayamasanız bile) ve mikrodenetleyiciden çıkan sinyallere bakmak için bir kapsamın nasıl kullanılacağını anlamak çok yararlıdır.


0

Bu soruyu sorduğunuzdan bu yana bir süre geçti, umarım iyi yoldasınız demektir. İşte size yardımcı olacağını umduğumuz birkaç ek öneri.

Yığın Değişimi ve Bloglar

Şaşırtıcı bir şekilde, Stack Exchange'in Gömülü sistemler için kendi Soru-Cevap sitesi yok. Biri yaklaşık iki yıl önce önerildi, ancak hala taahhüt aşamasında, onu desteklemek için kaydolmak için yeterli insan olmadan duruyordu. Bir fark yaratmak istiyorsanız, buraya gidin:

http://area51.stackexchange.com/proposals/15961/embedded-system-design-and-development

Teklifi okuyun ve kabul ediyorsanız katılmak için taahhüdü tıklayın.

Linked In ayrıca bir Gömülü Sistemler grubunun yanı sıra ilgi çekici olabilecek birkaç yakından ilişkili gruba sahiptir:

Gömülü sistemler

Yazılım

KOL

Web Kaynakları

EETimes, gömülü sistemler hakkında özelliklere sahiptir.

http://www.eetimes.com/design/embedded

Dr. Dobbs, her tür programcı için uzun zamandır arkadaştır ve gömülü üzerinde harika şeyler vardır.

http://www.drdobbs.com/embedded-systems

Arduino topluluğu büyük, hevesli ve fiyat ve önceki eğitim dahil olmak üzere gömülü programlamaya girişteki birçok engeli kaldırdı.

http://www.arduino.cc/

Gömülü sistemleri temel olarak bir "Good-Old-Boys" kulübü olan bir kadın yazılım geliştiricisi veya aydınlanmamış bir erkek geliştiriciyseniz, bu siteye göz atın. Yazar bir MIT mezunu, sinirli, kutudan çıkmıştı (ya da bazen Altoids-box iPhone şarj cihazı gibi kutuda) ve tasarımı, yazımı ve video bloglamasında çok verimli görünüyor.

http://www.youtube.com/watch?v=QkmtHqsYCbw&feature=player_embedded# !

http://www.adafruit.com/tutorials

Birçok tedarikçinin kapsamlı veri sayfaları, uygulama notları, teknik incelemeler ve geliştirme araçlarının ücretsiz veya değerlendirme kopyaları vardır. Bu alandaki en iyi şirketler arasında ARM, Atmel, Freescale, intel, Microchip Technologies, NXP (eski adıyla Phillips), TI ve diğerleri sayılabilir.

Kitabın

Bulabildiğinizden emin değilim, ancak bence bir kitap var, gömülü sistemler için mikroişlemcilerde (kesmeler, G / Ç, basit) araçlar (montajcılar, bağlayıcılar, yükleyiciler) ve temel şeyler açısından çok şey anlatıyor görev yöneticileri ve zamanlayıcılar, basit dosya yapıları). Küçük Bilgisayarlar İçin Sistem Programlama, Daniel Marcellus.

Daha modern bir referans Gömülü Linux Primer'dir. İlk bölümler, gömülü sistemlerde ve ilgili bazı mekaniklerde Linux çalıştırmanın arkasındaki mantığı tartışıyor. Bölüm 3, mevcut tasarımlarda kullanım için düşünülebilecek işlemciler + destek yonga setleri ve SOC (Çip Üzerinde Sistem) seçenekleriyle ilgili güzel bir tartışmaya sahiptir. Aslında hedef hareket ediyor, bu yüzden kitabın yayınlanmasıyla çağdaş bir başlangıç ​​noktası veriyor. Bölüm 3 harika, ancak web üzerinde daha fazla araştırma ve satıcılarla tartışma ile desteklenmelidir. Tipik olarak, projedeki elektrik mühendisi ve lider yazılım mühendisleri işlemciyi seçecektir, bu yüzden bir şirkette iseniz ve gömülü sistemleri öğreniyorsanız, seçtikleri donanım üzerinde derin dalış yapın.

Daha sonraki bölümlerde Linux'u donanıma hedeflemenin birçok pratik yönü hakkında kapsamlı açıklamalar yer almaktadır, ancak satıcıyla ortaklık ve oldukça standart bir referans tasarımın kullanılması çabayı önemli ölçüde azaltabilir.


0

Çoğunlukla kendinize bağlıdır. Konu hakkında yeterli bilgiyi nasıl toplayacağınızı öğrenmek ve öğrenmek istiyorsanız, kendinize her şeyi öğretebilirsiniz. Ancak tüm insanlar bunu yaparken eşit derecede başarılı değildir:

Benzer bir ortamda başladım ve şimdi 5 yıl öncesine göre nerede olduğumu görürsem (elektronik mühendisi olarak mezun oldum, neredeyse hiçbir programlama geçmişi yok), insan beyninin neler yapabildiğini şaşırtıcı buluyorum. Başladığımda, tasarım desenlerini, TDD'yi, daha önce hiç duymamıştım ve gerçek bir programın kodunu hiç görmemiştim. Şimdi bunları çok iyi biliyorum ve nasıl kullanacağımı biliyorum. Yaptığım tek şey, internette arama yapmak, başkalarından kod okumak ve bazı kitapları (yine internette buldum) ve en önemlisi tonlarca kod yazmak, hata ayıklamak, hatalarımdan öğrenmek. Bir hatadan öğrenmek, sadece bir örneği okumak ve davranışı çoğaltmak yerine bir şeyi öğrenmenin çok daha iyi bir yoludur. Çok garip, ama gerçek hayatta sadece birkaç kez iyi bir programcı dediğim şeyle konuştum.

Buradaki tek programcı, kıdemli olarak adlandırdığınız şeydir (çünkü 15 yıldan fazladır iş başındadır). Benden tamamen farklı bir şekilde çalışıyor. Ve hala sınıflarla sakatlanmış bir C formu yazıyor, asla STL kullanmıyor, bir tasarım deseninin ne olduğu hakkında hiçbir fikri yok vb. benim yöntemlerden en azından bazılarını benimsemesini sağlayın ..)


-1 Muhtemelen iyi bir anlam için, ama ipucu olmadan "Yeterince zeki iseniz ..." açılıyor. Lütfen, kimsenin zekasını asla sorgulamayalım, özellikle belirgin kanıt yoksa. Hedefinizin düşmanca olduğunu düşünmüyorum, ama Olga'ya göre bu böyle görünebilirdi. Bu soruyu gönderdi ve sonra Stack Exchange'de başka bir şey yapmadı.
GeliştiriciDon

Amacım gerçekten düşmanca olmak değildi ama haklısın, şimdi cümleyi okuduğumda, üstün olan bir kulede oturuyormuşum gibi geliyor. Utanç verici bir şey, bu yüzden kaldırdım.
stijn
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.