|
Трудности с прочтением flash памяти, Невидимая прошивка |
|
|
|
Sep 19 2013, 09:27
|
Участник

Группа: Участник
Сообщений: 39
Регистрация: 2-08-13
Пользователь №: 77 769

|
Здравствуйте. Прошу помочь мне со следующей ситуацией: через IAR в MSP430F2101 заливается файл прошивки; задача: необходимо прочесть её из прошитого МК. Имеется GANG, однако, при чтении памяти он показывает, что она пустая, и прошивки там нет. При этом она там есть, так как устройство работает как надо. Есть парочка подводных камней, которые только ещё больше запутывают происходящее: У МК память на 1кБ + INFO 256b. GANG показывает, что прошивка весит 1,392b. Память контроллера 0xFC00 - 0xFFFF, в то время как GANG показывает, что прошивка 0xF000 - 0xF520. GANG отказывается шить МК прошивкой, превышающей память МК. Вопрос: почему IAR прошивает???? и главное это ж ведь работает! И как всё же считать то, каким образом это осело на памяти МК?? Буду благодарен за любую помощь, подсказку, предположение, совет.
|
|
|
|
|
Sep 20 2013, 07:28
|
Участник

Группа: Участник
Сообщений: 39
Регистрация: 2-08-13
Пользователь №: 77 769

|
Цитата(rezident @ Sep 19 2013, 21:01)  В каком формате ваша прошивка? Сюда ее в виде архивного файла выложить можете? Формат a43. Возможно позже удастся. Хотите проверить самостоятельно? Заметил ещё одну вещь: Если поменять в ганге МК с 2101 на 2121 (памяти 4КБ), и прочесть внутреннюю память, которая начинается с 0xF000, то угадайте, что происходит - ганг показывает, что прошивка находится в этой самой памяти, начиная с её начала (у МК 2121 это 0xF000), по своему собственному адресу, который начинается там же. Я как бы обманываю ганг, говоря, что у меня не тот МК - ладно. Я ПРОШИВАЮ этой прошивкой 2101, говоря, что у меня 2121 - допустим. НО КАК ЖЕ ТАК? У моего МК 3 скрытых КБ памяти? Мне уже банально любопытно!
Сообщение отредактировал Turbo_enot - Sep 20 2013, 07:37
|
|
|
|
|
Sep 20 2013, 07:56
|
Участник

Группа: Участник
Сообщений: 39
Регистрация: 2-08-13
Пользователь №: 77 769

|
Цитата(MrYuran @ Sep 20 2013, 10:40)  А сам он что определяет? Сказать трудно... ганг вроде не определяет, нужно самостоятельно указывать устройство.
|
|
|
|
|
Sep 23 2013, 06:05
|
Участник

Группа: Участник
Сообщений: 39
Регистрация: 2-08-13
Пользователь №: 77 769

|
Цитата(rezident @ Sep 20 2013, 21:30)  a43 это же Intel-extended формат вроде? Тот же HEX по сути дела. Откройте прошивку в notepad (Блокнот) или в другом текстовом редакторе, скопируйте и вставьте в свое сообщение первые 3-4 строки из текста прошивки. По hex-файлу можно определить с какого адреса должна грузиться прошивка. Ну либо сами изучите формат Intel HEX. Да, именно так. Я изучил её адреса, и поэтому выше писал о том, откуда она начинается. Давайте так: вот прошивка, а вы мне ответьте, может ли она быть успешно записана в MSP430F2101. Мне очень интересно, что вы скажите.
Сообщение отредактировал Turbo_enot - Sep 23 2013, 06:18
|
|
|
|
|
Sep 23 2013, 12:25
|
Участник

Группа: Участник
Сообщений: 39
Регистрация: 2-08-13
Пользователь №: 77 769

|
Цитата(rezident @ Sep 23 2013, 15:03)  Да, действительно прошивка начинается с адреса 0xF000. И вроде как не должна помещаться в MSP430F2101. Может у вас тип TARGET в проекте неправильно выбран? Или в реальности стоит именно MSP430F2121 или даже MSP430F2131? Сигнатура у них может быть одинаковой и обмануть GANG нехитро. В реальности стоит MSP430F2101, а чтобы записать эту прошивку, приходится выставлять на MSP430F2121. Вопрос как раз в том, почему запись происходит, и откуда у 2101 память на эту прошивку. А GANG, в пределах одной серии (например 2101, 2111, 2121), обманывается на ура. Так что же? TI нумеруют MSP430F2112 как MSP430F2101? Интересно ж ведь! Ещё пугают возможные последствия, однако всё работает исправно.
|
|
|
|
|
Sep 23 2013, 14:57
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(Turbo_enot @ Sep 23 2013, 17:25)  Вопрос как раз в том, почему запись происходит, и откуда у 2101 память на эту прошивку. Не могу проверить. GANG есть, MSP430F2101 нету. Цитата(Turbo_enot @ Sep 23 2013, 17:25)  А GANG, в пределах одной серии (например 2101, 2111, 2121), обманывается на ура. Так что же? TI нумеруют MSP430F2112 как MSP430F2101? Сигнатура у кристаллов, отличающихся лишь размером Flash, действительно одинаковая. Цитата(Turbo_enot @ Sep 23 2013, 17:25)  Интересно ж ведь! Ещё пугают возможные последствия, однако всё работает исправно.  Да, интересно. Может быть потому, что б ольшая часть программы нефункциональна? Т.е. попросту не нужна для выполнения заданных функций?
|
|
|
|
|
Sep 26 2013, 05:51
|
Участник

Группа: Участник
Сообщений: 39
Регистрация: 2-08-13
Пользователь №: 77 769

|
Цитата(rezident @ Sep 23 2013, 17:57)  Да, интересно. Может быть потому, что б ольшая часть программы нефункциональна? Т.е. попросту не нужна для выполнения заданных функций?  Но занимает эта программа всё равно больше памяти, чем способна дать 2101. Даже если "мусор" оказывается за пределами памяти мк, то при считывании показывается вся прошивка. Я даже пробовал удалять куски прошивки, чтобы уместить её в память MSP430F2101.  Программа явно не выполнялась.
|
|
|
|
|
Sep 30 2013, 08:14
|
Участник

Группа: Участник
Сообщений: 39
Регистрация: 2-08-13
Пользователь №: 77 769

|
Цитата(MrYuran @ Sep 30 2013, 09:04)  Конечно, возможно. Например, IDAой с мсп-шным плагином.  Благодарю, помогло.
|
|
|
|
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|