2012-05-01 3 views
4

Я слышал, что можно написать операционную систему, используя встроенный загрузчик и ядро, которое вы пишете, для микроконтроллера PIC. Я также слышал, что это должна быть RTOS.Операционная система микроконтроллера PIC

  1. Это правда? Можете ли вы сделать ядро ​​операционной системы (используя C/C++) для ПОС?
  2. Если да, то есть ли какие-либо примеры этого?
  3. Если да, вам понадобится программное обеспечение любого типа для создания ядра?
  4. Является ли Microchip единственной компанией, которая делает микроконтроллеры PIC?
  5. Можно ли запрограммировать микроконтроллер PIC на Mac?

Спасибо!

+1

Почему, по вашему мнению, вам нужна операционная система на небольшом микроконтроллере, таком как PIC? –

+0

@PaulR Это проект, в котором я пишу небольшую ОС, которая может многое сделать для небольшого устройства. ПИК небольшой, поддерживается, современно и недорого. – Coder404

+0

@PaulR - Как профессиональный встроенный программист, я считаю, что использование RTOS на ПОС почти всегда лучше, чем нет. –

ответ

4

Предлагаю вам ознакомиться с FreeRTOS.

+0

Я видел это и думал об этом. Как бы вы скомпилировали и сохранили это в ПОС? Также мне понадобилось бы, чтобы RTOS поддерживала обнаружение кнопок и определяла, была ли нажата кнопка. – Coder404

+0

Просмотрите страницу «Поддерживаемые MCU» для поддерживаемых инструментов. Что касается кнопок - ну, это будет ваша работа по реализации. – Oliver

+0

См .: http://www.freertos.org/a00090.html#MICROCHIP –

7
  1. Да, вы можете написать свое собственное ядро ​​(я написал 2 своих собственных). Да, вы можете написать его в C для ПОС. Если вы хотите упреждающее планирование, то при написании контекстного переключателя вам будет очень сложно избежать сбоя сборки. С другой стороны, вы можете легко написать кооперативное ядро ​​исключительно в C (я сделал это сам). (Обратите внимание, что создание операционной системы - непростая задача ... Сначала я получил бы ваши ноги влажными в чистом C, затем ИСПОЛЬЗУЯ ОС или два, затем попробуйте создать один.)

  2. Прекрасный пример этого это FreeRTOS. Он имеет уже существующие порты (т. Е. Проекты MPLAB, которые без каких-либо модификаций на демонстрационной плате Explorer16) для PIC24F, PIC33F и PIC32MX (а также 20-некоторых нечетных других официальных портов для устройств других производителей). PIC18F поддерживается, но это не очень ...

  3. Для создания ядра вам понадобится MPLAB (бесплатно от Microchip). Он может работать взаимозависимо с C и сборкой. В зависимости от процессора есть бесплатные версии их компиляторов C30 и C32 для работы с MPLAB.

  4. PIC - это тип микроконтроллера и является товарным знаком Microchip. Многие другие компании делают микроконтроллеры и называют их чем-то другим (например, AVR, LPC, STM32).

  5. Да, новая версия MPLAB X поддерживается на Mac, Linux и Windows.

+0

+1 для полного ответа на мой вопрос! Спасибо! – Coder404

+0

Дополнительным примечанием является то, что вы можете использовать другие IDE для программирования микроконтроллеров PIC, таких как ccs c ccsinfo.com, одного из лучших компиляторов IDE + C для PIC, или вы можете использовать один из микроэлектроники, который поддерживает C, Pascal или Basic для ПИК и АВР. –

2

Я второй раз голосовал за FreeRTOS; мы все это время используем в проектах PIC24. Порт хорошо работает и не использует тонны памяти.

Microchip supports many third party RTOSes.

Большинство из них бесплатные демонстрационные проекты, которые можно скачать, построить в MPLAB и программы на плате Explorer16 очень легко. Затем вы можете поэкспериментировать с вашим сердцем.

1

PIC не является единой архитектурой. PIC10 значительно отличается от PIC24, хотя они и каждый PIC между ними разделяют некоторую общность. С другой стороны, PIC32 на базе MIPS представляет собой совершенно другую архитектуру. Таким образом, вы должны четко понимать, что такое PIC, о котором вы говорите.

В ОС на PIC есть и RTOS, но это идеально подходит для домена приложения, в котором используются устройства, поэтому все, что не было в режиме реального времени, было бы несколько менее полезным.

Есть много RTOS ports уже для ПОС.

Нет ничего особенного в плане планировщика ядра с точки зрения метода разработки, а в большинстве случаев необходим небольшой ассемблер - никаких специальных инструментов. Вы можете использовать ассемблер на 100%, если хотите, и это может потребоваться для получения самого маленького/самого быстрого кода, но только если ваши знания ассемблера лучше, чем у компилятора.

PIC специфичен для Microchip, хотя Parallax SX является более или менее клоном. В отличие от ARM, например, Microchip не лицензирует архитектуру сторонних производителей чипов или поставщиков IP-адресов. Никто не захочет этого в любом случае ИМО; есть гораздо лучшие архитектуры. ARM Cortex-M особенно подходит для реализации ядра RTOS, а инструкция AVR предназначена для эффективного перевода из исходного кода C. Даже почтенный 8051 хорошо подходит для внедрения RTOS; его восемь банков-регистров делают коммутаторы контекста очень быстрыми (до восьми потоков), и, как и ARM, 8051 устройства архитектуры доступны от нескольких производителей.

+0

Спасибо за ваш комментарий. Я решил сделать свой проект FreeRTOS на основе ARM Cortex-M (из-за вашего совета). – Coder404

0

Аппаратный стек процессора PIC 18F имеет длину всего 31 байт. Другая оперативная память не может использоваться как стек. Даже 8051 IRAM-память имеет 128 байт стека. Я сделал RTOS для 8051, ARM и PIC 18F, и не чувствует себя хорошо на PIC 18F. Если ОЗУ (16K - 64K) PIC32 может использоваться как стек, если указатель стека имеет длину 16 бит, он будет намного лучше, чем типы PIC18F. Знает ли кто-нибудь это?

Смежные вопросы