В настоящее время я реализую программу на платформе Arduino на основе FreeRTOS.Портирование FreeRTOS на Arduino MEGA 2560 Rev3 (ATmega2560)
Я хотел бы использовать Arduino MEGA 2560 Rev3 (который основан на ATmega2560) для этого проекта, но я не смог найти рабочий файл port.c.
Не могли бы вы поделиться рабочим портом.c?
Я использую Eclipse IDE, WinAVR, AVR Plugin, Arduino Lib, Freertos 7.6.0 (я в конечном итоге перейти к v8.0.0) и C++ в качестве основного языка программирования.
Спасибо.
EDIT:
Я наткнулся avrfreertos, который генерирует статическую библиотеку Freertos для ATmega2560, но когда я соединяю мой проект против него, я получаю следующее сообщение об ошибке:
c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/bin/ld.exe: section .task [00003282 -> 0000328f] overlaps section .data [00003282 -> 0000339d]
make: *** [MY_PROJECT_NAME.elf] Error 1
EDIT:
Я нашел исправление проблемы связующей
- http://sourceforge.net/p/avrfreertos/discussion/general/thread/f0552383/
- http://feilipu.me/2011/09/22/freertos-and-libraries-for-avr-atmega/comment-page-1/#comment-14
Спасибо за ответ feilipu :) Я хотел использовать порт freeRTOS800, но я, кажется, не нашел файлы проекта eclipse в 'freeRTOS800_All_Files/freeRTOS800'. Кроме того, поскольку я использую WinAVR, у меня нет доступа к последним avrbinutils или avrlibc (я не нашел никаких последних AVR toolchain на windows или ubuntu), поэтому я должен буду придерживаться 7.5.0 на данный момент , – 865719
Если у вас все в порядке, я хотел бы задать вам 2 последних вопроса: 1. Нужно ли включать все части 'lib_ *' при компиляции AVRfreeRTOS (я хотел бы иметь «минимальный» freeRTOS в моем проекте , только с задачами, функциями времени/задержки, очередями и sem/mutexes)? 2. Можно ли извлекать только файлы, зависящие от порта (например, 'port.c' и' portmacro.h') и использовать их с официальной версией FreeRTOS?И если да, то как я продолжу? (Я уже пытался использовать предоставленные вами файлы, но у них были зависимости от «time.h») – 865719
Да, все файлы lib_ * можно удалить. Они добавлены. Материал time.h относится к восходящей версии avrlibc, которая еще не выпущена. Я втянул его в порт.c, потому что хочу иметь системные часы (галочки), отсчитывающие секунды, и, следовательно, мог бы делать небольшие расчеты времени для таймеров и т. Д. – feilipu