AlGruz 0 16 марта, 2015 Опубликовано 16 марта, 2015 · Жалоба Здравстуйте уважаемые дамы и господа. Не могу подключить 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 0 16 марта, 2015 Опубликовано 16 марта, 2015 · Жалоба Что никто не работает с AVR32 в FreeRtos? Или проблема столь незначительна, что через пол-года и сам поймешь? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
volodya_t 0 17 марта, 2015 Опубликовано 17 марта, 2015 · Жалоба Что никто не работает с AVR32 в FreeRtos? Или проблема столь незначительна, что через пол-года и сам поймешь? Может действительно мало кто работает, освоите данный CPU - будете уникальным специалистом . Вам компилятор сообщает - в port.c есть директива на включение некоторых файлов, не обнаруженных по указанным путям проекта и стандартного поиска. Посмотрите стандартные пути поиска компилятора, может необходимо его конкретно носом ткнуть в какую-то директорию (добавить в проект или makefile путь для поиска файлов , смотрите по докам). Я с этим CPU не встречался, но сходная ситуация была - SYS директория была своя для каждого ряда ЦП в линейке производителя и компилятору необходимо было в проекте указывать - где именно файлы искать . Посмотрите Директории самого компилятора, IDE. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlGruz 0 17 марта, 2015 Опубликовано 17 марта, 2015 · Жалоба Я с этим 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 задачи. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
volodya_t 0 17 марта, 2015 Опубликовано 17 марта, 2015 · Жалоба Я до создания топика перерыл весь проект, но не обнаружил директории /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 0 18 марта, 2015 Опубликовано 18 марта, 2015 · Жалоба Уточните откуда был взят пример и порт 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: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
volodya_t 0 19 марта, 2015 Опубликовано 19 марта, 2015 · Жалоба Для работы был скачан *.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 0 19 марта, 2015 Опубликовано 19 марта, 2015 · Жалоба Трудно сказать чего-то хорошего. Может хидеры (как device support пак у TMS320 from TI или ARM-GCC ) отдельно грузятся ? Где-то *.h файлы для ЦПУ должны быть. Может недоинсталировалось? Есть у меня такое подозрение, что виной всех моих бед является дюже умная оболочка АтмелСтудио. В описаниях в работе с демо проектами, которые приведены на сайте FreeRtos, демо -проекты открываются через makefile. А эти самые майкфайлы я с помощью студио не только прочитать, я их увидеть не могу. Следовательно для работы с проектами GCC FreeRtos использовал не студио, а какую то другую среду, вот поэтому и возникает путаница с путями. Ведь примеры с FreeRtos, которые приведены в Студио, нормально компилируются и, наверное, нормально работают. Посему просьба подсказать среду, окромя АтмелСтудио, для работы с GCC проектами. IAR конечно можно попыталься изучить, но как то лениво, да и не знаю, есть ли там IP библиотеки, да и 8 кбайт халявного кода для меня явно маловато :laughing: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
volodya_t 0 20 марта, 2015 Опубликовано 20 марта, 2015 · Жалоба Посему просьба подсказать среду, окромя АтмелСтудио, для работы с 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 и плагином для отладки Вашего контроллера (если такой есть). Но это не решает проблемы исходника. Удачи! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться