Перейти к содержанию

    

Как прочитать flash C8051F410 Silabs

Доброго дня! Есть МК C8051F410 Silabs. К нему прикручена феррооперативка FM75V02 256-Kbit.

Есть стандартный дебаг адаптер от того же Силабса. Подключаю его по C2 интерфейсу. Во вкладке Get Memory заполняю адреса на считывание flash, всё считывается, но в файле одни 00. Подскажите, пожалуйста, что я делаю не так? С силабсами дела, к счастью, раньше не имел. Lock Code Memory Write Lock Hex Value стоит в 0.

Может это защита от чтения так отрабатывает? Пробывал читать все адреса, везде 00.

 

 

image.jpg

 

 

 

 

image.jpg

 

Изменено пользователем Chacha

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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 - т.е. показывает уже в инвертированном виде со сброшенными старшими битами. И в конце файла этот же байт, перед ним все нули.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1. На скриншоте выбрана не FLASH ("Code"), а RAM. Впрочем, в этом случае выходной файл не создастся.

2. Все нули в lock-байте означают, что от чтения защищена вся память. При этом выходной файл заполняется нулями.

 

Чтобы читалась вся память, lock-байт должен быть 0xFF. Непонятно, как он нулевым вычитался... проверял, правда, на 990, а не на 410. У него 16 страниц FLASH против 63 у 410. Выглядит так: защита снята - отображается 0xFF. Устанавливаю нули, после повторного коннекта читается 0x0F - т.е. показывает уже в инвертированном виде со сброшенными старшими битами. И в конце файла этот же байт, перед ним все нули.

 

Это я для примера) Та, да, как-то странно сделано, сначала выбираешь, что читать, потом задаёшь диапазон адресов. Как-то всё очень усложнено)

 

Вот это он считал lock-байт или это он записать предлагает?

 

image.jpg

 

А нет ли какого-го нибудь простого способа для снятия защиты?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вроде предлагает записать. Можно проверить: на вкладке "Connect/Disconnect" отключиться и снова подключиться, после чего перейти на "Set Memory". Если защищена вся FLASH, должно отобразиться 0x3E (62 страницы).

Простой способ снятия защиты, увы, всего один: стирание всей FLASH-памяти. :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Вроде предлагает записать. Можно проверить: на вкладке "Connect/Disconnect" отключиться и снова подключиться, после чего перейти на "Set Memory". Если защищена вся FLASH, должно отобразиться 0x3E (62 страницы).

Простой способ снятия защиты, увы, всего один: стирание всей FLASH-памяти. :(

 

Спасибо. Понятно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация