-
- Обнаружил, что с некоторого момента WCH внесли изменения в код инициализации CH579, в частности - шаманят с недокументированными регистрами флеша (R8_CFG_FLASH и R32_MISC_CTRL). Может оно как-то связано. LightElf(789 знак., 17.12.2024 17:48, ссылка)
- Начинаете писать в сектор. Не выучили прерывания, питание проседает
или ещё что - запись прерывается на половине страницы. Процесс
записи зацикливается и затирает сектор досмерти. Nikolay_Po(83 знак., 15.02.2024 13:55)
- Сектора, начиная с 0x00008000 пишутся подряд - это код основной
прошивки (по адресу 0x00008000 лежат вектора прерываний). Бутлодер
вообще не использует прерывания, они запрещены всегда. Срабатывания
ватчдога тоже не происходит, сброс проца был бы заметен из
протокола обмена. Прошивка, кроме этого больного куска, залита
целиком, что тоже не подтверждает версию о сбое посередине процесса
обновления. - LightElf(15.02.2024 16:33)
- В основной прошивке записи во флешь нет? Может там какая путаница с
адресами произошла, хотел записать по одному адресу, фактически
записывал по другому, видел что не записалось, писал опять, и так
пока дыру не протер. - AlexBi(15.02.2024 16:52)
- Основная прошивка пишет только в DataFlash область, у которой в
регистре отдельный бит разрешения записи. То есть запись в основную
область флеша в основной прошивке никогда не разрешается. Кроме
того, если бы прошивка писала сама в себя - у нее бы потом CRC не
сошлась. А этого не было. Девайсы работали себе спокойно, пока им
не стали обновлять прошивку. И при обновлении часть сдохла таким
вот странным образом (новая прошивка залилась, но у нее не сошлась
CRC). - LightElf(15.02.2024 17:17)
- все намекает на то, что проблема в процедуре обновления - 0men(15.02.2024 17:26)
- Процедура лет 15 не менялась, года два уже и на CH579 работает. А
вот такая фигня приключилась только на днях, но зато сразу на
нескольких десятках устройств (при этом навернулись не все, но те
что навернулись - сделали это абсолютно идентично) - LightElf(15.02.2024 17:44)
- Похоже, что при каждом обновлении, из-за ошибки в алгоритме, одна и та же область затирается множество раз. Просто сейчас дошло до предела. Я бы взял рабочее устройство и попробовал выполнить ряд обновлений, аналогично тому, что делалось "в полях". Может, поймаете такой же отказ. Может где указатель слетает или ещё что в процедуре обновления. И с другими данными прошивки работало, а сейчас с текущими - проявилось. Nikolay_Po(264 знак., 16.02.2024 14:43)
- Процедура лет 15 не менялась, года два уже и на CH579 работает. А
вот такая фигня приключилась только на днях, но зато сразу на
нескольких десятках устройств (при этом навернулись не все, но те
что навернулись - сделали это абсолютно идентично) - LightElf(15.02.2024 17:44)
- все намекает на то, что проблема в процедуре обновления - 0men(15.02.2024 17:26)
- Основная прошивка пишет только в DataFlash область, у которой в
регистре отдельный бит разрешения записи. То есть запись в основную
область флеша в основной прошивке никогда не разрешается. Кроме
того, если бы прошивка писала сама в себя - у нее бы потом CRC не
сошлась. А этого не было. Девайсы работали себе спокойно, пока им
не стали обновлять прошивку. И при обновлении часть сдохла таким
вот странным образом (новая прошивка залилась, но у нее не сошлась
CRC). - LightElf(15.02.2024 17:17)
- В основной прошивке записи во флешь нет? Может там какая путаница с
адресами произошла, хотел записать по одному адресу, фактически
записывал по другому, видел что не записалось, писал опять, и так
пока дыру не протер. - AlexBi(15.02.2024 16:52)
- Сектора, начиная с 0x00008000 пишутся подряд - это код основной
прошивки (по адресу 0x00008000 лежат вектора прерываний). Бутлодер
вообще не использует прерывания, они запрещены всегда. Срабатывания
ватчдога тоже не происходит, сброс проца был бы заметен из
протокола обмена. Прошивка, кроме этого больного куска, залита
целиком, что тоже не подтверждает версию о сбое посередине процесса
обновления. - LightElf(15.02.2024 16:33)
- Нет ли выбросов в питании "на местах" в момент обновления? Честно
сказать, я так и не решился ставить в девайсы WCH не смотря на всю
их привлекательность. Очкую :) - Гyдвин(12.02.2024 22:10)
- Тащемта, 15 плат проверил - у всех ровно одинаковая бодяга. Не
пишется одна конкретная область 0x00008400..0x000084FF. Можно
проклинать питание, место, время, пайщиков, юзеров, мои кривые
руки, ретроградный Меркурий... - LightElf(13.02.2024 19:54)
- Удалось вычислить гада? - Гyдвин(20.03.2024 13:05)
- Нет еще. Сделал такой удачный софтверный воркэраунд, что платы по
ошибке куда-то уехали ;) Заказал сдернуть мне еще пару с объекта,
жду. Нашел дамп с больного камня, выглядит оно так. LightElf(156 знак., 22.03.2024 17:52, картинка)
- Спасибо. - Гyдвин(22.03.2024 18:24)
- Нет еще. Сделал такой удачный софтверный воркэраунд, что платы по
ошибке куда-то уехали ;) Заказал сдернуть мне еще пару с объекта,
жду. Нашел дамп с больного камня, выглядит оно так. LightElf(156 знак., 22.03.2024 17:52, картинка)
- Удалось вычислить гада? - Гyдвин(20.03.2024 13:05)
- Тащемта, 15 плат проверил - у всех ровно одинаковая бодяга. Не
пишется одна конкретная область 0x00008400..0x000084FF. Можно
проклинать питание, место, время, пайщиков, юзеров, мои кривые
руки, ретроградный Меркурий... - LightElf(13.02.2024 19:54)