Jump to content

    

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: мне от ОСи нужен только переключатель задач, всякое динамическое выделение памяти на контроллере без аппаратной поддержки динамического распределения, считаю извращением и использовать не планирую. Так же не нужны очереди, т.к. буду свои писать, более приспособленные под мою задачу.

Share this post


Link to post
Share on other sites
Так например при подключении 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]

Share this post


Link to post
Share on other sites

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

: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 не считает извращением и использует. Отсюда и:
это он пускай сколько влезет использует, когда есть аппаратная поддержка, а когда нет, изволь отключить, а мне от его оси только переключалка нужна.

Share this post


Link to post
Share on other sites
потому что выбор не большой, или ошибки линковщика, или компилятора

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

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

 

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

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

 

 

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
А на какие ошибки, по-вашему, следует в первую очередь обращать внимание?

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

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

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

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

 

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

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

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

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

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

Share this post


Link to post
Share on other sites
по ассемблеру я не вижу откуда проблема появляется, там такие файлы не инклудятся, и ошибка явно глюк компилятора.

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

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

 

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

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

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

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

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

 

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

Share this post


Link to post
Share on other sites

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

в portasm.s79

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

//#include "FreeRTOSConfig.h"

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

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

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

 

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

Share this post


Link to post
Share on other sites
не путаю, нормальную кучу лучше с MMU совместно пользовать, а то сильно дырявый сыр получится.

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

 

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

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

Share this post


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

Share this post


Link to post
Share on other sites
и проект собрался,

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

Share this post


Link to post
Share on other sites
из вас помощники как из меня балерина

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

Share this post


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

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

 

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

Share this post


Link to post
Share on other sites
хорошо если так, тогда я поурежу ему аппетиты, а то мне буфера нужны будут большие.

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

 

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

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

 

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

IAR, а не FreeRTOS.

Share this post


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

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

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this