• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

JL SoC

8465

Member
Возможно, следует где-то тут поискать:
[/CODE]
Искал, там все четко. Переменные все записываются правильно в любом случае. Записываются они в область памяти, которая при софтресете сохраняется. После софтресета вызывается вышеуказанная функция и в param_result уже ошибка. Что происходит сразу после ресета и до запуска main, покрыто тайной. По логике, считывается флаг, путь до файла и производится его копирование, а если флешка не найдена, то ошибка 5а04. Вот и главный вопрос, ватафак, ведь флешка на месте? И как связаны некие свойства мп3 файлов с инициализацией файловой системы, эти мп3 в рабочем режиме играют, как и остальные. С какими то мп3 все проходит гладко, а какими то 5а04.
 

beacon

Member
в param_result уже ошибка.
Какая именно ошибка?
И как связаны некие свойства мп3 файлов с инициализацией файловой системы, эти мп3 в рабочем режиме играют, как и остальные. С какими то мп3 все проходит гладко, а какими то 5а04.
Боюсь, на этот вопрос тут вряд ли кто ответит. Там же и fs и sdmmc в библиотеках.
Можете, конечно, попробовать эти либы разобрать и декомпилировать...
 

8465

Member
Какая именно ошибка?
Вот эта 5а04 - UPDATA_DEV_ERR вместо желаемого 5а02 - UPDATA_SUCC. А до софтресета там 5а01 - UPDATA_READY.

И что явно заметно, когда прошивка неудачна, в логе всякий раз разный start cluster при инициализации файловой системы. И еще такая штука, если при софтресете успеть в нужное время передернуть флешку, то все проходит удачно. Что говорит о том, что инициализация неверная, либо она успевает как-то сброситься, а при передергивании инициализация опять происходит и весьма шустро.
 

beacon

Member
И что явно заметно, когда прошивка неудачна, в логе всякий раз разный start cluster при инициализации файловой системы. И еще такая штука, если при софтресете успеть в нужное время передернуть флешку, то все проходит удачно. Что говорит о том, что инициализация неверная, либо она успевает как-то сброситься, а при передергивании инициализация опять происходит и весьма шустро.
Ну дак, какой-то косяк в либах.
Можно только гадать, либо попытаться всё-таки декомпилировать.
 

8465

Member
Пока пытаюсь найти как сделать хард ресет вместо софт ресета. Есть такая ф-я? Что-то не могу найти пока.
 

8465

Member
Сейчас дежурный вариант - программное отключение флешки - dev_power_ctrl(usb, DEV_POWER_OFF) перед софтресетом. Кажется работает, но надо проверять на разных флешках. Пока работает доже без мп3 и быстрее стало.
 

8465

Member
Ну дак, какой-то косяк в либах.
Можно только гадать, либо попытаться всё-таки декомпилировать.
Косяки там на каждом шагу. Кажется из-за наслоении проектов, когда на основе одного проекта делают другое, потом третье и тд. И получается длиннющая матрешка, когда структура в структуре в классе в структуре в классе в структуре. Гадать можно вечно, метод научного тыка не работает. Декомпилировать, это слишком большой объем работы, хотя и надежный, как лом. Один выход - мозговой штурм, желательно коллективный.
 

beacon

Member
Гадать можно вечно, метод научного тыка не работает. Декомпилировать, это слишком большой объем работы, хотя и надежный, как лом. Один выход - мозговой штурм, желательно коллективный.
Ну дак, если dev_power_ctrl(usb, DEV_POWER_OFF) работает - то вполне годный фикс. Хард ресет-то зачем? Там же какие-то переменные сохраняются...
 

8465

Member
Ну дак, если dev_power_ctrl(usb, DEV_POWER_OFF) работает - то вполне годный фикс. Хард ресет-то зачем? Там же какие-то переменные сохраняются...
Хотелось чтоб наверняка. И к тому же интересно, сбрасывается ли область памяти updata param при полном выключении. Подозреваю, что нет и её можно как-то ещё использовать при надобности как альтернатива vm.
 

beacon

Member
Хотелось чтоб наверняка. И к тому же интересно, сбрасывается ли область памяти updata param при полном выключении.
Есть подозрение, что полное выключение - это именно выключение; ну можно подёргать enter_sys_powerdown_mode или enter_sys_poweroff_mode, уж хз, в чём разница, они в либе запакованы.
 

8465

Member
Вот чего нашел:

"AC692X имеет три режима пониженного энергопотребления: Idle/Standby/Sleep с разной глубиной. В этих трех режимах с низким энергопотреблением WDT по-прежнему работает нормально.Если программное обеспечение не может продолжать кормить собаку, система все равно будет сброшена WDT. Чтобы избежать этого, выключите WDT перед переходом в режим пониженного энергопотребления."

