Перейти к содержанию
    

Vybrid VF6xx family is a dual-core

Приветствую.

 

есть темка поработать с данным камешком, и есть непонятки :rolleyes:

 

1) Как работать с 2мя ядрами вообще? Т.е. как пишутся проги под ядра, загружаются и запускаются?

 

2) Есть-ли standalone(без осей) библиотеки или примеры для запуска и инициализации процов?

 

3) Как вообще камешек? стоит его поюзать, есть встроенный видеоконтроллер, продаются платки по цене вполне приемлимо...

 

ЗЫ. Если у кого что есть по нему, и вообще что-то можете сказать - поделитесь, буду очень признателен :biggrin:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Неужели никто с такими процами не работал, вроде хорошие камешки по описанию судить, или что лучше есть? B)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1) Как работать с 2мя ядрами вообще? Т.е. как пишутся проги под ядра, загружаются и запускаются?

 

19.11 Running Secondary Core

 

To start execution in the secondary (Cortex-M4) core, an application entry address must

be established and the auxiliary core clock must be enabled. The auxiliary core begins

execution in the Boot ROM code. The Boot ROM code checks the validity of the

application entry address address pointed to by SRC_GPR2 and, if valid, jumps to the

address.

 

2) Есть-ли standalone(без осей) библиотеки или примеры для запуска и инициализации процов?

Мы пользуем Embedded Linux, но вроде в IAR есть какие-то примеры.

P.S.: Глянул в IAR - есть примеры загрузки кода и в A5 ядро и в M4.

 

3) Как вообще камешек? стоит его поюзать, есть встроенный видеоконтроллер, продаются платки по цене вполне приемлимо...

Процессор для определённого круга задач. Далеко не всемогущий, однако задачи по выводу простенького GUI может решать в параллель с управлением каким-либо процессом.

Изменено пользователем SimpleSoft

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Процессор для определённого круга задач. Далеко не всемогущий,

 

Да я не спорю, для линуксового программирования можно и гораздо круче найти, а вот без оси на них ничего не сделаешь, к сожалению...

ЗЫ. Тут где-то в теме проскакивало сообщение, что делали без оси под ситару, спросил - но никто не отвечает... Толи ничего не получилось или просто не хочет рассказать, ну да и ладно :laughing:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да я не спорю, для линуксового программирования можно и гораздо круче найти, а вот без оси на них ничего не сделаешь, к сожалению...

ЗЫ. Тут где-то в теме проскакивало сообщение, что делали без оси под ситару, спросил - но никто не отвечает... Толи ничего не получилось или просто не хочет рассказать, ну да и ладно :laughing:

 

Под микроконтроллеры для Freescale есть замечательный пакет - MQX и есть Processor Expert

Туда входит и RTOS и драйвера периферии и промежуточное ПО.

С Vybrid там работать не труднее чем с Kinetis.

Более того, там даже есть софт для меж-ядерного взаимодействия.

 

При том количестве периферии которое есть у Vybrid, написать неконфликтующие за ресурсы времени драйвера без RTOS выглядит нереальной задачей. Никогда даже не пробовал так делать.

 

Но если освоение RTOS представляется проблемой, то с помощью Processor Expert можно сгенерировать драйвера работающие и без RTOS.

Приложения правда уже придется писать самому.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

написать неконфликтующие за ресурсы времени драйвера без RTOS выглядит нереальной задачей.

 

Да я понимаю это, просто в задаче нужно иметь полный контроль над периферией, прерываниями и памятью. Сделать это под РТОС довольно проблематично.

 

"Более того, там даже есть софт для меж-ядерного взаимодействия." - можно про это чуть по-подробнее? В смысле, на каком уровне происходить это взаимодействие, через прерывания или память (мейлбокс)?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сделать это под РТОС довольно проблематично.

 

А что представляет проблему?

Я подозреваю, что речь скорее всего о трудности анализа раздутых исходников в традиционных осях охватывающих все поддерживаемые осью архитектуры и периферии. Линукс в этом плане образец запутанности.

 

В MQX не так.

Там есть bsp cloning wizard с помощью которого можно экстрагировать в отдельное дерево директорий только исходники касающиеся только вашей платформы.

И тогда выяснится, что RTOS-ы, даже очень продвинутые не такие сложные и запутанные как кажется.

 

 

В смысле, на каком уровне происходить это взаимодействие, через прерывания или память (мейлбокс)?

 

Тут надо отличать мультиядерность от мультипроцессорности.

Мультиядерность идет через память и аппаратные фичи, это есть в MQX, но это не ваш случай.

У вас межпроцессорный обмен (IPC). IPC делается через драйвер промежуточного уровня называемый packet control block

device driver (PCB). Драйвер же PCB работает через коммуникационные драйвера физического уровня.

В MQX сделана версия PCB которая может работать через любой драйвер асинхронного последовательного порта, а это UART, I2C, SPI и т.д. или что сами придумаете.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А что представляет проблему?

Я подозреваю, что речь скорее всего о трудности анализа раздутых исходников в традиционных осях охватывающих все поддерживаемые осью архитектуры и периферии. Линукс в этом плане образец запутанности.

 

В MQX не так.

Там есть bsp cloning wizard с помощью которого можно экстрагировать в отдельное дерево директорий только исходники касающиеся только вашей платформы.

