Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: uart-rc232
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему
Gyga
Мне требуется на плате с BlackFin 537 поднять сеть без линукс.
Создан базовый сетевой проект он настроен с помощью TCP/IP Configuration Plugin под статические IP.
Отладка ведётся с помощью тестера и вывода битиков на порт G.
Определено что программа виснет в функции
adi_dev_Control ( lan_handle, ADI_ETHER_CMD_START, NULL);
то есть, как я понял из руководства при запуске драйвера.
Поделитесь пожалуйста своими соображениями.
Gyga
Так как отсутствуют средства сообщения с платы, то приходится посылать на порт определённые числа и смотреть напряжение тестером.
Мои отношения с BlackFin только начинаются, наверное, я что-то неправильно делаю.
WEST128
Без средств отладки (хотя бы UART подключите и через него шлите на ПК) вы будете очень долго разбираться, особенно без опыта с данным процессором. Плата ваша или фирменная ?
Gyga
Плата самодельная, почти копия фирменной. Сеть под линуксом работает. Можно пример по UART на С, а то в стандартном примере на ассемблере я ничего не понял. Есть мысли где может быть глюк?
Ciyoha
Скажите мыло, я примерчик отправлю.
Gyga
Можно пример передачи данных с blackfin на компьютер через uart
zltigo
Цитата(Gyga @ Jun 5 2008, 15:45) *
Можно..

А можно для начала заглянуть хотя-бы в примерчики идущие в комплекте, VDSP?
Или, если вдруг не понятно, постаратся задать более осмысленный вопрос.
Moderator:
И кросспоты на этом форуме совершенно однозначно не разрешены. В виде исколчения не удалил, а потратил время на перенос.
Gyga
мне не понятно как из стандартного примера выкинуть всё лишнее. Например calbackю
Так же непонятно где задаётся номер UARTA? Так жея непонял способ выдачи сообщения на светодиоды.
Gyga
о спасибо!
bejnoi@yandex.ru
uriy
Цитата
мне не понятно как из стандартного примера выкинуть всё лишнее.
Есть такая кнопочка Delete на клаве!
Цитата
Так же непонятно где задаётся номер UARTA?
Читайте Hardware Reference.
Цитата
Так жея непонял способ выдачи сообщения на светодиоды.
Уверен, что вы даже не взглянули на схему электрическую принципиальную.
Ciyoha
bejnoi@yandex.ru <- по данному адрессу письмо отправить не удаеться, говорят нет такого.
На счет зависания в функции adi_dev_Control ( lan_handle, ADI_ETHER_CMD_START, NULL), вы не забыли подключить .tcp файл c настройками сети (в нем mac,ip, тип протокола)?
Gyga
извиняюсь мыло berjnoi@yandex.ru
tcp файл подключен проверил. Да к тому же он сразу подключается к проекту.
Gyga
Пытаюсь завести базовый проект с uart.
При открытии порта узнаю что не хватает памяти. Увеличил массивы в 2 не помогло.
adi_dev_Open(DeviceManagerHandle, &ADIUARTEntryPoint, 0, NULL, &DriverHandle,
ADI_DEV_DIRECTION_BIDIRECTIONAL, NULL, DCBManagerHandle, Callback);
Ciyoha
Если ваша самодельная плата, являеться копией ez-kid bf537 (SDRAM таже), то при создание проекта с lwip в него автоматически добовляеться все необходимое для работы сети (пинговаться по крайне мере она должна, но для стабильной работы необходимо переместить ether_stack_block[] в некэшируемый блок памяти).
Gyga
Память таже, и количество тоже. А как поместить ether_stack_block[] в некэшируемый блок памяти?
Может у меня VIsualDSP 4.5 глючный и к нему надо патч закачать? Или другую версию попробовать?
Ciyoha
Цитата(Gyga @ Jun 16 2008, 14:45) *
Память таже, и количество тоже. Может у меня VIsualDSP 4.5 глючный и к нему надо патч закачать? Или другую версию попробовать?


У меня тоже VIsualDSP 4.5, мне кажеться у вас дело не в студии. Попробуйте пересоздать проект.

Цитата(Gyga @ Jun 16 2008, 14:45) *
А как поместить ether_stack_block[] в некэшируемый блок памяти?


Выше int system_init() ставите:
#pragma align 4
section("MEM_Ethernet_pool")
char ether_stack_block[ETHER_STACK_SIZE];

закоментируйте //ether_stack_block = (char *) malloc ( ETHER_STACK_SIZE ); в самой функции

затем в ldf файле, за надписью /* This code is preserved if the LDF is re-generated. */
выделяете память под стек:
mem_ethernet_stack_pool { TYPE(RAM) START(0x03c00000) END(0x03ffffff) WIDTH(8) }

и ниже после надписи: /* This code is preserved if the LDF is re-generated. */
пишете:
MEM_Ethernet_pool
{
INPUT_SECTION_ALIGN(4)
INPUT_SECTIONS( $OBJECTS(MEM_Ethernet_pool)$LIBRARIES(MEM_Ethernet_pool))
} > mem_ethernet_stack_pool

