Программа Simple ThreadX перестает работать после изменения tx_port.h для демонстрационной программы BSD
Я создаю приложение для микроконтроллера ATSAME70. Я пробую ThreadX с NetXDuo. Я компилирую библиотеки, связанные с ThreadX, отдельно от моего фактического приложения, а затем копирую файлы libs, .c и .h из папки threadX в каталог моего приложения. Я хотел опробовать демонстрационную программу BSD, но после внесения изменений, предложенных в [https://docs.microsoft.com/en-us/azure/rtos/netx-duo/netx-duo-bsd/chapter2](NetX Duo BSD Addon) перестает работать тестовая программа мигания светодиода, которая работала до внесения изменений, перестает работать.
Шаги:
Скомпилируйте ThreadX с FileX и NetXDuo без изменения файла tx_port.h.
Скопируйте библиотеки и соответствующие файлы .c и .h для threadX, fileX и netXDuo в каталог приложения.
Создайте приложение.
Программа мигания светодиода работает.
Скомпилируйте ThreadX с FileX и NetXDuo после изменения файла tx_port.h. Пока не копируйте измененный файл tx_port.h в каталог приложения.
Скопируйте библиотеки для threadX, fileX и netXDuo в каталог приложения.
Создайте приложение.
Программа мигания светодиода по-прежнему работает. На данный момент я не включил связанный с BSD код в основное приложение. Я только что обновил библиотеки threadx.
Скопируйте измененный файл tx_port.h в каталог приложения.
Создайте приложение.
Светодиод мигает, программа перестает работать. Программа застряла в tx_kernel_enter().
Изменение, которое я сделал в tx_port.h, переопределило TX_THREAD_EXTENSION_3:
#define TX_THREAD_EXTENSION_3 int bsd_errno;
Может ли кто-нибудь сказать мне, где я ошибаюсь?
Для компиляции библиотек netxduo с помощью threadx я просто копирую исходные файлы filex и netxduo, полученные из github, в папку threadx и добавляю команды add_subdirectory в CMakeLists в threadx. Для аддона BSD я просто обновляю файл tx_port.h. Нужно ли мне включать файлы nxd_bsd.h и nxd_bsd.c при создании библиотек для threadx и netxduo? В настоящее время я не использую файлы nxd_bsd для создания библиотек. Я использую их только в основном приложении.