Раньше я тут жаловался, что компилятор не замечает детские ошибки в коде. Связано это с тем, что в опциях компилятора указано -w, которое отключает все предупреждения. Мне показалось это не правильным, я вернул предупреждения. Их оказалось так много, что некоторые, достаточно безобидные, на мой взгляд, я все же выключил.
Это сообщите в Realtek, конкретно в
Ameba, которые слепили такой SDK с рекомендованными опциями трансляции и в GCC, т.к. аргументы компилятору даются последовательно [inline]-w -Wall -Werror ...[/inline]
Я пока пытаюсь только распутать этот клубок, спутанный другими...
Константы FEEP_ID_WIFI_CFG и FEEP_ID_WIFI_AP_CFG имеют разное определение в разных файлах, какое выбрать я не знаю.
Любые, хидеры от разных примеров... ID - номер сохранения конфигурации, который вам понравиться и не встречается в других сохранениях...
Константа DEF_AP_SECURITY не правильная инициализация, надо 1
Это вам так "хотчестя", а wifi_api.c не дописан и реальный передаваемый тип там [inline]rtw_security_t[/inline].
Структура wifi_st_cfg поля .flg и .security ошибка в инициализации
В функции wifi_run_ap вызов _wext_cmp_ssid с ошибочным параметром
Константа RTW_SECURITY_UNKNOWN установлена отрицательной (-1), а ее сравнивают с unsigned[/QUOTE]Та и фиг с ней - там сравнение [inline]==[/inline], а другие только 9 шт положительные...
В функции _wifi_scan_done_hdl вызов (*pscan_rec->gscan_result_handler)(pscan_rec) Параметр pscan_rec совсем не того типа какой надо, не нашел как исправить, убрал этот вызов вообще, т.к. не понял что он делает.
В функции api_wifi_scan вызов _wifi_scan_networks(scan_result_cb) Параметр scan_result_cb не того типа как надо. Сделал преобразование типов, но не уверен что так и надо.
Всё там Ok. Делалось по "реверсу" (дизасм и т.д.).
Инициализация lwip_host_name больше размера lwip_host_name
#define LWIP_NETIF_HOSTNAME_SIZE 16
#define DEF_HOSTNAME "rtl871x"
8 символов из 16
8 < 16.
Функция analogin_read вызов RtkADCReceiveBuf с ошибочным аргументом
Нормальные там аргументы.
Функция loadUserImges вызов load_segs с ошибочным параметром, но поскольку адрес совпадает, то все работает
Правильный там параметр
Как вывод, все же для не сильно опытных программистов, типа меня, предупреждения лучше вернуть. Время, потраченное на чистку кода, потом окупится обнаружением простых ошибок.
Ну надо кому-то чистить, одному это не под силу - перелапатить весь SDK + "реверс", добавки и его исправления для сотен примеров (старых и новых) на все случаи жизни...
Со временем, когда оно будет, исправиться. Git пока не имеет даже описания что это за безобразие, т.к. первостепенная задача там слить все прошлые SDK к новой, версии 4.0 и состыковать с имеющимися исходниками и "реверсом" закрытых частей + уже пачку исправлений, в основном для HAL и внутренних потрахов чипа... К примеру для USB, SDIO, SPI, GPIO, ... контроллеров (RTL8195A)...