Jump to content

Кролик Полупроводник

Кролик Полупроводник Инк.
Промышленность микроконтроллеры
Основан 1983
Штаб-квартира ,
Владелец Диги Интернешнл
Веб-сайт www .диги /лп /кролик

Rabbit Semiconductor — американская компания, которая разрабатывает и продает и модулей микроконтроллеров Rabbit семейство микроконтроллеров . Для разработки предоставляется Dynamic C — нестандартный диалект C с собственными структурами для многозадачности.

Rabbit Semiconductor была куплена в 2006 году компанией Digi International за 49 миллионов долларов. [1] [2] До покупки Rabbit Semiconductor была подразделением Z-World, Inc. Z-World разрабатывала и производила встроенные контроллеры, а также среды разработки встроенного программного обеспечения.

Архитектура микроконтроллера

[ редактировать ]

Семейство процессоров Rabbit имеет много общего с процессорами Zilog Z80/Z180 . Например, регистры процессора Rabbit 2000/3000 практически такие же, как регистры процессора Z80/Z180. Процессор Rabbit 4000 расширяется за счет использования 32-битных регистров. Набор команд процессоров Rabbit также очень похож на набор команд семейства Z80/Z180. Хотя коды операций многих инструкций процессоров Rabbit 2000/3000 и процессоров Z80/Z180 одинаковы, эти два семейства процессоров не совместимы на уровне двоичного кода. Как и семейство Z80/Z180, процессоры Rabbit представляют собой процессоры CISC .

Семейство процессоров Rabbit обладает уникальными особенностями. Например, семейство Z80/Z180 отключает прерывания , если прерывание обслуживается программой обслуживания прерываний. Однако процессоры Rabbit позволяют прерываниям прерывать служебные процедуры в соответствии с приоритетами (всего 4).

Rabbit Semiconductor утверждает, что набор команд процессоров Rabbit оптимизирован для кода C. [3]

Динамический С

[ редактировать ]

Пожалуй, самой примечательной особенностью микроконтроллера Rabbit является его среда разработки. Dynamic C, продукт Rabbit Semiconductor, имеет дополнения, удаления и несоответствия по сравнению со стандартом ANSI-C.

Dynamic C IDE поставляется с обширными библиотеками с открытым исходным кодом и примерами кода. выпущен под лицензия MPL или Лицензия ИСЦ . [4] [5]

Примечание
(Ссылка: Портирование программы на Dynamic C-Rabbit Semiconductor)

Dynamic C следует стандарту ISO/ANSI C, когда это возможно и желательно. Поскольку стандарт не Принимая во внимание особые потребности встраиваемых систем, необходимо отойти от стандарта в в одних областях и желательно в других. Стандарт не учитывает важные встроенные системы такие проблемы, как память только для чтения и встроенный язык ассемблера. По этой причине практические составители предназначенные для встраиваемых систем, не полностью соответствуют стандарту, но используйте его как ориентир.

В качестве примера дополнения в Dynamic C имеется механизм объединения фрагментов кода из разных подпрограмм в произвольное количество цепочек. Это расширение позволяет использовать не только инициализированные переменные, но и любой произвольный код, который необходимо выполнить до того, как программа начнет выполнение в основной функции.

В качестве примера удаления: начиная с версии 10.23 Dynamic C не поддерживает переменные области блока или битовые поля . Инструментарий разработки не включает в себя отдельный препроцессор и компоновщик, что может усложнить процесс переноса существующих программ на компилятор. Начиная с версии 10.64 поддерживается область видимости блока для переменных.

В качестве примера несогласованности: Dynamic C неявно обрабатывает все инициализированные глобальные переменные, как если бы они были объявлены с помощью const квалификатор. Кроме того, все const переменные находятся во флэш-памяти. Более ранние версии Dynamic C не проверяли использование const ключевое слово в параметрах — можно было передать const переменная в качестве параметра функции, которая ее не ожидала, что потенциально может привести к попыткам записи во флэш-память. Начиная с последней версии Dynamic C, компилятор выдает ошибку, когда пользователь пытается изменить файл. const переменную напрямую и выдаст предупреждение, если пользователь откажется от const квалификатор при передаче параметра в функцию.

Многозадачные конструкции

[ редактировать ]

Одной из примечательных особенностей Dynamic C является включение языковых конструкций для упрощения многозадачности. Эти конструкции, costate заявление и slice заявление, реализовать форму совместной и вытесняющей многозадачности соответственно. В качестве примера рассмотрим следующую программу, которая мигает двумя светодиодами с разной частотой:

void main()
{
    while (1)
    {
        // Create 2 costatements which will toggle our LEDs.
        costate
        {
            led1on();
            waitfor(DelayMs(100));
            led1off();
            waitfor(DelayMs(50));
        }
        costate
        {
            led2on();
            waitfor(DelayMs(200));
            led2off();
            waitfor(DelayMs(50));
        }
    }
}

При запуске этого кода будет выполнен первый оператор и загорится первый светодиод. Затем оператор уступит место второму оператору, пока он ждет 100 миллисекунд. Второе утверждение будет выполнено аналогичным образом. Пока оба оператора ждут истечения своего времени, цикл while будет занят-ожиданием , но это время ожидания потенциально может быть использовано для выполнения других задач. Дополнительную информацию см. в Руководстве пользователя Dynamic C.

См. также

[ редактировать ]
  1. ^ Digi International приобретает Rabbit Semiconductor. Архивировано 13 февраля 2009 г. в Wayback Machine.
  2. ^ «Control Engineering | Digi приобретает Rabbit Semiconductor за 49 миллионов долларов» . Техника управления . 07.06.2005 . Проверено 6 июля 2022 г.
  3. ^ «Кролик | Диги Интернэшнл» . www.digi.com .
  4. ^ Жан Ж. Лаброс. «Встроенное программное обеспечение: знай все» . 2007. п. 246.
  5. ^ «Dynamic C 10: для встраиваемых систем на базе Rabbit» .
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 417bfa7cb696b4aa4db5c455219b681d__1715243460
URL1:https://arc.ask3.ru/arc/aa/41/1d/417bfa7cb696b4aa4db5c455219b681d.html
Заголовок, (Title) документа по адресу, URL1:
Rabbit Semiconductor - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)