Вопрос или проблема
У меня есть 9 плат, работающих параллельно, которые загружают двоичный файл с TFTP-сервера, размещенного с помощью tftpd32, для программирования одного из их микроконтроллеров.
Каждая плата подключена к ПК, на котором работает TFTP-сервер, с помощью кабеля USB-C, и протокол связи используется Ethernet-over-USB.
Таким образом, создаются 9 Ethernet-адаптеров с 9 различными IP-адресами, и мне нужно запустить один экземпляр TFTP-сервера для каждого IP-адреса, потому что я думаю, что в tftpd32 можно привязать только один IP-адрес.
Вот схема, показывающая, как платы подключены к ПК:
Можно ли запустить 9 экземпляров tftpd32.exe с уникальным IP-адресом, привязанным к каждому экземпляру?
Я на Windows 10
Одного экземпляра достаточно.
Вам нужно отключить опцию Привязать TFTP к этому адресу, чтобы TFTP32/64 привязывался к любому локальному адресу.
Ответ или решение
Запуск нескольких экземпляров tftpd32 для TFTP-сервера
Введение
Работа с TFTP-сервером при программировании микроконтроллеров может быть связана с определенными трудностями, особенно когда дело касается одновременного подключения нескольких устройств. В вашем случае, когда требуется запускать 9 плат, подключенных к компьютеру через Ethernet-over-USB, важно рассмотреть возможность эффективного управления экземплярами tftpd32.
Проблема с многопоточностью
Изначально кажется, что для каждой платы следует запустить отдельный экземпляр tftpd32, так как по умолчанию приложение может связываться только с одним IP-адресом. Однако это может привести к излишнему усложнению конфигурации и нескольким запущенным процессам, что в свою очередь может вызвать дополнительные проблемы с сетью и ресурсами системы.
Решение: Использование одного экземпляра tftpd32
Одним из простейших и наиболее эффективных решений является запуск единственного экземпляра tftpd32, запретив его связываться с конкретным IP-адресом для использования интерфейсов. Это возможно сделать, отключив опцию "Bind TFTP to this address" в настройках приложения. Такой подход значительно упростит настройку и управление сервером.
Шаги для настройки:
- Запустите tftpd32.
- Перейдите во вкладку настроек.
- Найдите опцию "Bind TFTP to this address" и снимите с неё галочку.
- Введите директорию, из которой будет подаваться файл, и настройте другие параметры по мере необходимости.
- Запустите сервер.
При таком изменении tftpd32 будет принимать запросы от всех активных Ethernet-адаптеров вашей системы, что позволит удовлетворять запросы от всех 9 плат. Это в свою очередь упростит вам задачу, так как избежать многопоточного конфликта, возникающего из-за нескольких запущенных процессов.
Заключение
Запуск одного экземпляра tftpd32 без привязки к конкретному IP-адресу является оптимальным решением для реализации вашего проекта с 9 платами. Это не только улучшит производительность вашей системы, но и значительно упростит управляемость. Подходя к задаче с такой точки зрения, вы минимизируете вероятность возникновения ошибок и сложностей в работе с TFTP-сервером, возможно, даже ускоряя время загрузки для ваших плат.
Дополнительная информация
Если в будущем у вас возникнут дополнительные требования или изменения в проекте, tftpd32 также предоставляет возможность расширенной настройки, включая ограничение доступа и управление несколькими файлами, которые могут быть полезными когда у вас будет необходимость в дальнейшем масштабировании.