- Katılım
- 24 Şubat 2018
- Mesajlar
- 24,633
Renesas RA6M2 ve eclipe bazlı e2studio ile proje geliştiriyorum. Daha önce yanlış RJ45 konnektörün takılması nedeniyle Ethernet bağlantısı hiç çalışmıyordu, konnektörü değiştirince düzeldi. Bu sefer DHCP ile IP adres almıyor. Birkaç saat değişik şeyler denedim, yok, çalışmıyor.
Ben de sıfırdan yeni bir proje oluşturdum. FreeRTOS ve bunun TCP/IP stack entegrasyonu ile minimal bir proje hazırladım. Bunda denediğim zaman sorunsuz DHCP ile IP adres alıyor.
Ben de iteratif sürece başladım, çalışmayan projedeki unsurları adım adım çalışana ekliyorum. Amaç, neyi ekleyince çalışmayacağını görmek ve problemi bulmak. RTOS ayarlarını aktardım, basit olan hala çalışıyor. Clock ayarlarını aktardım, hala çalışıyor. Çevre birimlerini ekledim, hala çalışıyor. Kesmeleri ekledim, hala çalışıyor. GPIO pin tanımlarını aktardım, hala çalışıyor. Akşama kadar adım adım belki 30 tane unsur ekledim, hala çalışıyor.
İki proje arasındaki farkları bir diff programı incelemeye başladım. Beyond Compare kullanıyorum, şiddetle tavsiye ediyorum programlama ile uğraşan herkese. Aradaki farklar zaten beklenen şeyler, eclipse IDE, dosyalarda neredeyse her satıra bir "timestamp" koyuyor, ne faydası var bilmiyorum ama iki proje arasındaki yapılandırma dosyalarındaki farkların neredeyse tamamı bu timestamp.
Tabi çalışmayan projedeki tüm kaynak kodu çalışana aktarmadım. Ama ana döngüde yapılan iş, her iki program için de tam olarak aynı. Birisi (sıfırdan yapılan) IP alıyor diğeri IP almıyor. Derleyici ayarlarına baktım, çalışmayanda optimizasyon ve bazı warning'ler kapalı. Bir fark yaratacak şey değil, ama hadi deneyeyim dedim. Eşitledim, hala birisi IP alıyor diğeri almıyor.
configuration.xml dosyası var, bütün proje ayarlarını içeriyor. XML bazlı bir program ile aradaki farklara baktım, timestamp'ler dışında dosyalar aynı. Tabi XML bileşenlerin yerleri farklı, projenin adı farklı, birisinde olan bütün kaynak kodlar diğerinde yok, ama efektif olarak aynı. Kafayı yiyeceğim, iki proje efektif olarak aynı. Diğerinde ilave bir sürü kaynak kod var ama, onlar sadece derleniyor, herhangi bir şekilde fonksiyon falan çağrılmıyor. ana program tam olarak aynı işi yapıyor. Birisi IP alıyor diğeri almıyor.
XML diff belki bir sorun çıkarıyordur diye beyond compare ile iki xml dosyasını açtım. XML bileşenlerin sıralamasını da eşitledim. İki XML arasındaki fark, timestamp'ler, proje adı, ve çalışmayan projedeki ilave kaynak kodlar.
Tekrar test ettim ve artık basit projenin çalışmamasını umuyorum, çünkü bu ikisi aynı artık! Test edince tam şok yaşadım. Basit çalışmayacağına, daha önce IP almayan program çalışmaya başladı! Ulan ne oldu, o projede birşey değiştirmiyordum yav. Onun çalışmamaya devam etmesi lazımdı! Akşama kadar uğraştırdı beni, ve IP almama sorununu kendi kendine düzeltti.
İşte bu eclipse IDE den bu yüzden aşırı derecede nefret ediyorum. Onlarca yapılandırma dosyası oluşturuyor. Bir opsiyon değiştiriyorum, beş altı tane dosya değişiyor, birkaç tanesine değişen opsiyonu yazıyor, diğer birkaç tanesinin timestamp'ini değiştiriyor. Bazan da kafasına göre farklı farklı yeni yapılandırma dosyaları oluşturuyor. Bir ayar, birden fazla yapılandırma dosyasında yansıtılıyor. Velhasıl ne olduğunu anlamayadım. Herhalde düzgün çalışan proje ile uğraşırken IDE'nin kendisinde sakat olan bir ayar mı düzeldi ve bu düzelme diğerine de mi yaradı bilmiyorum.
Doğrudan makefile ile çalışmak isterdim ama ona da vaktim yok. İşlemci çok karmaşık, çevre birimi yapılandırmasını mecbur IDE nin ekranlarından yapmam gerekiyor. Ama bu işlemci ile çalışmaya devam edersek, mutlaka bir IDE'den kurtulmam lazım. Tam bir baş belası.
Ben de sıfırdan yeni bir proje oluşturdum. FreeRTOS ve bunun TCP/IP stack entegrasyonu ile minimal bir proje hazırladım. Bunda denediğim zaman sorunsuz DHCP ile IP adres alıyor.
Ben de iteratif sürece başladım, çalışmayan projedeki unsurları adım adım çalışana ekliyorum. Amaç, neyi ekleyince çalışmayacağını görmek ve problemi bulmak. RTOS ayarlarını aktardım, basit olan hala çalışıyor. Clock ayarlarını aktardım, hala çalışıyor. Çevre birimlerini ekledim, hala çalışıyor. Kesmeleri ekledim, hala çalışıyor. GPIO pin tanımlarını aktardım, hala çalışıyor. Akşama kadar adım adım belki 30 tane unsur ekledim, hala çalışıyor.
İki proje arasındaki farkları bir diff programı incelemeye başladım. Beyond Compare kullanıyorum, şiddetle tavsiye ediyorum programlama ile uğraşan herkese. Aradaki farklar zaten beklenen şeyler, eclipse IDE, dosyalarda neredeyse her satıra bir "timestamp" koyuyor, ne faydası var bilmiyorum ama iki proje arasındaki yapılandırma dosyalarındaki farkların neredeyse tamamı bu timestamp.
Tabi çalışmayan projedeki tüm kaynak kodu çalışana aktarmadım. Ama ana döngüde yapılan iş, her iki program için de tam olarak aynı. Birisi (sıfırdan yapılan) IP alıyor diğeri IP almıyor. Derleyici ayarlarına baktım, çalışmayanda optimizasyon ve bazı warning'ler kapalı. Bir fark yaratacak şey değil, ama hadi deneyeyim dedim. Eşitledim, hala birisi IP alıyor diğeri almıyor.
configuration.xml dosyası var, bütün proje ayarlarını içeriyor. XML bazlı bir program ile aradaki farklara baktım, timestamp'ler dışında dosyalar aynı. Tabi XML bileşenlerin yerleri farklı, projenin adı farklı, birisinde olan bütün kaynak kodlar diğerinde yok, ama efektif olarak aynı. Kafayı yiyeceğim, iki proje efektif olarak aynı. Diğerinde ilave bir sürü kaynak kod var ama, onlar sadece derleniyor, herhangi bir şekilde fonksiyon falan çağrılmıyor. ana program tam olarak aynı işi yapıyor. Birisi IP alıyor diğeri almıyor.
XML diff belki bir sorun çıkarıyordur diye beyond compare ile iki xml dosyasını açtım. XML bileşenlerin sıralamasını da eşitledim. İki XML arasındaki fark, timestamp'ler, proje adı, ve çalışmayan projedeki ilave kaynak kodlar.
Tekrar test ettim ve artık basit projenin çalışmamasını umuyorum, çünkü bu ikisi aynı artık! Test edince tam şok yaşadım. Basit çalışmayacağına, daha önce IP almayan program çalışmaya başladı! Ulan ne oldu, o projede birşey değiştirmiyordum yav. Onun çalışmamaya devam etmesi lazımdı! Akşama kadar uğraştırdı beni, ve IP almama sorununu kendi kendine düzeltti.
İşte bu eclipse IDE den bu yüzden aşırı derecede nefret ediyorum. Onlarca yapılandırma dosyası oluşturuyor. Bir opsiyon değiştiriyorum, beş altı tane dosya değişiyor, birkaç tanesine değişen opsiyonu yazıyor, diğer birkaç tanesinin timestamp'ini değiştiriyor. Bazan da kafasına göre farklı farklı yeni yapılandırma dosyaları oluşturuyor. Bir ayar, birden fazla yapılandırma dosyasında yansıtılıyor. Velhasıl ne olduğunu anlamayadım. Herhalde düzgün çalışan proje ile uğraşırken IDE'nin kendisinde sakat olan bir ayar mı düzeldi ve bu düzelme diğerine de mi yaradı bilmiyorum.
Doğrudan makefile ile çalışmak isterdim ama ona da vaktim yok. İşlemci çok karmaşık, çevre birimi yapılandırmasını mecbur IDE nin ekranlarından yapmam gerekiyor. Ama bu işlemci ile çalışmaya devam edersek, mutlaka bir IDE'den kurtulmam lazım. Tam bir baş belası.