Доброго времени суток!
Взял за основу IAR-овский пример от Atmel basic-emac-uip-helloworld-project. Немного доработал hello-world.c:
в хенделере socket-соединения формирую массив данных, достаточно большой и разрезая массив отправляю socket-клиенту. Вот фрагмент исходника:
Проблема следующая : передача данных происходит ну очень медленно - порядка 5Кб/сек. Можно ли каким то образом поднять скорость интерфейса?
Приветствую Fireball.
Не подскажешь на основе какого транспортного протокола создавал сокет (UDP, TCP). и где можно найти исходник от Atmel - basic-emac-uip-helloworld-project.
Собственно возник еще вопрос:
Решил немного поэкспериментировать с вышеприведенным проектом и заменил функцию handle_connection на следующую:
В результате после подключения через сокет получил следующее в консоль ARM-а:
Загрузку в ARM и последующий цикл значений опускаю....
Вопрос следующий - почему меняется значение переменной после вызова метода PSOCK_SEND? И как с этим бороться?
Собственно курение мануала решило последнюю проблему.
Суть заключается в том что в данном случае нельзя использовать локальные переменные.
Ссыль: Мануал по Protosocket
Так же решился и первый вопрос но достаточно неожиданным способом (экспериментальным). Передачу информации существенно ускоряет использование чтения из сокета после отправки пакета. То есть код:
Работает НАМНОГО быстрее чем приведенный в первом сообщении.
Может кто-то подскажет с чем это связано?