Настройка GCC с FreeRTOS и OpenOCD - PullRequest
       65

Настройка GCC с FreeRTOS и OpenOCD

3 голосов
/ 22 августа 2010

Я почти уверен, что это возможно, но я не уверен, как это сделать. Я очень новичок в сборке с GCC в целом, и я никогда не использовал FreeRTOS, но я хотел бы попробовать запустить ОС на TI ARM Cortex MCU, но с небольшим поворотом: я хотел бы получить его и работает с Паскалем. Мне любопытно:

  • Возможно ли вообще получить работу? Если нет, то следующие вопросы являются своего рода спорными вопросами.
  • Из моих дней в Delphi я смутно припоминаю возможность доступа к функциям в библиотеках Си. Мне интересно, получу ли я доступ к подпрограммам C во FreeRTOS.
  • Если я использую версию GCC (предпочтительно), смогу ли я отлаживать, используя OpenOCD на цели? Я не совсем уверен, как работают символы отладки и является ли он более или менее независимым от языка (надеюсь, в этом случае).
  • Как бонусный вопрос, выходящий за рамки оригинального запроса, могу ли я смоделировать FreeRTOS на процессоре x86 (например, на моем компьютере для разработки) для упрощения отладки во время разработки? (С программой на Паскале, конечно ..)

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

К вашему сведению, моя предпочтительная конфигурация хоста будет выглядеть примерно так:

  • Linux (Ubuntu / Debian)
  • Eclipse IDE для разработки, модульного тестирования и, надеюсь, моделирования / отладки
  • OpenOCD для целевой отладки
  • GNU Pascal + FreeRTOS на цели

Ответы [ 3 ]

3 голосов
/ 22 августа 2010

FreeRTOS - это исходный код на C, так что, как вы говорите, у вас должен быть какой-то механизм для связи C с вашими программами на Pascal. Кроме того, FreeRTOS полагается на определенные регистры, которые будут использоваться для таких вещей, как передача параметра в задачу (в качестве гипотетического примера, задача всегда может ожидать, что параметр будет в регистре R0), поэтому вам придется обеспечить ABI для компилятора C и компилятор Pascal был таким же - или пусть ваша запись задачи в C затем вызовет функцию Pascal (очень неприятно). Затем возникает проблема с прерываниями, вызовом встроенных макросов и т. Д. Я бы сказал, что это будет чрезвычайно трудно достичь.

2 голосов
/ 20 февраля 2011

Уже есть пример для FreeRTOS / GCC / OpenOCD на TI Cortex-M3 (был Luminary Micro Cortex-M3). Имейте в виду, что это действительно старый пример, и обе версии Eclipse и OpenOCD устарели.

Несмотря на то, что предусмотрен проект Eclipse, проект настроен как стандартный проект make (в отличие от управляемого make), поэтому существует стандартный make-файл, который можно так же легко выполнить из командной строки, как и из Eclipse. .

http://www.freertos.org/portLM3Sxxxx_Eclipse.html

2 голосов
/ 22 августа 2010

И GNU Pascal, и Free Pascal поддерживают соединение с C (gcc) и ARM, а также вызов кода на паскале из C и т. Д. Написание заголовка и объявление прототипов с помощью cdecl - это все, что нужно для этого.* Макросы - немного большая проблема.Обычно я просто переписываю их для встроенных функций (какими они должны были быть в любом случае).За исключением проблемы макроса / заголовка, проблемы связаны с более специфичной для компилятора функциональностью (с которой у вас также будет проблема при переносе с одного компилятора C на следующий)

Если вы предпочитаете диалект TP / Delphi, Free Pascalэто лучший выбор.

Я хорошо запускаю свой старый код Delphi на своей штепсельной вилке.

...