Archive for the ‘uip’ Tag

rom.h & unresolved symbol

  • CCS 4 yeni bir proje başlatılıp, rom.h kullanıldığında  “unresolved symbol ROM_EthernetConfigSet, first referenced in ./ana.obj”  hata karşılıyor. Sadece header dosyasını eklemek yeterli değil fonksiyonların tanımlarınıda eklemek gerekiyor. Bunu düzeltmek için,

Properties > C/C++ Build > Tool Settings > TMS470 Compiler > Predefined Symbols: > Pre- define NAME kısmına aşağıdaki satır eklenir.

TARGET_IS_TEMPEST_RB1

eklenmesi gerekmektedir.

Kaynaklar
# http://e2e.ti.com/support/microcontrollers/stellaris_arm_cortex-m3_microcontroller/f/471/t/88396.aspx [erişim : 28.3.2012]

Protosocketler

Nedir ?

  • Protosocket kütüphanesi; uip stack için, geleneksel BSD socket arayüzünü sağlamaktadır.
  • Protosocket kütüphanesi, sequential şekilde çalışmaktadır.
  • Sadece TCP bağlantılarında çalışmaktadır.
  • Protosocket kütüphanesi, ardışıl kontrol akışı sağlamak için [[Protothread]] kullanmaktadır.
  • Protosocket kütüphanesi, verileri tekrar göndermeyi düşünmeden gönderme imkanı sağlayan fonksiyonlar sağlamaktadır.
  • Her protosocket, protothread olarak çalıştığı için PSOCK_BEGIN() ile başlamalıdır. ve PSOCK_EXIT() ile bitmektedir.

Gerekli Kütüphaneler

psock.h

Fonksiyonlar

  •  kullanılan struct yapısı örneği
// struct tanımlanıyor
typedef struct hello_world_state {
  struct psock p;
  char inputbuffer[10];
  char name[40];
} uip_tcp_appstate_t;
// struct kullanılmadan önce ayarlanıyor
struct hello_world_state *s = &(uip_conn->appstate);
  •  Protosocketi ilklendirmek
PSOCK_INIT(&s->p, s->inputbuffer, sizeof(s->inputbuffer));
  • protosocket kullanılmadan çağırılmalıdır.
  • İlk parametre; protosockette pointerdır.
  • protosocket için input buffer a pointerdır.
  • input buffer boyutudur.

; Protosocketi başlatmak için

PSOCK_BEGIN(&s->p);
  • Diğer protosocket çağırılarından önce çağrılmalıdır.
  • parametre; başlatılacak olan protosockete pointerdır.

; String göndermek için

char konsol [] = "TI > ";
PSOCK_SEND_STR(&s->p, konsol);
  • ilk parametre; protosockette pointerdır.
  • İkinci parametre gönderilmek istenen stringdir.

; Karşıdan gönderileni almak için

PSOCK_READTO(&s->p, '\n');
  • Belirtilen karaktere kadar okuma yapılıyor.
  • Karşıdan gönderilene struct yardımıyla ulaşılabiliyor.
  • ilk parametre; protosockette pointerdır.
  • İkinci parametre, okumanın durdulacağı karakter.

; Socketi kapatmak için

PSOCK_CLOSE(&s->p);
  • protosocketi kapatır.

! Kaynaklar

[1] uip-1.0-refman
[2] uip hello-world örneği
[3] luminary enet_uip örneği