|
FreeRTOS LPC2368 Rowley/uIP перенести на IAR |
|
|
|
May 29 2007, 09:41
|
Частый гость
 
Группа: Свой
Сообщений: 123
Регистрация: 11-01-06
Пользователь №: 13 032

|
Есть МСВ2360, и есть свежый порт http://www.freertos.org/portlpc2368uIP.htmlНадо будет сделать похожее на своем железе, которое уже через месяц будет готово, пока есть желание поиграться с отладочником и софтом. Скачал поставил CW проект компилится, посмотрел его структуру. Всегда работал с IARом, хочу перенести код туда. Вопросы: - ОСь никогда сам не портировал, хотя пользовался DSP/BIOS как ОСРВ работает хорошо представляю. Начал формировать проект в IARе - такое чувство что делаю что-то не через то место. Как правильно работать с такими большими проектами, какие есть программные средства чтобы управлять проектом с осью? - к CW подцепил сеггеровский драйвер J-Link, а он отказывается работать. Вообще из CW можно прошить кристалл J-Link'ом?
|
|
|
|
|
 |
Ответов
|
May 29 2007, 10:08
|
Частый гость
 
Группа: Свой
Сообщений: 123
Регистрация: 11-01-06
Пользователь №: 13 032

|
Цитата(zltigo @ May 29 2007, 14:53)  На какие волшебные средства 'управления' рассчитываете? В CW проект разбит на 4 папки демо, ось, стек и системные файлы. Причем по самим папкам тоже логики нифига никакой в демо кроме самой демки куча файлов из разных папок фриртоса. Даже перетаскивать проект в IAR и то гемор приходится куски по разным папкам собирать логики никакой. Может просто файлы по папкам как-то разложить, отдельно приложение отдельно ось отдельно стек, а потом также и проект разбить. Вообщем хочется чтобы все лежало на своих местах а не кучей.
|
|
|
|
|
May 29 2007, 10:25
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(dmyl @ May 29 2007, 13:08)  В CW проект разбит на 4 папки демо, ось, стек и системные файлы. Ну вместо demo - какое-то количество уже Ваших файлов, а остальное оставить как есть, ибо логика там присутствует и дальнейшая структура при сопровождении ядра будет именно такая. Впрочем, если Вы абсолютно уверены, что никакие другие компиляторы и контроллеры Вы использовать не будете, то можно все внутри этих трех упростить. Цитата Причем по самим папкам тоже логики нифига никакой Простите, логика есть. http://www.freertos.org/ -> Informations->Fundamentals->Source Organisation Цитата в демо кроме самой демки куча файлов из разных папок фриртоса. Естественно. Цитата Может просто файлы по папкам как-то разложить, отдельно приложение отдельно ось отдельно стек ОНИ ТАК УЖЕ ЛЕЖАТ.
Сообщение отредактировал zltigo - May 29 2007, 10:38
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
May 29 2007, 10:48
|
Частый гость
 
Группа: Свой
Сообщений: 123
Регистрация: 11-01-06
Пользователь №: 13 032

|
Цитата Ну вместо demo - какое-то количество уже Ваших файлов Это ясно, демку оттуда выкинуть и будет папка приложения. Цитата Впрочем, если Вы абсолютно уверены, что никакие другие компиляторы и контроллеры Вы использовать не будете, то можно все внутри этих трех упростить. Компилятор пожалуй нет, IAR пока меня устраивает. Контроллеры возможно и другие но маловероятно что не NXP.
|
|
|
|
|
May 30 2007, 08:07
|
Частый гость
 
Группа: Свой
Сообщений: 123
Регистрация: 11-01-06
Пользователь №: 13 032

|
Цитата(zltigo @ May 29 2007, 20:56)  Глянул lwIP мельком - это макрос  и он должен быть просто определен и проблем не будет. Но стиль написания, конечно, дурацкий  Там не lwIP а uIP, но не суть. Макрос разрыл в проекте CW он структуру делает packed. Что-то в IARe мне не удалось его заставить понять исходный код. Перенес имена структур вместо этого PACK_STRUCT_END. Помогает, но такие косяки лезут толпами. Наверное это неправильный путь переделывать из CW порта на IAR, запустить порт малой кровью под ИАРом все равно не получается, а если все ломать - то наверное лучше взять порт на ближайший LPC но ИАРовский, портировать его на 2368, а потом уже туда втыкать стек и все остальное.
|
|
|
|
|
May 30 2007, 08:22
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(dmyl @ May 30 2007, 11:07)  Там не lwIP а uIP, но не суть. Макрос разрыл в проекте CW он структуру делает packed. Что-то в IARe мне не удалось его заставить понять исходный код. То, что он делает, это понятно, но то, что кто-то попытался извратиться и вместо более-менее общепринятых вариаций на тему #pragma pack использовать более узкоспециализированное это уже плохо. Все дивные макросы дефинировать в "ничего" и использовать или прямые указания #pragma pack( push, 1 ) #pragma pack( pop ) либо через #include их-же через внешние файлы. Цитата Перенес имена структу... Я непонял, что Вы сделали, но все очень просто и я описал это выше. Цитата Наверное это неправильный путь переделывать из CW порта на IAR Почему?????
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
May 30 2007, 08:35
|
Частый гость
 
