Страница 1 из 1
Помогите с freeRTOS
Добавлено: Пн сен 27, 2010 18:42:38
Dementos
Доброго времени суток уважаемые форумчане!
вот задавал подобные вопросы на робофоруме но народ к сожалению молчит

! Вот решил обратиться к вам, надеясь на вашу помощь
Ранее работал с микроконтроллерами Atmel Atmega, стало тесно и решил освоить ARM, выбрал микроконтроллер LPC2478, написав пару простых программ, решил освоить операционную систему выбрал freeRTOS, сразу встали следующие вопросы:
1) Можно ли запустить freeRTOS с компилятором RealView от Keil
2) если можно , то какие настройки нужно сделать в Keil
3) если нет то как прикрутить gcc к Keil
Очень хотелось бы простеньких примеров!
И попутно хотел бы узнать у гуру, как работать с TFT дисплеем, не разу не работал с ним! Меня интересует именно как организована видеопамять и как с ней работать на низком уровне! (запись чтение)! если вам не трудно подскажите ссылки на полезную информацию!
Заранее большое спасибо!
Andrey
Сообщения: 16
Зарегистрирован: 29 окт 2009, 22:06
Откуда: СПб
Re: Помогите с freeRTOS
Добавлено: Вт сен 28, 2010 12:00:04
Dementos
Пролазив нет не нашёл инфу как правильно конфигурировать встроенный контроллер LCD в микроконтроллере LPC 2478, пошарив в книгах к сожалению ничего не нашёл тоже жду вашей помощи!
Re: Помогите с freeRTOS
Добавлено: Вт сен 28, 2010 22:03:55
kotovasiya
Dementos писал(а):Пролазив нет не нашёл инфу как правильно конфигурировать встроенный контроллер LCD в микроконтроллере LPC 2478, пошарив в книгах к сожалению ничего не нашёл тоже жду вашей помощи!
Тоже купил такую микруху,спрашивал про дисплей тут
http://kazus.ru/forums/showthread.php?t=14719&page=55
пост от Snacker
Re: Помогите с freeRTOS
Добавлено: Вт дек 11, 2012 12:10:29
wellcom
Привет вусем! Начал разбираться с FreeRTOS V7.3.0 на Atmega128+AVRStudio 6. Несколько примеров заработали успешно (мигать светиком + кнопка с выводом события нажатия на LCD 1x16). После решил углубится в использование УАРТА, добавил 2 задачи + 1 прерывание по приему символа. При компиляции серьезных ошибок небыло, кроме 2-х одинаковых "вонингов" вида : Warning 1 cast from pointer to integer of different size [-Wpointer-to-int-cast] G:\......\tasks.c 523 44 AVRGCC1, что указывает на следующую строку кода
pxTopOfStack = ( portSTACK_TYPE * ) ( ( ( portPOINTER_SIZE_TYPE ) pxTopOfStack ) & ( ( portPOINTER_SIZE_TYPE ) ~portBYTE_ALIGNMENT_MASK ) );
После запуска в дебаге, программа виснет при получении семафора : xSemaphoreTake(xButtonSemaphore, (portTickType)0);
детальное изучения висячки привело меня в строку кода portRESTORE_CONTEXT();, после выполнения которой, на вкладке Processor - Registers, все регистры от 0 по 31 имеют значения 00. Т. е я так понимаю что контекст предыдущей задачи не востановился, но почему не могу понять. Этот участок кода работал нормально, пока не добавил ф-ции по работе с уартом. Сейчас полностью убрал эти ф-ции но ошибка осталась и побороть ее ника не могу, и вообще не могу понять в чем дело. Может проблема в "вонингах"? Прошу помощи.
Вот часть кода, которая глючит
Спойлер
Код: Выделить всё
void vButtonCheckTask( void *pvParameters )
{
portTickType xLastWakeTime;
const portTickType xFrequency = 20; //время, через которое проверяется кнопка, мс
xLastWakeTime=xTaskGetTickCount(); //Возвращает:Количество тиков начиная с вызова vTaskStartScheduler
xSemaphoreTake(xButtonSemaphore, (portTickType)0); //Макрос для получения семафора. <<<< --------глючит здесь во время/при выполнении
vButtonInit(); //initialization
for (;;)
{
if (xButtonGetStatus()==pdTRUE) //смотрим кнопку, если нажата
{
xSemaphoreGive(xButtonSemaphore); // Освобождаем семафор.
}
vTaskDelayUntil(&xLastWakeTime,xFrequency); //проверяем кнопку каждые 20 мс
}
}
portSHORT main(void)
{
vSemaphoreCreateBinary(xButtonSemaphore); // реализует семафор
if(xButtonSemaphore!=NULL) // если семафор создан удачно
{
xTaskCreate( vButtonCheckTask, ( signed char * ) "Button", configMINIMAL_STACK_SIZE, NULL, mainButton_TASK_PRIORITY, NULL ); //реакция на кнопку
}
xTaskCreate( vLEDFlashTask1, ( signed char * ) "LED", configMINIMAL_STACK_SIZE, NULL, mainLED_TASK_PRIORITY, NULL ); //мигание всетиком
while(1)
{
}
return 0;
}
Весь Проект ниже
Re: Помогите с freeRTOS
Добавлено: Сб дек 15, 2012 12:46:15
wellcom
разобрался. проблема в неверном использовании зарезервированного слова "static"
Re: Помогите с freeRTOS
Добавлено: Пн сен 23, 2013 09:47:18
Ruslan-maniak
Решил не создавать новую тему, а спросить в этой. Дело вот в чем. Убил весь день на то что бы собрать FreeRTOS 7.5.2 в IAR на STM32F100. Но так и не смог собрать. И это с учётом того что собирал и использовал его на F2 и F3 до этого. Всё без труда получалось. А тут раз и так застрял. Вылетает ошибка линкера. На скриншоте видна и ошибка и что есть в проекте. Подскажите кто знает, в чём может быть дело. А то уже не знаю что сделать.
Re: Помогите с freeRTOS
Добавлено: Пн сен 23, 2013 09:52:52
petrenko
Содержимое файла не то, что там должно быть с "точки зрения" сборщика...
Может быть просто ошибки в файле ?
Re: Помогите с freeRTOS
Добавлено: Пн сен 23, 2013 10:00:13
Ruslan-maniak
Содержимое я не менял. Кстати если удалить объектовые файлы, то при новой сборке он жалуется что в portasm.s не может открыть (include) FreeRTOSConfig.h, хотя путь к нему в препроцессоре прописан, и он даже в проект добавлен.
Re: Помогите с freeRTOS
Добавлено: Пн сен 23, 2013 17:12:46
Ruslan-maniak
Затупил. В ассемблеровском препроцессоре не прописал путь к конфигу.