Метценгерштейн
Свой-
Постов
1 559 -
Зарегистрирован
-
Посещение
Репутация
0 ОбычныйИнформация о Метценгерштейн
- Сейчас Просмотр темы: Считывание кейлом старт прошивки и ее длину
-
Звание
Профессионал
- День рождения 07.05.1978
Контакты
-
Сайт
Array
-
ICQ
Array
Информация
-
Город
Array
Посетители профиля
6 143 просмотра профиля
-
Все равно еще не улавливаю мысли как сделать. есть прошивка от 0 до 0x0001E194 B хэш я считаю именно ее, без таблицы векторов и прочего.
-
Спасибо. А если усложнить тем, что моя КС- это 32 байта? Тут как поступить? Еще раз, мне не CRC32 надо. Мне хэш всего и сразу. Его нельзя по кускам посчитать.
-
Алгоритм- хэш сумма. Не важно, MD5 или что. Там блоками не считают. Сразу всё. И посчитать надо как-то без самого вкрапления в прошивку этой суммы- исказит результат
-
Картина начинает вырисовываться. Только мне не CRC надо, а хэш. Там один бит поменял, хэш совсем другой. А коллега выше постом что говорит? Вот не могу его мысль уловить как сделать.
-
при том, что я имею прошивку, где конец ее до 0x0001E194. Т.е. 0x0001E193- полседний байт прошивки. Со 0x0001E194 добавляю руками КС. А по мапу получается, что-то дописывает ко мне и перетирает? Получается, моя задача- стандартная- много когда нужна КС прошивки? а вектора эти- они не участвуют в теле прошивки? Т.е. при подсчете КС, не будут посчитаны?
-
проверяю. пока не понял как это. Тут еще проблема, чтобы при подсчете КС именно этот массив не принимал участие в подсчете. Исключить его из тела прошивки. Иначе- никогда не сосчитать будет КС
-
Открыл мар файл. Еще раз, что там посмотреть можно? Не размера только, а ее КС. Я КС добавляю руками, уже к готовому .bin файлу прошивки. Т.о. всегда после самой прошивки
-
Открыл сейчас дамп памяти МК и свою прошивку. Похоже, что да, затирает как раз. Сумма была добавлена просто в ручную к прошивке. И при старте, скорее, доходит до символов, что это конец прошивки и не грузит ее в память больше. Т.о. в ОЗУ МК нет того куска кода добавленного в ручную. Есть только до места, пока не добавляли. Читать да, можно просто по указателю памяти- соответствует ОЗУ и сам файл прошивки.
-
0x0001E194 это конец прошивки, и начало адреса данных, где начинается контрл сумма- с этого адреса. Мне ее надо прочитать Но вот не пойму, прошивка есть. Льем в МК, там флеш нет, если только внешнее, есть ОЗУ, где прошивка и располагается. Как непосредственно читать куски прошивки?
-
Есть прошивка. Есть контрл. сумма, лежащая в конце ее по опред. адресу. Как ее прочитать? static int ReadHash(unsigned int hashAddr, unsigned char *hashBuf, unsigned int hashLength) { unsigned char *hashPtr; if (hashBuf == NULL || hashLength == 0) return -1; hashPtr = (unsigned char *)hashAddr; memcpy (hashBuf, hashPtr, hashLength); return 0; } такой способ не работает. Похоже, из ОЗУ читает.
-
Наверное, тут я плыву. Регион загрузки из скатер файла берется. И ему без разницы, где лежит прошивка - ОЗУ или флеш? По- другому спрошу- регион загрузки- это что тогда такое? Вот нет у него флеш.
-
Считывание кейлом старт прошивки и ее длину
Метценгерштейн опубликовал тема в ARM
"Load$$LR$$LR_IROM1$$Base" Есть МК ARM7, флеш на борту нету. Это Nuvoton 902. Два варианта прошивки его: - загрузка через фирменную программу по USB в ОЗУ сразу - загрузка и считывание потом прошивки с внешней флешки. Сейчас работаю по первому варианту, мне надо посчитать контрольную сумму средствами внутренней прошивки. ф-я из заголовка что дает? Возвращает 0. Прошивка и стартует с 0 адреса. Вторая такая же ф-я Load$$LR$$LR_IROM1$$Length; дает размер. Вроде сходится. Вопрос- если прошивка в ОЗУ физически находится, т.к. флеш нет встроенного, то что ф-я кейла из шапки дает? -
Ext2/Ext4 надо прикрутить к МК.
Метценгерштейн ответил Метценгерштейн тема в ARM
Ну что, запустил я эту либу. Командой создал директорию dir_33, потом вывел все что есть на флешке. Вот вывод: >directory create: /mp/dir_33 ls /mp/ [dir] . [dir] .. [dir] lost+found [dir] ttt [dir] dir_33 [fil] root file.odt Разбираться еще предстоит много там с чем, но начало положено. Кто будет повторять- надо файлы подключать к проекту, по ним и походить поотладить. make, как написано в самом примере не используйте- смысла нет. На сами файлы ругался компилятор. Тот же printf там используется. Мой мк sysprintf ф-ю поддерживает. И так по мелочи. Т.е. ф-ии из библиотеки не все сразу без адаптации подойдут. Поэтому подключаем файлы к проекту. И да, чтобы раскурить, нужен черный пояс по программированию )))) Иначе не суйтесь )) -
Ext2/Ext4 надо прикрутить к МК.
Метценгерштейн ответил Метценгерштейн тема в ARM
поставили задачу на работе. -
Ext2/Ext4 надо прикрутить к МК.
Метценгерштейн ответил Метценгерштейн тема в ARM
Прикруил я эту библиотеку. По дороге пришлось много чего править- не компилировалось. Стою на том, что директории пытаюсь читать, как в примерах, но реально их не показывает. Не находит. В общем разбираюсь пока.