затем в cplbtab.c прописываем чтоб адресса где расположен mem_ethernet_stack_pool не кэшировались:
ниже // CPLBs covering 64MB
вместо {0x03c00000, (PAGE_SIZE_4MB | CPLB_IDOCACHE)}, ставим {0x03c00000, (PAGE_SIZE_4MB | CPLB_INOCACHE)}.
Gyga
уменя линковчик заматерился на
mem_ethernet_stack_pool { TYPE(RAM) START(0x03c00000) END(0x03ffffff) WIDTH(8) }
MEM_Ethernet_pool
{
INPUT_SECTION_ALIGN(4)
INPUT_SECTIONS( $OBJECTS(MEM_Ethernet_pool)$LIBRARIES(MEM_Ethernet_pool))
} > mem_ethernet_stack_pool

[Error el1010] "pr3.ldf":153 Parsing error: Expected a linker description file command [MEMORY | PROCESSOR | PLIT | SHARED_MEMORY | DYNAMIC | ARCHITECTURE | $Macro | INCLUDE]

[Error el1011] "pr3.ldf":153 Syntax error (missingToken): 'mem_ethernet_stack_pool' was unexpected
Ciyoha
Выше mem_ethernet_stack_pool { TYPE(RAM) START(0x03c00000) END(0x03ffffff) WIDTH(8) }
надо отгрызть память от MEM_SDRAM0_BANK3 тоесть вот так:

MEM_SDRAM0_BANK3 { TYPE(RAM) START(0x03000000) END(0x03bfffff) WIDTH(8) }
mem_ethernet_stack_pool { TYPE(RAM) START(0x03c00000) END(0x03ffffff) WIDTH(8) }
Gyga
У меня нет файла cplbtab.c и нет файла с {0x03c00000, (PAGE_SIZE_4MB | CPLB_IDOCACHE)}
Такой ещё вопрос каким значением должен быть прописан MAC адрес?
Ciyoha
Цитата(Gyga @ Jun 18 2008, 10:57) *
Такой ещё вопрос каким значением должен быть прописан MAC адрес?

MAC можно брать любой свободный (например 00eeaa0000) главное чтоб первые две цифры были 00, перечень занятых адресов можно посмотреть в инете.

Цитата(Gyga @ Jun 18 2008, 10:57) *
У меня нет файла cplbtab.c и нет файла с {0x03c00000, (PAGE_SIZE_4MB | CPLB_IDOCACHE)}


файл называться должен так "Названиепроекта_cplbtab.c" генерируеться он автоматически после установки в опциях проекта в разделе Cache and Memory protection следующих настроек:
Enable instruction cache
Enable data cache Bank1
галочку в поле Generate a customizable CPLB table
и точечку в Write-yhrough cache

и ещо когда все сделаете не забудьте поставить в External Memory точечку на custom, а то все что вы писали в ldr файле прикомпеляции замениться на стандартное.
Gyga
Сделал новый проект и всё по рецепту. Не помогло буду смотреть где виснет
Gyga
Я наверное что-то не так сделал. Настройки памяти держатся 1 компиляцию. Потом настройки памяти слетают. Галочка стоит.
Имеет ли значение куда я загружаю программу (0х1000000)?
Такой ещё вопрос section оказывает влияние только на данные или на функции тоже?
Ciyoha
Цитата(Gyga @ Jun 20 2008, 09:06) *
Я наверное что-то не так сделал. Настройки памяти держатся 1 компиляцию. Потом настройки памяти слетают. Галочка стоит.

Когда все сделаете не забудьте поставить в External Memory точечку на custom, а то все что вы писали в ldr файле прикомпеляции замениться на стандартное. Точно сделали?

Цитата(Gyga @ Jun 20 2008, 09:06) *
Имеет ли значение куда я загружаю программу (0х1000000)?


Ваще не понял вопроса: 0х1000000 это ведь помоему адресс в SDRAM

Цитата(Gyga @ Jun 20 2008, 09:06) *
Такой ещё вопрос section оказывает влияние только на данные или на функции тоже?


какая section?, если вы имеете в виду секцию со стеком то она влияет только на работу сети, если не отключить кэш, то будет не стабильная работа с сетью.
P.S.
Купите, или одолжите у кого нить JTAG.
Gyga
Ciyoha благодарям вам UART завёлся.
Я гружу свою программу через ubut
tftp 0x1000000 имя
запускаю bootelf 0x1000000
так сказали кто писал на этой плате под линукс. (они были приходящие и теперь не работают)
JTAG я достать могу, как мне его использовать?
Gyga
С исчезновением настроек памяти я разобрался.
Теперь программа стала виснуть раньше как раз в инициализации стека.
Ciyoha
Ну что нашли в чем была неполадка?
Gyga
Нет не нашёл. Виснет она в инициализации драйвера. Что там такого делается? Что у меня не так.?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.