OSA RTOS’un kullanımında derleyiciye göre değişen çeşitli kısıtlamalar bulunmaktadır.

  • HT-PICC HT-PIC18

- Kesme fonksiyonunun başında OS_EnterInt (FSR’yi kaydeder) ve çıkarken de OS_LeaveInt (FSR’yi geri yükler) servisini kullanınız. OS_EnterInt mutlaka kesme fonksiyonunun başında ve OS_LeaveInt ise sonunda olmalıdır.

void interrupt int_routine (void)
{
    char var1, var2;
    int var3;

    // Yerel değişkenler tanımlandıktan sonra FSR'yi kaydetmeliyiz:
    OS_EnterInt();
    /*...*/
    /* Interrupt bayraklarına bakılıyor */
    /*...*/

    // Kesme fonksiyonunun sonunda FSR'leri geri yüklemeliyiz:
    OS_LeaveInt();
}

- Bu servisler FSR değerini (htpicc18 için FSR0) HT-PICC bunu yapmadığında kaydeder ve geri yükler.

  • Microchip C18

- Prosedürel soyutlama (procedural abstraction) optimizasyonunu kullanamazsınız.
- Multi-bank stack modelini kullanamazsınız.

  • Microchip C30

- Prosedürel soyutlama (procedural abstraction) optimizasyonunu kullanamazsınız (derleyici komutu “-mpa”).

  • PIC10-12 Entegreler

- PIC10F ve PIC12F serisi mikrodenetleyiciler kullanırken mesaj işaretçilerin (pointer) boyutları, basit mesajlar ve sayıcı semaforlarda 1 byte’a eşit olmalıdır.

  • mikroC PRO for PIC16

- PIC18 serileri için Version 2.50 PRO ya da daha yükseği gereklidir.
- PIC12 ve PIC16 serileri için Version 3.00 PRO ya da daha yükseği gereklidir.
-Dinamik sayıcılar (timers), mesjalar ve mesaj kuyrukları RAM bölgesinde bank2 ve bank3′e atanamaz. Problemin nedeni microC PRO’nun bu bölgeleri kendisine ayırmasındandır. Bu durumda listelenen değişkenlerin tanımlama yerlerini değiştirebilirsiniz. (Bu kısıtlama yakında çözülecektir)

  • CCS PICC

- Versiyon 4.104′dan beri derleyicide bir hata bulunmaktadır. Bu hatadan dolayı derleyici OSA’yı kullanarak programı derlememektedir. Bunun için lütfen diğer versiyonları kullanınız. (OSA bu versiyonlarla test edildi: 4.023, 4.069, 4.084, 4.099, 4.102, 4.105)

  • IAR (AVR and STM8)

- Sadece C-mode’da çalışır, C++ ile çalışmaz.
- Cross-call optimizasyonu kapalı olmalıdır.

  • WinAVR

- OSA ve proje klasörleri aynı mantıksal sürücü üzerinde (örneğin “C:\…”) olmalıdır.

  • STM8

- ROM’u 64k ve altı olan mikrodenetleyiciler desteklenmektedir.