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

Проблемы AVR32Uc+AtmelStudio6.2+FreeRtos

Здравстуйте уважаемые дамы и господа.

Не могу подключить FreeRtos к проекту.

Имею:

- контроллер AVR32UC3C;

- среда программирования AtmelStudio 6.2;

- board - пользовательская.

Проект собирал как рекомендовано в http://makesystem.net/?p=1363. Из себя представляет пробную програмку на две задачи - мигалки с разной частотой на выводы. При компиляции выдаются одни и теже ошибки что не найдены файлы и не инициализированы переменные указанные в файле port.c.

В проекте, как было рекомендовано в вышеуказанной статье, были подключены файлы: tasks.c, queue.c, list.c, heap_x.c, port.c.и прописаны пути к файлам FreeRTOSConfig.h, портам AVR32UC и к *.h файлам, находящихся в /include директории и к /MeMMang.

Путей к файлам, упомянутых в ошибках вообще в проекте не существует.

Цепляю принтскрин с окном Студио.

Заранее благодарю всех откликнувшихся.

post-85654-1426490475_thumb.jpg

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


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

Что никто не работает с AVR32 в FreeRtos?

Или проблема столь незначительна, что через пол-года и сам поймешь? :wacko:

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


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

Что никто не работает с AVR32 в FreeRtos?

Или проблема столь незначительна, что через пол-года и сам поймешь? :wacko:

Может действительно мало кто работает, освоите данный CPU - будете уникальным специалистом :biggrin: .

Вам компилятор сообщает - в port.c есть директива на включение некоторых файлов, не обнаруженных по указанным путям проекта и стандартного поиска. Посмотрите стандартные пути поиска компилятора, может необходимо его конкретно носом ткнуть в какую-то директорию (добавить в проект или makefile путь для поиска файлов , смотрите по докам).

Я с этим CPU не встречался, но сходная ситуация была - SYS директория была своя для каждого ряда ЦП в линейке производителя и компилятору необходимо было в проекте указывать - где именно файлы искать . Посмотрите Директории самого компилятора, IDE.

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


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

Я с этим CPU не встречался, но сходная ситуация была - SYS директория была своя для каждого ряда ЦП в линейке производителя и компилятору необходимо было в проекте указывать - где именно файлы искать . Посмотрите Директории самого компилятора, IDE.

Спасибо за участие.

Я до создания топика перерыл весь проект, но не обнаружил директории /sys, файлы cpu.h и usart.h обнаружил в демо и драйверах на сам контроллер, но они никак не относятся к проекту и исходнимам rtos"а.

Мало того в примере с freertos"ом, существующем в фреймворке на AVR32UC, в файле port.c на этот контроллер вообще отсутсвуют #include <sys/cpu.h> и #include <sys/usart.h>. Выдрал оттуда port.c, вставил себе в проект - компиляция прошла, но программа не работает - мигалки молчат.

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

Вообчем засада, хоть бери Segger"овскую ртос, но ту надо покупать, пробная версия всего на 2 задачи. :wacko:

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


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

Я до создания топика перерыл весь проект, но не обнаружил директории /sys, файлы cpu.h и usart.h

 

Уточните откуда был взят пример и порт FreeRtos, для какого компилятора. По ссылке первого сообщения предложен пример для ATmega А у Вас AVR32.

 

 

На сколько я понял из комментария в FreeRTOSV8.0.0\FreeRTOS\Source\portable\GCC\AVR32_UC3\port.c (строка 82, 83)- это стандартные файлы для CPU , должны быть в директориях компилятора или IDE.

Порт IAR не содержит таких ссылок.

Может это банальность (не хочу обидеть не зная Вашего уровня знаний предмета) но для каждого компилятора свой порт и для одного CPU они могут быть не совместимы. Просто не знаю какие компиляторы в комплекте со студией идут. А port.c содержит именно процессоро- и компиляторозависимые функции .

Посмотрите примеры именно для Вашего ЦПУ и компилятора.

Удачи !

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


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

Уточните откуда был взят пример и порт FreeRtos, для какого компилятора. По ссылке первого сообщения предложен пример для ATmega А у Вас AVR32.

[/color]На ссылке показано просто как необходимо создать рабочий проект, его структа и файлы и действия минимально необходимые для создания проекта с ртосом.

На сколько я понял из комментария в FreeRTOSV8.0.0\FreeRTOS\Source\portable\GCC\AVR32_UC3\port.c (строка 82, 83)- это стандартные файлы для CPU , должны быть в директориях компилятора или IDE.

Порт IAR не содержит таких ссылок.

