Кролик Полупроводник
Эта статья нуждается в дополнительных цитатах для проверки . ( октябрь 2008 г. ) |
Промышленность | микроконтроллеры |
---|---|
Основан | 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]
Динамический С
[ редактировать ]Эта статья может быть слишком технической для понимания большинства читателей . ( Май 2024 г. ) |
Пожалуй, самой примечательной особенностью микроконтроллера 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.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Digi International приобретает Rabbit Semiconductor. Архивировано 13 февраля 2009 г. в Wayback Machine.
- ^ «Control Engineering | Digi приобретает Rabbit Semiconductor за 49 миллионов долларов» . Техника управления . 07.06.2005 . Проверено 6 июля 2022 г.
- ^ «Кролик | Диги Интернэшнл» . www.digi.com .
- ^ Жан Ж. Лаброс. «Встроенное программное обеспечение: знай все» . 2007. п. 246.
- ^ «Dynamic C 10: для встраиваемых систем на базе Rabbit» .
Внешние ссылки
[ редактировать ]- Rabbit Semiconductor в веб-архивах Библиотеки Конгресса (архивировано 14 сентября 2002 г.)
- Руководство пользователя Dynamic C 9
- Диги Интернешнл
- Портирование программы на Dynamic C
- Справочник инструкций для семейства Rabbit 4000 на Wayback Machine (архивировано 26 декабря 2011 г.)
- Кролик 4000
- Цифровые системы на чипе
- Стек BACnet с открытым исходным кодом для семейства Rabbit