Jump to content
    

Проблемы 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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

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

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

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

Share this post


Link to post
Share on other sites

Я с этим 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:

Share this post


Link to post
Share on other sites

Я до создания топика перерыл весь проект, но не обнаружил директории /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 содержит именно процессоро- и компиляторозависимые функции .

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

Удачи !

Share this post


Link to post
Share on other sites

Уточните откуда был взят пример и порт 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:

 

Share this post


Link to post
Share on other sites

Для работы был скачан *.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 файлы для ЦПУ должны быть. Может недоинсталировалось?

Share this post


Link to post
Share on other sites

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

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

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

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

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

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

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

Share this post


Link to post
Share on other sites

Посему просьба подсказать среду, окромя АтмелСтудио, для работы с 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 и плагином для отладки Вашего контроллера (если такой есть). Но это не решает проблемы исходника.

Удачи!

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...