Может это банальность (не хочу обидеть не зная Вашего уровня знаний предмета) но для каждого компилятора свой порт и для одного CPU они могут быть не совместимы. Просто не знаю какие компиляторы в комплекте со студией идут. А port.c содержит именно процессоро- и компиляторозависимые функции .

Посмотрите примеры именно для Вашего ЦПУ и компилятора.

Удачи !

Для работы был скачан *.zip файл с дистрибутивами для FreeRtos"а и выбран порт для нужного контроллера для среды GNU C Comp - GCC. Так что тут ошибки быть не может. Файлы, которые подключаются в port.c по всей вероятности должны находиться в E:\Program Files (x86)\Atmel\Atmel Toolchain\AVR32 GCC\Native\3.4.1067\avr32-gnu-toolchain но их там нет.

Мало того, я пробовал открыть хоть один из проектов для Атмела, представленных в DEMO freertos, при помощи оболочки AtmelStudio - ничего не получилось. Короче где то я что то очень крупно не понимаю :crying:

 

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


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

Для работы был скачан *.zip файл с дистрибутивами для FreeRtos"а и выбран порт для нужного контроллера для среды GNU C Comp - GCC. Так что тут ошибки быть не может. Файлы, которые подключаются в port.c по всей вероятности должны находиться в E:\Program Files (x86)\Atmel\Atmel Toolchain\AVR32 GCC\Native\3.4.1067\avr32-gnu-toolchain но их там нет.

 

Трудно сказать чего-то хорошего.

Может хидеры (как device support пак у TMS320 from TI или ARM-GCC ) отдельно грузятся ?

Где-то *.h файлы для ЦПУ должны быть. Может недоинсталировалось?

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


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

Трудно сказать чего-то хорошего.

Может хидеры (как device support пак у TMS320 from TI или ARM-GCC ) отдельно грузятся ?

Где-то *.h файлы для ЦПУ должны быть. Может недоинсталировалось?

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

В описаниях в работе с демо проектами, которые приведены на сайте FreeRtos, демо -проекты открываются через makefile. А эти самые майкфайлы я с помощью студио не только прочитать, я их увидеть не могу. Следовательно для работы с проектами GCC FreeRtos использовал не студио, а какую то другую среду, вот поэтому и возникает путаница с путями.

Ведь примеры с FreeRtos, которые приведены в Студио, нормально компилируются и, наверное, нормально работают.

Посему просьба подсказать среду, окромя АтмелСтудио, для работы с GCC проектами. IAR конечно можно попыталься изучить, но как то лениво, да и не знаю, есть ли там IP библиотеки, да и 8 кбайт халявного кода для меня явно маловато :laughing:

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


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

Посему просьба подсказать среду, окромя АтмелСтудио, для работы с GCC проектами. IAR конечно можно попыталься изучить, но как то лениво, да и не знаю, есть ли там IP библиотеки, да и 8 кбайт халявного кода для меня явно маловато :laughing:

 

В принципе makefile это сценарий для утилиты make (или его аналогов) обычно в gcc/binutilites или рядом, или отдельно загружается meke утилита. Предполагает работу как автономно так и через ИДЕ (если есть поддержка) , почитайте в интернете много описано и написано. Фокус в том , что проект можно собрать как через эту утилиту, так и без нее средствами IDE , да хоть в ручную командной строкой. Если у Вас в пакете AVR32 GCC сборщик make есть - можно попробовать собрать , командой make -all (если мне склероз не изменяет, надо уточнить в и-нете). Но если в исходнике есть #include "какой-то_файл.h" то независимо от метода сборки он потребуется.

 

Ведь примеры с FreeRtos, которые приведены в Студио, нормально компилируются и, наверное, нормально работают.

 

Рекомендую разобраться с недостающими файлами. Если он был - то где-то его можно взять. Возможно его переименовали в новой версии Студии. Попробуйте закоментировать этот include и посмотреть какие возникнут ошибки - недостающие определения регистров, функций и т.д. , после чего найти их в хидерах для CPU из пакета AVR32 GCC. И заменить хидер, либо дописать #include.

Сравните AVR32 port.c из студии, и из пакета FreeRtos, сравните версии RTOS.

 

В IAR присутствует пакет со своим RTOS и IP стек. Однако это платный софт, как Вы правильно заметили. Если предполагается выход на рынок то, с возникновением вопросов о лицензии, могут быть и проблемы.

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

Как альтернатива - широко применяется Eclipse с make utilites либо своим сборщиком и GCC и плагином для отладки Вашего контроллера (если такой есть). Но это не решает проблемы исходника.

Удачи!

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


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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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