Группа: Свой
Сообщений: 123
Регистрация: 11-01-06
Пользователь №: 13 032

|
Цитата(zltigo @ May 30 2007, 13:22)  То, что он делает, это понятно, но то, что кто-то попытался извратиться и вместо более-менее общепринятых вариаций на тему #pragma pack использовать более узкоспециализированное это уже плохо. Все дивные макросы дефинировать в "ничего" и использовать Так и пробовал - ИАР почему то не понял. Цитата или прямые указания #pragma pack( push, 1 ) #pragma pack( pop ) либо через #include их-же через внешние файлы. Или я не понял или прямые указания надо все равно вбивать перед определением структуры. Да я чего-то код правлю и правлю, уже хидера от стека переделал, чтобы свои не цеплялись перенес все в новый каталог - получается уже развалил структуру файлов. И при этом я еще и не брался за папку систем а там вообще на первый взгляд сплошные кросворковские подключения. Просто ломается рабочий код, к тому моменту как он начнет компилиться он перестанет работать. Мне уже кажется что проще пойти с другой стороны взять ЛПСишный ИАРовский порт попроще - и портировать его на 2368, там вроде проще а потом в рабочий код надстраивать стеки.
|
|
|
|
|
May 30 2007, 08:45
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(dmyl @ May 30 2007, 11:35)  Так и пробовал - ИАР почему то не понял. Он не мог не понять  значит ошиблись. Цитата Или я не понял или прямые указания надо все равно вбивать перед определением структуры. Да. Но с тем-же самым, но в #include получается переносимее, ибо в основном файле уже нет специфики компилятора, а в сам include можно напихать распознавание кучи компиляторов и пользоваться им всегда и везде. Цитата Мне уже кажется что проще пойти с другой стороны взять ЛПСишный ИАРовский порт попроще - и портировать его на 2368, там вроде проще а потом в рабочий код надстраивать стеки. Примерно один черт, единственно, если все впервой и большей частью  по наитию, то получается, что идти "от рабочего" кода действительно несколько спокойнее.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
May 30 2007, 09:11
|
Частый гость
 
Группа: Свой
Сообщений: 123
Регистрация: 11-01-06
Пользователь №: 13 032

|
Цитата(zltigo @ May 30 2007, 13:45)  Он не мог не понять  значит ошиблись. Я ставил пустой дефайн в опциях проекта в предопределенные символы, странно если пустой дефайн в хидеренаписать работает, а из опций нет. Цитата Да. Но с тем-же самым, но в #include получается переносимее, ибо в основном файле уже нет специфики компилятора, а в сам include можно напихать распознавание кучи компиляторов и пользоваться им всегда и везде. С инклудом не понял все равно, как можно не меняя хидер uip.h на место PACK_STRUCT_END воткнуть #pragma pack - он же вроде бы как должен быть перед определением структуры.
|
|
|
|
|
May 30 2007, 09:31
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(dmyl @ May 30 2007, 12:11)  как можно не меняя хидер uip.h на место PACK_STRUCT_END .... Так, давайте медленно и печально. Первый вопрос где Вы вообще смогли увидеть PACK_STRUCT_END и прочие паковочные макросы в uIP подчеркиваю в uIP а не lwIP стеке. В lwIP, где они действительно присутствуют для работы c include просто: Код #define PACK_STRUCT_USE_INCLUDES #define PACK_STRUCT_BEGIN #define PACK_STRUCT_STRUCT #define PACK_STRUCT_END И в два файла (у меня они по жизни называются packon.h и packoff.h а у авторов стека соответственно bpstruct.h и epstruct.h ) Мои файлы в приложении. Можете их или переименовать, или заинклюдить  еще раз в авторские имена.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
May 30 2007, 10:34
|
Частый гость
 
Группа: Свой
Сообщений: 123
Регистрация: 11-01-06
Пользователь №: 13 032

|
Цитата(zltigo @ May 30 2007, 14:31)  Так, давайте медленно и печально. Первый вопрос где Вы вообще смогли увидеть PACK_STRUCT_END и прочие паковочные макросы в uIP подчеркиваю в uIP а не lwIP стеке. В хидере uip.h, также uip_arp.h там я правил точно  Может проблема в том что я смотрю в UIP из комплекта порта фриртоса? Цитата В lwIP, где они действительно присутствуют для работы c include просто: Код #define PACK_STRUCT_USE_INCLUDES #define PACK_STRUCT_BEGIN #define PACK_STRUCT_STRUCT #define PACK_STRUCT_END Тут все ясно, незнаю почему не работало если определения вставлены в опции предефайна проекта, другие дефайны там же вроде проканали. Цитата И в два файла (у меня они по жизни называются packon.h и packoff.h а у авторов стека соответственно bpstruct.h и epstruct.h ) Мои файлы в приложении. Можете их или переименовать, или заинклюдить  еще раз в авторские имена. Я понял - предлагается PACK_STRUCT_**** заменить пустыми дефайнами, а директивы #pragma pack распространить инклудом на весь проект. Так? Худо бедно стек скомпилил перешел к другим папкам пытаюсь разобраться дефайнами portENTER_SWITCHING_ISR(); portEXIT_SWITCHING_ISR(...); чего-то там тоже неблагополучно ИАР теряет скобки Error[Pe125]: expected a "(" Сразу еще такой вопрос, в CW порте используется portmacro и portISR из папки GCC, как в ИАРе быть с атрибутами naked и signal? __irq?
|
|
|
|
|
May 30 2007, 12:53
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(dmyl @ May 30 2007, 13:34)  В хидере uip.h, также uip_arp.h там я правил точно  Может проблема в том что я смотрю в UIP из комплекта порта фриртоса? А я тогода куда смотрю  Цитата Я понял - предлагается PACK_STRUCT_**** заменить пустыми дефайнами Именно так в оригинале и задумано - варьировать ими в зависимости от возможностей компилятора. Цитата , а директивы #pragma pack распространить инклудом на весь проект. Так? На весь замного будет - только на пакованные структуры правильнее. Цитата Худо бедно стек скомпилил перешел к другим папкам пытаюсь разобраться дефайнами portENTER_SWITCHING_ISR(); portEXIT_SWITCHING_ISR(...); А чего с ними разбираться - берете готовые из IAR порта и все.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
May 30 2007, 13:04
|
Частый гость
 
Группа: Свой
Сообщений: 123
Регистрация: 11-01-06
Пользователь №: 13 032

|
Цитата(zltigo @ May 30 2007, 17:53)  А я тогода куда смотрю  У меня FreeRTOS\Demo\Common\ethernet\uIP\uip-1.0\uip\uip.h 46069 03.04.2007 15.35 Цитата На весь замного будет - только на пакованные структуры правильнее. Тогда снова не понял в каком месте надо поключить эти инклуды. Тексты где этиструктуры втсречаются я так понимаю договорились не править? Цитата А чего с ними разбираться - берете готовые из IAR порта и все. Да вот смотрю порт на 2129, нету там таких вообще
|
|
|
|
Сообщений в этой теме
dmyl FreeRTOS LPC2368 Rowley/uIP перенести на IAR May 29 2007, 09:41               zltigo Цитата(dmyl @ May 30 2007, 16:04) У меня ... May 30 2007, 13:17                dmyl Цитата(zltigo @ May 30 2007, 18:17) Как д... May 30 2007, 13:57                 zltigo Цитата(dmyl @ May 30 2007, 16:57) Встреча... May 30 2007, 14:12                  dmyl Цитата(zltigo @ May 30 2007, 19:12) _Н_Е_... May 31 2007, 07:11                   zltigo Цитата(dmyl @ May 31 2007, 10:11) Там они... Jun 1 2007, 11:22                    dmyl Цитата(zltigo @ Jun 1 2007, 16:22) Это об... Jun 1 2007, 11:25             Waso Цитата(dmyl @ May 30 2007, 18:34) ... как... Oct 30 2007, 09:04              Alechek Цитата(Waso @ Oct 30 2007, 15:04) Как быт... Oct 30 2007, 13:46 3.14 Задумал, конвертить этот проект в Кейл.
Странно, т... Jun 1 2007, 11:08 3.14 Ничего не понимаю, поставил CW, скопировал проектн... Jun 4 2007, 10:59 dmyl Цитата(3.14 @ Jun 4 2007, 15:59) Ничего н... Jun 4 2007, 12:16
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|