Cách tích hợp một node mới vào contiki

Contiki được thiết kế để dễ thay đổi. Cấu trúc code của Contiki không khác nhiều so với các code cơ bản. Để tích hợp một node mới vào contiki cần quan tâm tới hai thư mục đặc biệt quan trọng để tích hợp, sao chép và sửa chữa platform hay native code là cpu và platform trong contiki.
-

Trong đó Platform chứa các file nền tảng của một platform và hệ điều hành Contiki chạy trên đó.

- Thư mục CPU chứa các file cơ bản của CPU được sử dụng trong node. + Một platform đơn giản nhất có thể sử dụng bao gồm các file: o Makefile.native: kết nối vào hệ thống Contiki. Phải được đặt tên là Makefile.(platform name) o clock.c: tạo xung clock cho node hoạt động o contiki-conf.h: tùy chọn cấu hình
o

contiki-main.c: code khởi động và vòng lặp chính (boot-up code and the main loop)

o dev/: driver + Ngoài ra trong một platform còn có hai thư mục nữa là apps và net: o Apps: Các application cụ thể của platform. o Net: các kết nối cụ thể của platform - Thư mục CPU chứa các file cụ thể của CPU được sử dụng trong platform đó.
1. Các

module cần tích hợp cho một node mới:

● The clock module

h.Sửa đổi code . Ngoài ra nó còn có thể nằm trong platform hoặc trong cpu.● contiki-conf. ngắt cho node.Tìm hiểu cách làm việc ngắt thời gian của các ứng dụng CPU b) Network device drivers: - Chức năng là gửi và nhận các gói tin (packet) Một driver được tạo thành bởi ba file: o Hardware-specific code o Interface between uIP and hw specific code . o o . clock_time(): Thực hiện đếm mỗi khi xảy ra ngắt.Copy file clock. được gọi sau khi chạy code khởi động. . clock_delay(): tạo trễ một khoảng thời gian. chỉ được sử dụng cho các driver.c . Các bước tiến hành a) Tích hợp module clock: .c tại thư mục cpu/msp430/dev/clock. thiết lập giờ.Module clock nằm trong core/sys/clock.Bao gồm ba phần: o clock_init(): Khởi tạo module clock.h ● Network drivers ● Sensors ● Integrating into the Contiki build system ● ELF loader ● Multi-threading 2.

PIR phát hiện chuyển động… - Code chuẩn để truyền sự kiện nằm tại thư mục core/lib/sensors.h e) Integrating into the Contiki build system - Đối với platform-specific makefile + vào thư mục: platform/name/Makefile.Khi sensors thay đổi.o Interface between Rime and hw specific code c) Sensors: .Cách tạo: copy từ platform/native/contiki-conf.name + include là mức cao nhất của makefile nên makefile.h: .include + không phải chạy ‘make’ trong platform này + Makefile chỉ sử dụng đối với các file nguồn hoặc các thư mục . một sự kiện được truyền đến tất cả các quy trình như: nút bấm.c .Các sensor tương lai sẽ là các sensor số thay thế cho các sensor tương tự d) contiki-conf.include phải chú ý + không được gọi trưc tiếp makefile.Nằm trong thư mục platform/(tên platform) - Chứa các tùy chọn cấu hình: o Cấu hình cho C compiler o C types o Cầu hình cho uIP o Clock configuration: clock_time_t. CLOCK_CONF_SECOND .

elfloader-avr. x86.Look at core/loader/elfloader-msp430. ARM7 Copy file core/loader/elfloader-stub.phải được ported tới các cpu mới .c Với mtarch.chia làm 2 phần (contiki-style) mt.nhưng không sử dụng thường xuyên và porting thì không bắt buộc . AVR. CC + tạo đường dẫn tới nơi tạo ra các file .Need knowledge of the ELF format for the CPU h)Thư viện đa truy nhập .c .c f) Integrating into build system - Copy các file trên vào thư mục platform/native và sửa Copy các file trên vào thư mục cpu/x86 và chỉnh sửa g) Bộ nạp ELF - Chỉ cần porting cho các cpu mới .+ Makefile thường dùng với CPU cụ thể - cpu/name/makefile.name + định ngĩa file nguồn cho CPU-specific + định ngĩa quy tắc cho trình biên dịch C compiler CFLAGS.name Đối với CPU-specific makefile + vào thư mục cpu/name/Makefile.c thì: + C biên dịch rất cụ thể .Thiết kế có tính linh động - Ported to cpu : MSP430.c. elfloader-x86.c và chỉnh sửa .c.c và mtarch.

Atmel Atmega128L 7. LEDs 3. Bluetooth .3728 MHz .2.+ đối với các trình biên dịch khác nhau sẽ hoạt động khác nhau + các phiên bản trình dịch khác nhau cũng hoạt động khác nhau II. CC1000 5. Serial Interface 4. BTnode: Bao gồm: - 1. Ví dụ: Thêm BTnode vào Contiki: 1.

LED.btnode . Các bước Porting Contiki: Copy contiki/platform/native và modify contiki-main.2.c và contiki-conf.h clock.c driver for serial interface. CC1000 radio Makefile.