Есть ли какие-либо Операционные системы реального времени С открытым исходным кодом для x86? [закрытый]

Добавьте уникальную переменную Bool, чтобы вы могли понять, куда обращаться к этому контроллеру. Сделайте flag false в viewWillAppear, потому что каждый раз, когда он должен обновляться, это самый простой способ, которым вы можете достичь.

class ViewController1: UIViewController {
      var isFromVC2 = false
      var isFromVC3 = false

     override func viewWillAppear(_ animated: Bool) {
         super.viewWillAppear(true)
         isFromVC2 = false
         isFromVC3 = false
     }

}


class ViewController2: UIViewController {


 //You can call this function from where you want otherwise you can make it global.
    func navigateToVC1() {
        let viewController1 = self.storyboard?.instantiateViewController(withIdentifier: "ViewController1") as! ViewController1
        viewController1.isFromVC2 = true
        self.navigationController?.pushViewController(viewController1, animated: true)
    }


}

class ViewController3: UIViewController {

    func navigateToVC1() {
        let viewController1 = self.storyboard?.instantiateViewController(withIdentifier: "ViewController1") as! ViewController1
        viewController1.isFromVC3 = true
        self.navigationController?.pushViewController(viewController1, animated: true)
    }

}
14
задан Colin D Bennett 14 December 2012 в 18:14
поделиться

11 ответов

FreeRTOS, это обеспечивает базовое ядро. Я использовал его в некоторых встроенных приложениях, и это кажется устойчивым. Но, это действительно зависит от Вашего приложения.

http://www.freertos.org/

6
ответ дан 1 December 2019 в 12:53
поделиться

Проверьте eCos свободную, и операционную систему реального времени с открытым исходным кодом. (Поддержки x86, не уверенный в многоядерном)

RTLinux также доступен

5
ответ дан 1 December 2019 в 12:53
поделиться

eCos свободен (но можно получить заплаченную поддержку). Это поддерживает архитектуру Intel x86. Это поддерживает многопроцессорные системы. В зависимости от Ваших требований синхронизации у меня был не слишком хороший опыт с системами Linux в реальном времени. Хотя время отклика может быть хорошим в среднем, я видел случаи, где худший случай за несколько дней может быть 10 или даже в 100 раз больше. Я предполагаю, что это частично зависит от качества драйверов, частично на самом планировщике.

Но я предполагаю, что это сводится к тому, требует ли Ваша система жесткое реальное время или мягкое реальное время, каковы ограничения синхронизации, какое приложение необходимо запустить. И как оптимизированная система разработки Вы требуете.

3
ответ дан 1 December 2019 в 12:53
поделиться

Существуют расширения жесткого реального времени ядра Linux. Вы могли бы хотеть проверить некоторых из тех.

Хорошими примерами является RTAI и LXRT

RTAI

2
ответ дан 1 December 2019 в 12:53
поделиться

Хорошо это не Открытый исходный код, но Вы знали, что Windows CE является операционной системой жесткого реального времени и что это действительно имеет x86 порт? Я не знаю однако, если это может поддерживать многоядерные центральные процессоры. Если это - коммерческий проект, определенно необходимо рассмотреть это.

Существует также MicroC/OS-II, который имеет x86 порт, но как выше, я не знаю, поддерживает ли он много ядра. Это свободно для некоммерческих приложений.

0
ответ дан 1 December 2019 в 12:53
поделиться

Существует S.Ha. R.K. Проект. Это работает с x86 центральными процессорами, но я не знаю, обрабатывает ли это все ядра ЦП.

0
ответ дан 1 December 2019 в 12:53
поделиться

Каковы Ваши строгие требования? Возможно, можно использовать ванильный Linux - он не обеспечивает гарантии в реальном времени, но мог бы быть достаточно хорош. Некоторые люди находят, что это не настолько плохо, как поставщики в реальном времени пытаются разобрать.

Ванильный Linux ДЕЙСТВИТЕЛЬНО имеет различные политики планирования также, но не много людей знают это.

1
ответ дан 1 December 2019 в 12:53
поделиться

Shortened altered president, University'ректор находится под Лицензией BSD.

0
ответ дан 1 December 2019 в 12:53
поделиться

Есть расширения для Linux в реальном времени, как уже упоминалось кем-то другим. Взгляните на xenomai.org

Я не уверен насчет мультипроцессора. Что именно вы хотите делать на нескольких процессорах?

0
ответ дан 1 December 2019 в 12:53
поделиться

OpenSolaris имеет возможности работы в реальном времени, однако вам следует быть осторожными, если вы решите использовать его для разработки в реальном времени: практически все операции ввода-вывода могут вызывать инверсию приоритета в ядре (низко- Системные рабочие потоки с приоритетом могут «голодать» и вызывать блокировку потоков с высоким приоритетом, например, в коде STREAMS).

2
ответ дан 1 December 2019 в 12:53
поделиться

Я также использовал операционную систему FreeRTOS, которая доступна бесплатно по модифицированной лицензии GNU, платной коммерческой версии лицензии или дорогой сертифицированной версии безопасности (SafeRTOS)

На веб-сайте имеется порт x86 следующим образом

x86

* Supported processor families: Any x86 compatible running in Real mode only, plus a Win32 simulator
* Supported tools: Open Watcom, Borland, Paradigm, plus Visual Studio for the WIN32 simulator

Эта ОС обеспечивает упреждающее или кооперативное планирование задач с очередями, семафорами и установкой приоритета для задач. Он не предоставляет функций ввода-вывода или файловой библиотеки, которые поставляются с другими более крупными реализациями ОС, такими как Linux.

2
ответ дан 1 December 2019 в 12:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: