Автор: Chacha Nov 8 2016, 13:09
Доброго дня! Есть МК C8051F410 Silabs. К нему прикручена феррооперативка FM75V02 256-Kbit.
Есть стандартный дебаг адаптер от того же Силабса. Подключаю его по C2 интерфейсу. Во вкладке Get Memory заполняю адреса на считывание flash, всё считывается, но в файле одни 00. Подскажите, пожалуйста, что я делаю не так? С силабсами дела, к счастью, раньше не имел. Lock Code Memory Write Lock Hex Value стоит в 0.
Может это защита от чтения так отрабатывает? Пробывал читать все адреса, везде 00.
http://electronix.ru/redirect.php?https://postimg.org/image/qfw1vczhh/
http://electronix.ru/redirect.php?https://postimg.org/image/bve249t65/
Автор: Harbinger Nov 9 2016, 07:30
1. На скриншоте выбрана не FLASH ("Code"), а RAM. Впрочем, в этом случае выходной файл не создастся.
2. Все нули в lock-байте означают, что от чтения защищена вся память. При этом выходной файл заполняется нулями.
Цитата
The flash security mechanism allows the user to lock n 512-byte flash pages, starting at page 0 (addresses 0x0000 to 0x01FF), where n is the 1’s complement number represented by the Security Lock Byte.
Чтобы читалась вся память, lock-байт должен быть 0xFF. Непонятно, как он нулевым вычитался... проверял, правда, на 990, а не на 410. У него 16 страниц FLASH против 63 у 410. Выглядит так: защита снята - отображается 0xFF. Устанавливаю нули, после повторного коннекта читается 0x0F - т.е. показывает уже в инвертированном виде со сброшенными старшими битами. И в конце файла этот же байт, перед ним все нули.
Автор: Chacha Nov 9 2016, 10:52
Цитата(Harbinger @ Nov 9 2016, 10:30)
1. На скриншоте выбрана не FLASH ("Code"), а RAM. Впрочем, в этом случае выходной файл не создастся.
2. Все нули в lock-байте означают, что от чтения защищена вся память. При этом выходной файл заполняется нулями.
Чтобы читалась вся память, lock-байт должен быть 0xFF. Непонятно, как он нулевым вычитался... проверял, правда, на 990, а не на 410. У него 16 страниц FLASH против 63 у 410. Выглядит так: защита снята - отображается 0xFF. Устанавливаю нули, после повторного коннекта читается 0x0F - т.е. показывает уже в инвертированном виде со сброшенными старшими битами. И в конце файла этот же байт, перед ним все нули.
Это я для примера) Та, да, как-то странно сделано, сначала выбираешь, что читать, потом задаёшь диапазон адресов. Как-то всё очень усложнено)
Вот это он считал lock-байт или это он записать предлагает?
http://electronix.ru/redirect.php?https://postimg.org/image/d0m174oh3/
А нет ли какого-го нибудь простого способа для снятия защиты?
Автор: Harbinger Nov 10 2016, 07:22
Вроде предлагает записать. Можно проверить: на вкладке "Connect/Disconnect" отключиться и снова подключиться, после чего перейти на "Set Memory". Если защищена вся FLASH, должно отобразиться 0x3E (62 страницы).
Простой способ снятия защиты, увы, всего один: стирание всей FLASH-памяти.
Автор: Chacha Nov 14 2016, 12:52
Цитата(Harbinger @ Nov 10 2016, 10:22)
Вроде предлагает записать. Можно проверить: на вкладке "Connect/Disconnect" отключиться и снова подключиться, после чего перейти на "Set Memory". Если защищена вся FLASH, должно отобразиться 0x3E (62 страницы).
Простой способ снятия защиты, увы, всего один: стирание всей FLASH-памяти.
Спасибо. Понятно.