Перейти к содержанию
    

FreeRTOS 5.0.2 проблема со сборкой исходников под IAR ARM

в наличии

IAR ARM 5.2 (30 дневная)

FreeRTOS 5.0.2

процессор типа LPC2368

 

в проекте подключены файлы:

croutine.c

list.c

port.c

queue.c

tasks.c

 

еще мой main.c

 

конфиг оси взял из демо проекта, в опциях компилятора указал LPC2000_IAR

пока в моей функции main не делаю вызовов API OS, проблем нет,

как только вставлю vTaskStartScheduler();

в int main()

лезут ошибки линковщика

 

Error[Li005]: no definition for "vPortFree" [referenced from D:\Project\Cnt-FreeRTOS\Debug\Obj\tasks.o]

Error[Li005]: no definition for "vPortStartFirstTask" [referenced from D:\Project\Cnt-FreeRTOS\Debug\Obj\port.o]

Error[Li005]: no definition for "vPortPreemptiveTickEntry" [referenced from D:\Project\Cnt-FreeRTOS\Debug\Obj\port.o]

Error[Li005]: no definition for "pvPortMalloc" [referenced from D:\Project\Cnt-FreeRTOS\Debug\Obj\tasks.o]

Error while running Linker

 

поискал функцию vPortFree

она есть только в port.c для PIC18 и AVR32

 

надо еще что то подключить ?

 

и не нашел в документации, какие файлы для данного порта подключать в проект.

Так например при подключении portasm.s79 лезут ошибки, пока выкинул.

 

PS: мне от ОСи нужен только переключатель задач, всякое динамическое выделение памяти на контроллере без аппаратной поддержки динамического распределения, считаю извращением и использовать не планирую. Так же не нужны очереди, т.к. буду свои писать, более приспособленные под мою задачу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так например при подключении portasm.s79 лезут ошибки, пока выкинул.

:07: Тогда почему удивляетесь, что лезут ошибки линковщика?

 

Error[Li005]: no definition for "vPortStartFirstTask" [referenced from D:\Project\Cnt-FreeRTOS\Debug\Obj\port.o]

Error[Li005]: no definition for "vPortPreemptiveTickEntry" [referenced from D:\Project\Cnt-FreeRTOS\Debug\Obj\port.o]

 

PS: мне от ОСи нужен только переключатель задач, всякое динамическое выделение памяти на контроллере без аппаратной поддержки динамического распределения, считаю извращением и использовать не планирую.

Зато автор FreeRTOS не считает извращением и использует. Отсюда и:

 

Error[Li005]: no definition for "vPortFree" [referenced from D:\Project\Cnt-FreeRTOS\Debug\Obj\tasks.o]

Error[Li005]: no definition for "pvPortMalloc" [referenced from D:\Project\Cnt-FreeRTOS\Debug\Obj\tasks.o]

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

лучше б что по делу сообщили.

:07: Тогда почему удивляетесь, что лезут ошибки линковщика?
потому что выбор не большой, или ошибки линковщика, или компилятора

portasm.s79

Error[3]: Invalid #include file name C:\Program Files\IAR Systems\Embedded Workbench 5.2 Evaluation\ARM\INC\DLib_Defaults.h 41

Error while running Assembler

ругается на эту строку

#include _DLIB_CONFIG_FILE_HEADER_NAME

файла DLib_Defaults.h

Зато автор FreeRTOS не считает извращением и использует. Отсюда и:
это он пускай сколько влезет использует, когда есть аппаратная поддержка, а когда нет, изволь отключить, а мне от его оси только переключалка нужна.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

потому что выбор не большой, или ошибки линковщика, или компилятора

А на какие ошибки, по-вашему, следует в первую очередь обращать внимание?

Если ассемблер обломался на компиляции, то уж линкер тем более упадет, когда не сможет найти нужные метки.

 

это он пускай сколько влезет использует, когда есть аппаратная поддержка, а когда нет, изволь отключить, а мне от его оси только переключалка нужна.

Аппаратная поддержка кучи (heap)? С MMU не путаете?

 

 

...мне от его оси только переключалка нужна.

Если уж Вы собираетесь перелопачивать FreeRTOS под свои нужды, то подобных вопросов (ошибки линкера, ассемблера etc) возникать не должно в принципе.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Все вокруг плохие, один я хороший. Не нравится FreeRTOS - не используй. Если требует много ресурсов - есть scmRTOS, уж компактнее, наверное, не бывает, или tnkernel, или еще куча чего. А когда человек готовый проект не может собрать, тут уж чего скажешь?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А на какие ошибки, по-вашему, следует в первую очередь обращать внимание?

Если ассемблер обломался на компиляции, то уж линкер тем более упадет, когда не сможет найти нужные метки.

