PIC mikrodenetleyiciler için gerçek zamanlı işletim sistemi
A real time operating system for PIC microcontrollers
Yazar: HÜSEYİN ÇOTUK
Danışman: DOÇ. DR. YUSUF MURAT ERTEN ; DR. CENGİZ ERBAŞ
TOBB Ekonomi ve Teknoloji Üniversitesi / Fen Bilimleri Enstitüsü / Bilgisayar Mühendisliği Ana Bilim Dalı
Derece: Yüksek Lisans, 2008
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control

Özet:
Günümüzde otomobillerde, görüntü sistemlerinde, cep telefonlarında, iletişim cihazlarında, biyomedikal uygulamalarda, endüstriyel otomasyon sistemlerinde gömülü sistemlerin uygulama alanları giderek yaygınlaşmaktadır. Gömülü sistemler üzerinde çalışmak üzere hazırlanan yazılımlar, donanım kısıtlarına rağmen genelde gerçek-zamanlı çalışırlar. Geleneksel yazılım sistemleri; gömülü sistemlerin gerek kısıtlı sistem kaynakları, gerek çok değişken uygulama gereksinimleri gerekse gerçek zaman kısıtları nedeniyle gömülü sistem ihtiyaçlarına cevap verememektedir. Genel amaçlı işletim sistemlerinin de gömülü sistemlerde kullanım kısıtları, gömülü sistemler için özel tasarlanmış gerçek zamanlı işletim sistemi geliştirilmesi ihtiyacını doğurmuştur. 1980'den sonra birçok devre elemanının aynı yonga içerisinde yer almaya başlaması ile mikrodenetleyici kavramı oluşmaya başlamıştır. Mikrodenetleyiciler sayesinde gömülü sistemlerin hem maliyetleri düşmüş hem de boyutlarında ciddi bir küçülme yaşanmıştır. Bu çalışmada; kolay bulunabilir ve ekonomik olmaları, geliştirme ortamının internet üzerinden veya üreticiden istendiğinde ücretsiz olarak elde edilebilmesi, çok geniş bir kullanıcı kitlesine sahip olmaları, oldukça basit sıfırlama, saat sinyali ve güç devreleri gerektirmeleri PIC mikrodenetleyicilerin seçilmesini sağlamıştır. Proje Microchip MPLAB tümleşik geliştirme ortamında, ANSI C uyumlu MPLAB C18 derleyicisiyle geliştirilmiştir. Gömülü sistemlerde kullanılmak amacıyla tasarlanan PICOS, 8-bit PIC ailesinin en gelişmiş serisi olan PIC18Fxxx serisi ile 16-bitlik PIC24xxx ve 32-bitlik PIC32xxx serileri için geliştirilmiş gerçek zamanlı bir işletim sistemidir. PICOS, geliştirilmesi esnasında istenirse çağrı üstünlüğü prensibi istenirse işbirlikçi prensip ile çalışabilecek şekilde tasarlanmıştır. Oldukça küçük, basit ve kullanımı son derece kolaydır. Tüm fonksiyonlar ve değişkenler Türkçe olarak tanımlanmıştır. Çok düşük RAM, ROM bellek kullanımı ve işlemci yükü getirmektedir. Oldukça basit bir çekirdek yapısına sahiptir.

Abstract:
Embedded systems are widely used for many applications like mobile phones, mp3 players, image processing, communication systems, biomedical applications and industrial control systems. As they are designed for specific tasks, embedded systems' sizes are quite small. Because of their small sizes, microcontrollers are very suitable for embedded systems. Despite having hardware constraints, embedded systems have software that commonly operate in real-time. Embedded systems have different requirements compared to traditional software systems, such as, limited resources, variable application reqiurements and real time constraints, traditional software systems do not fit their requirements. In addition, classical operating systems do not ensure usage criteria as well. Therefore, in order to achieve these goals, designing a real time operating system for embedded systems is the purpose of this project. Due to their popularity, economic prices, easiness to get and use, strong support by the vendor, basic reset and clock circuits, PIC microcontrollers are chosen as the hardware platform of this project. With MPLAB integrated development environment, ANSI C compatible MPLAB C18 compiler is used for developing the project. PIC Operating System (PICOS) is intended to be used for embedded systems and compatible with PIC 18FXXX, PIC24XXX and PIC32XXX families. Typical PIC applications in industry are based on cooperative scheduling. PICOS supports preemptive scheduling as well as cooperative scheduling. It is quite small, basic and easy to use. It has very little RAM, ROM and CPU usage. Kernel structure is also very basic as well.