Из этого можно сделать перезагрузку.
 

8465

Member
Есть еще вопрос. Надо во время работы блютуз скидывать лог на флешку, а она через 5 сек последнего обращения становится не видимой. Я пока каждые 4 сек сканирую ее, не даю ей заснуть. Хотелось бы сделать по уму. Почему она засыпает или отключается и как это прекратить?
 

pvvx

Активный участник сообщества
Вот эта 5а04 - UPDATA_DEV_ERR вместо желаемого 5а02 - UPDATA_SUCC. А до софтресета там 5а01 - UPDATA_READY.

И что явно заметно, когда прошивка неудачна, в логе всякий раз разный start cluster при инициализации файловой системы. И еще такая штука, если при софтресете успеть в нужное время передернуть флешку, то все проходит удачно. Что говорит о том, что инициализация неверная, либо она успевает как-то сброситься, а при передергивании инициализация опять происходит и весьма шустро.
Ошибки в работе ПО с флешкой. Тайм-ауты неверные, древний каталог FAT содержит много удаленных файлов и поиск чего либо задерживается... И т.д. = китайское ПО-г...но.
 

pvvx

Активный участник сообщества
Есть еще вопрос. Надо во время работы блютуз скидывать лог на флешку, а она через 5 сек последнего обращения становится не видимой. Я пока каждые 4 сек сканирую ее, не даю ей заснуть. Хотелось бы сделать по уму. Почему она засыпает или отключается и как это прекратить?
Написать собственный код для чипа с нуля с bootloader-а для какого-го нужного всем устройства, да с новыми фичами, скинуть на github и молиться что появятся хоть пару человек ковыряюших ваш код, а не тупо записывающих в чип. Если вам так любим этот чип - других вариантов ныне нет.
 

pvvx

Активный участник сообщества
Чем вам т.н. SDK не "пример"? вполне рабочий код.
Тот, что для 692N серии - так уже даже и неплохо структурирован.
Нет и намека на BT5.0 в SDK и доки 2014 года - в момент выхода BT4.2.
16 июня 2016 года Bluetooth Special Interest Group (SIG) представила спецификацию Bluetooth 5.0
Нет поддержки USB2.0HS - необходимо искать древнюю USB-Flash.
Т.е. чип и SDK морально и физически устарели ещё лет 5 назад.
 

beacon

Member
Нет и намека на BT5.0 в SDK и доки 2014 года - в момент выхода BT4.2.
Вы, во-первых, не удосужились даже посмотреть даташиты - но при этом собственное неведение пытаетесь выдать за "недостатки" чипа 🤦‍♂️
AC690N:

Bluetooth Feature


Compliant with Bluetooth V4.2+BR+EDR+BLE specification


AC692N:

Bluetooth Feature


Compliant with Bluetooth V5.0+BR+EDR+BLE specification
А во-вторых, зачем-то виляете, как та профурсетка перед клиентом:
Т.е. чип и SDK морально и физически устарели ещё лет 5 назад.
Какое это имеет отношениие к якобы отсутствующим "примерам кода"?🤦‍♂️ 🤦‍♂️ 🤦‍♂️
 

beacon

Member
Есть еще вопрос. Надо во время работы блютуз скидывать лог на флешку, а она через 5 сек последнего обращения становится не видимой. Я пока каждые 4 сек сканирую ее, не даю ей заснуть. Хотелось бы сделать по уму. Почему она засыпает или отключается и как это прекратить?
Подозреваю, что 5 сек. могут быть внутренней задержкой в ф-ии dev_power_ctrl(sd0, DEV_POWER_OFF), которая дёргается из dev_power_off_spec_dev(dev_handle), которая вызывается в конце file_operate_dev_sel.
Но могу и ошибаться, сильно копаться лень.
Вообще, сами же китайцы рекомендуют для понимания кода Source Insight, а не этот ублюдочный CodeBlocks, от которого польза только в том, что там пути к либам и postbuild уже прописаны. Что собственно можно было в нормальный makefile запихать.

У меня вот встречный вопрос: вам код-то для 692х удалось без вырезания жизненно важных "органов" до необходимых 512К ужать? У меня что-то даже с отключением RF и заменой mp3 либы на старую (меньшего размера) в своё время не получилось (потом забил и дальше уже не пробовал).
 

8465

Member
У меня вот встречный вопрос: вам код-то для 692х удалось без вырезания жизненно важных "органов" до необходимых 512К ужать? У меня что-то даже с отключением RF и заменой mp3 либы на старую (меньшего размера) в своё время не получилось (потом забил и дальше уже не пробовал).
Место освободил за счет обрезки китайских шрифтов. Штатно они 252 кб занимают. После обрезки 214 байт. Еще звуки убрал. Пока проблем не испытываю с нехваткой места.
 
Сверху Снизу