Arkaplan :
Junior Ar-Ge elektronik mühendisi ( şirketteki tek EE ) - donanım ve kodlama sorun değil. En büyük sorunum, projeye ve nereden başlayacağınıza dair genel bir bakış sağlamak.
Şimdiye kadar sadece küçük yazılım projeleri yaptım (alt 500 kod satırı), ancak fonksiyonelliğe genel bir bakış açısı kaybetmeden ya da işlevsellik eksikliği yaşamadan kendimi daha büyük projeler yapmayı hayal edemiyorum.
Büyük gömülü yazılım sistemlerini yapılandırmak için en iyi yapıları / hangi araçları kullanıyorsunuz?
Şu anda ne yapıyorum :
Genellikle projenin işlevselliğini çizerek başlarım. Bir - çok katmanlı akış şemaları veya ilgili şemalar (blok şemaları, vb.) Olabilir ve bileşenler / çipler üzerinde bazı araştırmalar yapılabilir. Sonra veri sayfalarına / Internet'e başvururken, bir kerede bir işlevsellik kodlayarak ve sahte verilerle veya benzer bir testle test ederken doğrudan kodlamaya atlarım (hızlı başarısız olur sanırım). Bir MEM yongasına veri yazıyor olabilir ve eğer çalışırsa ana yonga ile MEM yongası arasında bir SPI sürücüsü olabilir.
Aradığım cevap nedir :
Hiçbir şey gerçekten. Mantıklı bulduğum şeyi çözeceğim. Bir kitap, makale, kişisel deneyim, tavsiyeler vb. Olabilir.
Yaşlıların bununla nasıl başa çıkacağını bilmekle çok ilgileniyorum.
Düzenle
Öncelikle, yılların tecrübesini paylaştığın için teşekkür ederim! Tüm cevaplar çok takdir edilmektedir. Bundan benim almam;
- Net ve kesin bir özellik belgesi oluşturun.
- Bir yazılım tasarım dokümanı oluşturun. (Şimdi ekleyeceğim bir şey) Tasarım belgesi şablonları tasarlama
- Modüllerde ne kadar gereksiz göründüğünü düşünün. (Daha fazla odaklanmam gereken bir şey)
- Başlık / kaynak dosyalarının yapılandırılması için bir kodlama standardı izleyin. (Bunu hiç yapmadım) Barr Group C standardı
- Önce düşük seviyeli uygulamaları yaratmaya odaklanın. (İletişim vb.)
- Mümkün olan / mantıklı olan tasarım desenlerini uygulayın. Tasarım desenleri
- Revizyon kontrolü için bir şeyler ayarlayın (Github vs. - asla bu kadar kullanılmadı)
- Sürekli entegrasyon / sürekli dağıtım araştırması (üzerine bastığım yeni bir şey) CI ve CD'nin temelleri