Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Трудности с прочтением flash памяти
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > MSP430
Turbo_enot
Здравствуйте. Прошу помочь мне со следующей ситуацией: через IAR в MSP430F2101 заливается файл прошивки; задача: необходимо прочесть её из прошитого МК. Имеется GANG, однако, при чтении памяти он показывает, что она пустая, и прошивки там нет. При этом она там есть, так как устройство работает как надо. Есть парочка подводных камней, которые только ещё больше запутывают происходящее: У МК память на 1кБ + INFO 256b. GANG показывает, что прошивка весит 1,392b. Память контроллера 0xFC00 - 0xFFFF, в то время как GANG показывает, что прошивка 0xF000 - 0xF520. GANG отказывается шить МК прошивкой, превышающей память МК.
Вопрос: почему IAR прошивает???? и главное это ж ведь работает! И как всё же считать то, каким образом это осело на памяти МК??
Буду благодарен за любую помощь, подсказку, предположение, совет.
rezident
В каком формате ваша прошивка? Сюда ее в виде архивного файла выложить можете?
Turbo_enot
Цитата(rezident @ Sep 19 2013, 21:01) *
В каком формате ваша прошивка? Сюда ее в виде архивного файла выложить можете?


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

А сам он что определяет?
Turbo_enot
Цитата(MrYuran @ Sep 20 2013, 10:40) *
А сам он что определяет?


Сказать трудно... ганг вроде не определяет, нужно самостоятельно указывать устройство.
Turbo_enot
Начинаю думать, что у них все устройства с одинаково максимальным количеством памяти, но с разной маркировкой. biggrin.gif
rezident
Цитата(Turbo_enot @ Sep 20 2013, 12:28) *
Формат a43. Возможно позже удастся. Хотите проверить самостоятельно?

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


Да, именно так. Я изучил её адреса, и поэтому выше писал о том, откуда она начинается.
Давайте так: вот прошивка, а вы мне ответьте, может ли она быть успешно записана в MSP430F2101. Мне очень интересно, что вы скажите. wink.gif
rezident
Цитата(Turbo_enot @ Sep 23 2013, 11:05) *
Давайте так: вот прошивка, а вы мне ответьте, может ли она быть успешно записана в MSP430F2101. Мне очень интересно, что вы скажите. wink.gif

Да, действительно прошивка начинается с адреса 0xF000. И вроде как не должна помещаться в MSP430F2101. Может у вас тип TARGET в проекте неправильно выбран? Или в реальности стоит именно MSP430F2121 или даже MSP430F2131? Сигнатура у них может быть одинаковой и обмануть GANG нехитро.
Turbo_enot
Цитата(rezident @ Sep 23 2013, 15:03) *
Да, действительно прошивка начинается с адреса 0xF000. И вроде как не должна помещаться в MSP430F2101. Может у вас тип TARGET в проекте неправильно выбран? Или в реальности стоит именно MSP430F2121 или даже MSP430F2131? Сигнатура у них может быть одинаковой и обмануть GANG нехитро.


В реальности стоит MSP430F2101, а чтобы записать эту прошивку, приходится выставлять на MSP430F2121. Вопрос как раз в том, почему запись происходит, и откуда у 2101 память на эту прошивку. А GANG, в пределах одной серии (например 2101, 2111, 2121), обманывается на ура. Так что же? TI нумеруют MSP430F2112 как MSP430F2101? Интересно ж ведь! Ещё пугают возможные последствия, однако всё работает исправно. laughing.gif
rezident
Цитата(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) *
Интересно ж ведь! Ещё пугают возможные последствия, однако всё работает исправно. laughing.gif

Да, интересно. Может быть потому, что большая часть программы нефункциональна? Т.е. попросту не нужна для выполнения заданных функций? rolleyes.gif
Turbo_enot
Цитата(rezident @ Sep 23 2013, 17:57) *
Да, интересно. Может быть потому, что большая часть программы нефункциональна? Т.е. попросту не нужна для выполнения заданных функций? rolleyes.gif

Но занимает эта программа всё равно больше памяти, чем способна дать 2101. Даже если "мусор" оказывается за пределами памяти мк, то при считывании показывается вся прошивка. Я даже пробовал удалять куски прошивки, чтобы уместить её в память MSP430F2101. smile3046.gif Программа явно не выполнялась.
Turbo_enot
bb-offtopic.gif Возможно вопрос очень глупый, поэтому тему под него создавать совсем не хочется. Подскажите, кто знает наверняка. Возможно ли перевести hex файл прошивки в читабельное C или Asm или ещё чего? Когда, например, исходник утерян, и хочется разобраться в принципах действия программы. Спасибо.
MrYuran
Цитата(Turbo_enot @ Sep 30 2013, 08:39) *
Возможно ли перевести hex файл прошивки в читабельное C или Asm или ещё чего? Когда, например, исходник утерян, и хочется разобраться в принципах действия программы. Спасибо.

Конечно, возможно. Например, IDAой с мсп-шным плагином.
Turbo_enot
Цитата(MrYuran @ Sep 30 2013, 09:04) *
Конечно, возможно. Например, IDAой с мсп-шным плагином.

a14.gif Благодарю, помогло.
Turbo_enot
В итоге на MSP430F2101 удалось записать информацию размером до 4кБ, что даёт основания полагать, что они маркируют модели 2121 и ниже, одинаково.
MrYuran
Цитата(Turbo_enot @ Oct 3 2013, 13:27) *
В итоге на MSP430F2101 удалось записать информацию размером до 4кБ, что даёт основания полагать, что они маркируют модели 2121 и ниже, одинаково.

Может, отбраковка?
Turbo_enot
Цитата
Может, отбраковка?

Поясните, пожалуйста
MrYuran
Цитата(Turbo_enot @ Oct 3 2013, 16:54) *
Поясните, пожалуйста

Ну, например, откуда берутся трехголовые чудо-юдо-процессоры?
Планировали квад-коре, протестировали - одно ядро глючит. Ну, пусть будет три.. Не выбрасывать же целиком.

Возможно, что и тут какой-нибудь дефект флеши.

А может, оказалось дешевле выпускать бОльшим тиражом 4к кристалл, чем плодить номенклатуру. Например, если особо мелкие не пользуются большим спросом. Но закладываться на это нельзя. Ибо, если придет правильный, с 1к, то уже никому не предъявишь, что "а в прошлый раз было 4к".
Turbo_enot
Цитата(MrYuran @ Oct 3 2013, 17:10) *
Ну, например, откуда берутся трехголовые чудо-юдо-процессоры?
Планировали квад-коре, протестировали - одно ядро глючит. Ну, пусть будет три.. Не выбрасывать же целиком.

Возможно, что и тут какой-нибудь дефект флеши.

А может, оказалось дешевле выпускать бОльшим тиражом 4к кристалл, чем плодить номенклатуру. Например, если особо мелкие не пользуются большим спросом. Но закладываться на это нельзя. Ибо, если придет правильный, с 1к, то уже никому не предъявишь, что "а в прошлый раз было 4к".


Думаю, что Вы правы насчёт второго. Учитывая использование большой партии 2101, у меня сложилось точно такое же мнение.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.