И тогда выяснится, что RTOS-ы, даже очень продвинутые не такие сложные и запутанные как кажется.

 

 

 

 

Тут надо отличать мультиядерность от мультипроцессорности.

Мультиядерность идет через память и аппаратные фичи, это есть в MQX, но это не ваш случай.

У вас межпроцессорный обмен (IPC). IPC делается через драйвер промежуточного уровня называемый packet control block

device driver (PCB). Драйвер же PCB работает через коммуникационные драйвера физического уровня.

В MQX сделана версия PCB которая может работать через любой драйвер асинхронного последовательного порта, а это UART, I2C, SPI и т.д. или что сами придумаете.

 

Ну да, про линукс это в самую точку! Что называется - "убей свой мозг!"...

 

Сложность - да не только в исходниках, там же есть своя многозадачность, которую сложно "встроить" в прогу, которая изначально написана, как одно целое, которое нельзя разрывать, причем без спросу. И по прерываниям - часть девайсов должна работать в реалтайме, и прерывания на нужды ОС тут очень не айс...

 

У вас межпроцессорный обмен (IPC). - Да, это что-то новенькое для меня, надо где-то что-нибудь почитать...

 

Вообще - цель такова, мне бы хотелось на М4-м "повесить" интерпретатор кода виртуальных задач, а на А5-м графическую оболочку, и обработчик реалтайм-девайсов, причем последнее в приоритете, разумеется. Взаимодействие между ядрами можно было и через память организовать (так проще для меня :biggrin: ), но если тут другой метод, то придется еще подумать, как сделать...

 

И последнее - Эта MQX поставляется в исходниках или только либы, как в EMwin? И, может в курсе, можно-ли ее скомпилить под ИАР? GCC-че-то не могу переварить пока, да и не так удобен он...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сложность - да не только в исходниках, там же есть своя многозадачность, которую сложно "встроить" в прогу, которая изначально написана, как одно целое, которое нельзя разрывать, причем без спросу. И по прерываниям - часть девайсов должна работать в реалтайме, и прерывания на нужды ОС тут очень не айс...

 

Так вся сила RTOS в том и заключается, что берете свое старое приложение и как есть вставляете в одну задачу. Ставите задаче приоритет повыше и она даже не заметит, что работает еще параллельно с несколькими задачами.

Если нужна голая периферия, то просто не включайте драйвера RTOS для нее. И прерывания также. Не дайте RTOS переводить их на себя и пользуйтесь как будто RTOS и нету.

У меня все приложения так сделаны.

 

Вообще - цель такова, мне бы хотелось на М4-м "повесить" интерпретатор кода виртуальных задач, а на А5-м графическую оболочку, и обработчик реалтайм-девайсов, причем последнее в приоритете, разумеется. Взаимодействие между ядрами можно было и через память организовать (так проще для меня :biggrin: ), но если тут другой метод, то придется еще подумать, как сделать...

 

Странное у вас разделение функциональности.

Я специально ставлю на свои платформы два микроконтроллера чтобы разделить GUI и риалтайм.

Ибо риалтайм это означает не "быстро", а "надежно". А если приходится работать в одном адресном пространстве с GUI и особенно с сетевыми стеками, то ни о какой надежности уже можно не мечтать. GUI - одна из наиболее глючных вещей во встроенном софте.

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

 

И последнее - Эта MQX поставляется в исходниках или только либы, как в EMwin? И, может в курсе, можно-ли ее скомпилить под ИАР? GCC-че-то не могу переварить пока, да и не так удобен он...

 

Да MQX полностью в исходниках. Поставляется с уже подготовленными файлами рабочих пространств для IAR, Keil и CodeWarrior.

Я сам работаю с MQX в IAR. Под ARM на сегодня это самый эффективный компилятор.

Даже разработал утилиту сбора исходников по заданному дереву директорий для автоматического создания файла проекта IAR.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я сам работаю с MQX в IAR. Под ARM на сегодня это самый эффективный компилятор.

 

Согласен! И еще, если не сильно затруднит, может закините какой-нить простенький пример на ИАРе по данной теме, неважно что, там может просто "здравствуй дерево" с выдачей в уарт или еще что-нить в этом роде. Главное - будет созданный проект, что в ИАРе не всегда тривиально делать и вообще - первый шаг всегда сложнее. Буду очень признателен B)

 

Можно сюда - [email protected]

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Согласен! И еще, если не сильно затруднит, может закините какой-нить простенький пример на ИАРе по данной теме, неважно что, там может просто "здравствуй дерево" с выдачей в уарт или еще что-нить в этом роде. Главное - будет созданный проект, что в ИАРе не всегда тривиально делать и вообще - первый шаг всегда сложнее. Буду очень признателен B)

 

Для Vybrid у меня проектов нет. :laughing:

Есть только под Kinetis.

 

А чем вам не подходят проекты из директории \IAR Systems\Embedded Workbench 6.5\arm\examples\Freescale\VF6xx\TWR-VF600\build\iar\projects ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для Vybrid у меня проектов нет. :laughing:

Есть только под Kinetis.

 

А чем вам не подходят проекты из директории \IAR Systems\Embedded Workbench 6.5\arm\examples\Freescale\VF6xx\TWR-VF600\build\iar\projects ?

 

Опс, сорри не посмотрел там, надо взглянуть, спасибо :laughing:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...