lons83
Участник-
Постов
69 -
Зарегистрирован
-
Посещение
Репутация
0 ОбычныйИнформация о lons83
-
Звание
Участник
Посетители профиля
950 просмотров профиля
-
да это я знаю про 8 сокетов. То есть Вы хотите сказать что на один сокет я не могу подключить одновременно более одного соединения? и если допустим мне к TCP_Server нужно 9 подключений TCP_CLIENT, то данная микросхема уже не подойдет?
-
Здравствуйте, у меня такая проблема: Имеется микросхема Wiznet w5300. Хочу сделать следующее: 1) беру сокет 0 -> открываю его как TCP SERVER ( ip 192.168.0.1 port 5000 ) -> и TCP CLIENT ( ip 192.168.0.2 port 5000 ) на другой стороне ко мне подключается. 2) Теперь я хочу к своему TCP SERVER одновременно подключить и второй TCP CLIENT ( ip 192.168.0.3 port 5000 ) -> подключение НЕ удаётся((( Вопрос: Кто-нибудь знает как на один сокет TCP SERVER подключить более одного TCP CLIENT ? или в w5300 такое не возможно и там соединение только точка-точка? Заранее спасибо за ответы.
-
как поменять адрес возврата из IRQ
lons83 ответил lons83 тема в ARM, 32bit
А можете еще раз мне обьяснить: Как произойдет вызов этого программного прерывания? с аппаратным все понятно... а вот с программным? ведь если я помещу func1() - в обработчик - это ни чем не будет отличаться от вызова обычной функции... а если в обычном цикле программы, то тогда как? по какому то флагу? Спасибо за книжку. Завтра скачаю и посмотрю... Кстати да... Вы правы... тут можно по разному это обыграть... надо подумать... -
как поменять адрес возврата из IRQ
lons83 ответил lons83 тема в ARM, 32bit
Не могли бы Вы здесь по подробнее.... тогда как мне задать вектор прерывания программного для func1(); ??? Ведь аппаратные вектора все заняты, а подставить func1(); под вектор с 0-31 не получается... да и не получиться наверно... Вообщем не понятно как указать что func1() - это программное прерывание... и как я понял оно будет вызываться из IRQ тогда зачем его делать программным?..... на практике у меня зависало... особенно если func1() --- довольно приличная функция - например обработка видео массива... и тогда все храниться в стеке и через 2 минуты забивается.... а если func1() вынести в общий цикл то все нормально работает.... просто нужно чтобы func1() запускался прямо после IRQ , а во время выполнения func1() происходит 3-4 вызова IRQ.... -
как поменять адрес возврата из IRQ
lons83 ответил lons83 тема в ARM, 32bit
Можно и так... Только в этом случае Вы не выходите из прерывания. И если func1() не закончиться выполнятся до повторного входа в IRQ... то получиться рекурсия и через некоторое время контроллер зависает!!!! Поэтому я и хочу чтобы переход был после выхода из прерывания -
как поменять адрес возврата из IRQ
lons83 опубликовал тема в ARM, 32bit
Здравствуйте, извините если такая тема уже повторялась. Но я никак не нашел ответа: Есть прога: #include func1 { .... } func2 { .... } func3 { .... } func4 { .... } IRQ // обработчик прерывания { .... } int main { while (1) { func1(); func2(); func3(); func4(); } } Предположим выполняется func3{} в этот момент срабатывает прерывание и передается обработчику IRQ после завершения IRQ, программа по адресу возврата возвращается к func3{}.... НО!!!!!! Как можно с помощью языка СИ сделать чтобы после возвращения из IRQ -> выполняться стала func1{} !!! ( поменять адрес возврата ) и уже после выполнения func1{} -> вернуться к func3{}; ?????????? Делал такое на ассмеблере, а тут как-то завис.... не понятно как в этом случае использовать ассемблерные вставки... а чтение программных прерываний ( SWI и SVC ) завели меня в тупик... Заранее спасибо. P.S. среда программирования Keil 4 . МК: stm cortex-m3 -
проблема с SPI
lons83 опубликовал тема в Форумы по интерфейсам
Здравствуйте, у меня такая проблема. Есть датчик фирмы Analog devices - ADT7310. Он работает по интерфейсу SPI. Датчик - Slave. Микроконтроллер ( далее МК) - Master. Диаграмма работы с режиме чтения приведена. Также выложен datasheet. Проблема: Ни как не могу прочитать данные с датчика!!! Если я правильно понимаю SPI в режиме Master у МК работает следующим образом: Записываются данный в регистр для передачи и одновременно(!!!) идет прием и передача данных по сигналу SCLK который генерирует мой МК в момент передачи. Судя по диаграмме датчика в режиме чтения, данные для чтения он выдает только после запроса на чтение данных. А как я могу тактировать SCLK для чтения данных если я в этот момент ничего не передаю. Была попытка слать на линию DIN ( всякий мусор) в момент когда на DOUT выставляются данные ( ну чтобы тактирование обеспечить)... но результа никакого нет((((( Кто-нибудь сталкивался с такой проблемой? Заранее спасибо)) уже подсказали. надо было передовать 0xFF; ADT7310.pdf -
проблема с SPI
lons83 ответил lons83 тема в Интерфейсы
Большое спасибо))) заработало))) блин так стыдно стало((( -
проблема с SPI
lons83 опубликовал тема в Интерфейсы
Здравствуйте, у меня такая проблема. Есть датчик фирмы Analog devices - ADT7310. Он работает по интерфейсу SPI. Датчик - Slave. Микроконтроллер ( далее МК) - Master. Диаграмма работы с режиме чтения приведена. Также выложен datasheet. Проблема: Ни как не могу прочитать данные с датчика!!! Если я правильно понимаю SPI в режиме Master у МК работает следующим образом: Записываются данный в регистр для передачи и одновременно(!!!) идет прием и передача данных по сигналу SCLK который генерирует мой МК в момент передачи. Судя по диаграмме датчика в режиме чтения, данные для чтения он выдает только после запроса на чтение данных. А как я могу тактировать SCLK для чтения данных если я в этот момент ничего не передаю. Была попытка слать на линию DIN ( всякий мусор) в момент когда на DOUT выставляются данные ( ну чтобы тактирование обеспечить)... но результа никакого нет((((( Кто-нибудь сталкивался с такой проблемой? Заранее спасибо)) ADT7310.pdf -
разобрался. все работает. вопрос не актуален.
-
wiznet vs keep alive
lons83 опубликовал тема в Fast Ethernet/Gigabit Ethernet/FibreChannel
Здравствуйте, заранее извиняюсь если тема не в той ветке. Проблема с Wiznet 5300 и с реализацией keep alive в нем. Открыл сокет TCP (клиент). Все хорошо. Обмен данными идет. Все прекрасно. Настроил keep alive. Но Кеер alive не работает. Отключаешь кабель и ничего не происходит, как-будто все нормально. Ни одной ошибке ни во флагах ни в состояниях. И Send keep тоже самое. Кто-нибудь с этим сталкивался. И как решить эту проблему? Заранее спасибо)))) -
програмные прерывания
lons83 опубликовал тема в Системы на ПЛИС - System on a Programmable Chip (SoPC)
Здравствуйте, у меня такая проблема: хочу организовать программное прерывание. С аппаратном нет проблем, а вот как сделать программное? Программное прерывание - функция, которая также вызывается как аппаратное прерывание только вызывается по флагу из главной программы. Я нашел что-то: #include "sys/alt_exceptions.h" -- Вопрос то ли это то что мне надо или нет? Если это то, тогда: Правильно я понимая что параметр CAUSE в функции alt_exception_result handler ( alt_exception_cause cause alt_u32 addr alt_u32 bad_addr ); равен 3 - Инструкция системного прерывания. Тогда чему равен параметр addr? и bad_addr ? И как вообще например вызвать программное прерывание, если допустим в главной программе какая-то переменная получила нужное значение? Буду очень признателен если кто-нибудь скинет какой-нибудь кусок прогаммы Заранее спасибо)))) -
а это как-то можно изменить? настройки где-то?
-
выкладываю скрины двух реализаций: 1) память 49Кбайт 2) память 50Кбайт P.S. сделан только SOPC. никаких остальных схем. Процессор самый слабый. Последние 2 фото - resource utilization by entity - для 50Кбайт