по ассемблеру я не вижу откуда проблема появляется, там такие файлы не инклудятся, и ошибка явно глюк компилятора.

Аппаратная поддержка кучи (heap)? С MMU не путаете?
не путаю, нормальную кучу лучше с MMU совместно пользовать, а то сильно дырявый сыр получится.

Если уж Вы собираетесь перелопачивать FreeRTOS под свои нужды, то подобных вопросов (ошибки линкера, ассемблера etc) возникать не должно в принципе.
судя по скудной док-ии, я быстрее напишу тупую переключалку сам.

 

Все вокруг плохие, один я хороший. Не нравится FreeRTOS - не используй. Если требует много ресурсов - есть scmRTOS, уж компактнее, наверное, не бывает, или tnkernel, или еще куча чего. А когда человек готовый проект не может собрать, тут уж чего скажешь?
где вы видели готовый проект под LPC2368 для IAR ARM 5.2 ???

а готовое под IAR не конвертится в IAR ARM 5.2

и потом, сегодня первый раз сел посмотреть что это за ...

и уже прыгать на другое ?

может сразу свое писать ? чтоб не терять время.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

по ассемблеру я не вижу откуда проблема появляется, там такие файлы не инклудятся, и ошибка явно глюк компилятора.

не путаю, нормальную кучу лучше с MMU совместно пользовать, а то сильно дырявый сыр получится.

судя по скудной док-ии, я быстрее напишу тупую переключалку сам.

 

где вы видели готовый проект под LPC2368 для IAR ARM 5.2 ???

а готовое под IAR не конвертится в IAR ARM 5.2

и потом, сегодня первый раз сел посмотреть что это за ...

и уже прыгать на другое ?

может сразу свое писать ? чтоб не терять время.

 

Боже мой, какая каша в голове у человека.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

из вас помощники как из меня балерина

в portasm.s79

закоментировал

//#include "FreeRTOSConfig.h"

и проект собрался,

еще добавил heap_2.c

не знаю тот или не тот, не важно, потом разберусь.

 

PS: тут случаем ни кто икону дяди билла не молится ? :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

не путаю, нормальную кучу лучше с MMU совместно пользовать, а то сильно дырявый сыр получится.

FreeRTOS'у куча нужна только под TCB и стеки задач, раз уж очереди не используются. В дальнейшем пользоваться ей никто не заставляет.

 

судя по скудной док-ии, я быстрее напишу тупую переключалку сам.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Боже мой, какая каша в голове у человека.
В писании сказано, не поминай имя его всуе :) Ты че заповеди нарушаешь ?)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

и проект собрался,

Ну и толку в этом? Для сборки под пятой версией сначала документ по миграции c V4.x почитайте, а потом шумите. Еще разберитесь в отличии LPC21xx от LPC23xx....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

из вас помощники как из меня балерина

Если будет выступать, я пойду смотреть ©

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

FreeRTOS'у куча нужна только под TCB и стеки задач, раз уж очереди не используются. В дальнейшем пользоваться ей никто не заставляет.
хорошо если так, тогда я поурежу ему аппетиты, а то мне буфера нужны будут большие.

Если нужна именно тупая переключалка, то возьмите куски из \portable и пользуйтесь на здоровье.
та зачем в чужом коде разбираться, вырезая куски, лучше настройками ОС лишнее по отключать.

 

Ну и толку в этом? Для сборки под пятой версией сначала документ по миграции c V4.x почитайте, а потом шумите. Еще разберитесь в отличии LPC21xx от LPC23xx....
а зачем его читать ? я сразу 5.0.2 и скачал, ни куда ни откуда не мигрировал :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

хорошо если так, тогда я поурежу ему аппетиты, а то мне буфера нужны будут большие.

Какие аппетиты??? Это память для ваших же задач.

 

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

Правильно: разбираться не хотим, документацию (которой якобы нет) читать не хотим, будем крутить настройки. Или подождем, когда дядя Билли визард напишет? :)

 

а зачем его читать ? я сразу 5.0.2 и скачал, ни куда ни откуда не мигрировал :)

IAR, а не FreeRTOS.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Какие аппетиты??? Это память для ваших же задач.
в настройках что я скопировал, чет многовато под кучу памяти выделяют.

Правильно: разбираться не хотим, документацию (которой якобы нет) читать не хотим, будем крутить настройки. Или подождем, когда дядя Билли визард напишет? :)
та его визардами только обезьян пугать :) разбираться хотим, там утрамбовано как-то не логично, по сути не вижу толковых документов, в основном API описаны.

IAR, а не FreeRTOS.
IAR ARM я 5.2 скачал, а FreeRTOS 5.0.2 где скачал не помню, файл называется FreeRTOSV5.0.2.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...