Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проблемы AVR32Uc+AtmelStudio6.2+FreeRtos
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы > FreeRTOS
AlGruz
Здравстуйте уважаемые дамы и господа.
Не могу подключить 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.
Путей к файлам, упомянутых в ошибках вообще в проекте не существует.
Цепляю принтскрин с окном Студио.
Заранее благодарю всех откликнувшихся.
AlGruz
Что никто не работает с AVR32 в FreeRtos?
Или проблема столь незначительна, что через пол-года и сам поймешь? wacko.gif
volodya
Цитата(AlGruz @ Mar 16 2015, 21:27) *
Что никто не работает с AVR32 в FreeRtos?
Или проблема столь незначительна, что через пол-года и сам поймешь? wacko.gif

Может действительно мало кто работает, освоите данный CPU - будете уникальным специалистом biggrin.gif .
Вам компилятор сообщает - в port.c есть директива на включение некоторых файлов, не обнаруженных по указанным путям проекта и стандартного поиска. Посмотрите стандартные пути поиска компилятора, может необходимо его конкретно носом ткнуть в какую-то директорию (добавить в проект или makefile путь для поиска файлов , смотрите по докам).
Я с этим CPU не встречался, но сходная ситуация была - SYS директория была своя для каждого ряда ЦП в линейке производителя и компилятору необходимо было в проекте указывать - где именно файлы искать . Посмотрите Директории самого компилятора, IDE.
AlGruz
Цитата(volodya @ Mar 17 2015, 09:33) *
Я с этим 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.gif
volodya
Цитата(AlGruz @ Mar 17 2015, 09:52) *
Я до создания топика перерыл весь проект, но не обнаружил директории /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 содержит именно процессоро- и компиляторозависимые функции .
Посмотрите примеры именно для Вашего ЦПУ и компилятора.
Удачи !
AlGruz
Цитата(volodya @ Mar 17 2015, 23:31) *
Уточните откуда был взят пример и порт FreeRtos, для какого компилятора. По ссылке первого сообщения предложен пример для ATmega А у Вас AVR32.
[/color]На ссылке показано просто как необходимо создать рабочий проект, его структа и файлы и действия минимально необходимые для создания проекта с ртосом.
[color="#0000FF"]

На сколько я понял из комментария в 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.gif
volodya
Цитата(AlGruz @ Mar 18 2015, 11:34) *
Для работы был скачан *.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 файлы для ЦПУ должны быть. Может недоинсталировалось?
AlGruz
Цитата(volodya @ Mar 19 2015, 09:18) *
Трудно сказать чего-то хорошего.
Может хидеры (как device support пак у TMS320 from TI или ARM-GCC ) отдельно грузятся ?
Где-то *.h файлы для ЦПУ должны быть. Может недоинсталировалось?

Есть у меня такое подозрение, что виной всех моих бед является дюже умная оболочка АтмелСтудио.
В описаниях в работе с демо проектами, которые приведены на сайте FreeRtos, демо -проекты открываются через makefile. А эти самые майкфайлы я с помощью студио не только прочитать, я их увидеть не могу. Следовательно для работы с проектами GCC FreeRtos использовал не студио, а какую то другую среду, вот поэтому и возникает путаница с путями.
Ведь примеры с FreeRtos, которые приведены в Студио, нормально компилируются и, наверное, нормально работают.
Посему просьба подсказать среду, окромя АтмелСтудио, для работы с GCC проектами. IAR конечно можно попыталься изучить, но как то лениво, да и не знаю, есть ли там IP библиотеки, да и 8 кбайт халявного кода для меня явно маловато laughing.gif
volodya
Цитата(AlGruz @ Mar 19 2015, 15:22) *
Посему просьба подсказать среду, окромя АтмелСтудио, для работы с GCC проектами. IAR конечно можно попыталься изучить, но как то лениво, да и не знаю, есть ли там IP библиотеки, да и 8 кбайт халявного кода для меня явно маловато laughing.gif


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

Цитата(AlGruz @ Mar 19 2015, 15:22) *
Ведь примеры с FreeRtos, которые приведены в Студио, нормально компилируются и, наверное, нормально работают.


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

В IAR присутствует пакет со своим RTOS и IP стек. Однако это платный софт, как Вы правильно заметили. Если предполагается выход на рынок то, с возникновением вопросов о лицензии, могут быть и проблемы.
IP стек из примеров FreeRtos это отдельный пакет, может использоваться и без РТОС.
Как альтернатива - широко применяется Eclipse с make utilites либо своим сборщиком и GCC и плагином для отладки Вашего контроллера (если такой есть). Но это не решает проблемы исходника.
Удачи!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.