|
|
  |
Дамп BSL от MSP430 |
|
|
|
Jul 30 2008, 01:11
|
Группа: Новичок
Сообщений: 11
Регистрация: 30-07-08
Пользователь №: 39 289

|
Возникла надобность немного покопаться в коде BSL от MSP430F1232. Никогда с MSP430 не работал, самому пока снять нечем. Немного разобрал код загружаемого BSL (благодаря плагинам для IDA с этого форума), хотелось бы и на код в ROM посмотреть.
|
|
|
|
|
Jul 30 2008, 12:43
|
Группа: Новичок
Сообщений: 11
Регистрация: 30-07-08
Пользователь №: 39 289

|
Цитата(rezident @ Jul 30 2008, 13:49)  Возмите программу Kurt-а MSPFET Programmer, снимите полный дамп памяти, вычлените из него область BSL и дизассемблируйте его себе на здоровье. У меня нет под рукой такого кристалла, а то бы снял дамп. Это недолго и несложно. Всё это будет только в сентябре, а пока в отпуске, снять будет нечем. Я так понял в программаторе Kurt'а BSL можно снять отдельно от всего. А у разных подвидов ROM BSL сильно отличается ? Если несложно, можете разместить здесь реальный BSL от любых кристаллов, что под рукой ?
Сообщение отредактировал oleg1000 - Jul 30 2008, 12:47
|
|
|
|
|
Jul 30 2008, 17:34
|
Знающий
   
Группа: Участник
Сообщений: 745
Регистрация: 28-12-06
Пользователь №: 23 960

|
Цитата(oleg1000 @ Jul 30 2008, 16:43)  Если несложно, можете разместить здесь реальный BSL от любых кристаллов, что под рукой ? Слил с помощью mspfet bsl от msp430f1232 [attachment=23279:attachment] и на всякий случай id чипа [attachment=23280:attachment]
|
|
|
|
|
Jul 30 2008, 18:13
|
Группа: Новичок
Сообщений: 11
Регистрация: 30-07-08
Пользователь №: 39 289

|
_3m спасибо за помощь.
|
|
|
|
|
Jul 30 2008, 18:20
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(oleg1000 @ Jul 30 2008, 18:43)  Всё это будет только в сентябре, а пока в отпуске, снять будет нечем. Я так понял в программаторе Kurt'а BSL можно снять отдельно от всего. Прочитать содержимое памяти MSP430 можно через 4-х проводный JTAG или 2-х проводный Spy-Bi-Wire, если не пережжен fuse. Или через интерфейс BSL (программный UART, поддерживаемый внутренней BSL-firmware), если имеется пароль доступа к Flash. А вот с чтением firmwire BSL из ROM сложнее. Мне удалось снять dump только с помощью программы Курта (у нее есть специальная опция DUMP BSL) и LPT-ного FET (MSP-FET430PIF) через 4-х проводный JTAG. Через USB-FET и этой же программы, прочитать дамп BSL не удается. Читается какая-то ерунда. Видимо сам адаптер MSP-FET430UIF блокирует чтение области BSL.  Программой от Elprotronic FET-PRO430 тоже не удается считать дамп BSL, т.к. она просто не дает выбрать диапазон адресов области памяти BSL, ругается "Read Address Range Error! Main Memory Start Address must be high then 0x1000". Цитата(oleg1000 @ Jul 30 2008, 18:43)  А у разных подвидов ROM BSL сильно отличается ? Отличаются версии BSL. См. подробнее об интерфейсе и версиях BSL в документе Application of Bootstrap Loader in MSP430 With Flash Hardware, Software Proposal (Rev. D). Цитата(oleg1000 @ Jul 30 2008, 18:43)  Если несложно, можете разместить здесь реальный BSL от любых кристаллов, что под рукой ? Под рукой были MSP430F1161 и MSP430F248. На всякий случай сохранил дампы BSL в двух форматах TI-TXT и Intel HEX. Update. Удалил файлы, т.к. по ходу проверки они были считаны неверно, с ошибками.
Сообщение отредактировал rezident - Jul 30 2008, 20:59
|
|
|
|
|
Jul 30 2008, 20:57
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(_3m @ Jul 31 2008, 01:58)  Нет, адаптер не блокирует. C-SPY через ez430, подключенный по Spy by wire прекрасно выдает дамп всей памяти, включая код bsl. Скорее всего софт программатора тупо дает отлуп при попытке обращения к области памяти вне флэш. У Курта для чтения bsl предусмотрена специальная функция. Да, не блокирует. Были какие-то глюки при чтении. Видимо потому, что питался кристалл прямо от FET. Сейчас попробовал еще раз с внешней запиткой кристалла. Но все равно dump BSL, считанный с помощью программы Курта через USB-FET и через LPT-FET не совпадают на 100%. В USB-ном варианте дампа один байт ближе к концу как 0xFF читается, а в считанном через LPT-FET дампе как 0x00. Считывал, перепроверял и сравнивал несколько раз. См. в аттачменте.
|
|
|
|
|
Jul 31 2008, 13:32
|
Группа: Новичок
Сообщений: 11
Регистрация: 30-07-08
Пользователь №: 39 289

|
Цитата(rezident @ Jul 31 2008, 00:57)  Да, не блокирует. Первая половина BSL есть, а вторая, где одни 00, получается не прочиталась.
|
|
|
|
|
Apr 11 2009, 21:47
|
Группа: Новичок
Сообщений: 11
Регистрация: 30-07-08
Пользователь №: 39 289

|
Понимаю, что для участников этой ветки мой вопрос будет тупым, но учиться никогда не поздно. В прошлом году с модулем Курта для IDA разобрал BSL по "косточкам", но чего тогда хотел добиться пока ещё не получил, теперь появилась возможность продолжить "исследования". Итак имеется разобранный в IDA исходный код BSL и надо сделать его "понятным" для Phyton Project 430 1.10.15 . При попытке компилляции исходника выдаётся сообщение об одной ошибке Error[A17] msp_bsl.mca(5,45): Expression <> current relocation Код ;----------------------------------------------------------------------------- .OSEG __RAM, DATA .ORG 00200h ;----------------------------------------------------------------------------- word_200: .DS 2 word_202: .DS 2 word_204: .DS 2 unk_206: .DS 1 byte_207: .DS 1 unk_208: .DS 1 byte_209: .DS 1 unk_20A: .DS 1 byte_20B: .DS 1 byte_20C: .DS 1 byte_20D: .DS 1 word_20E: .DS 2 word_210: .DS 2 word_212: .DS 2 word_214: .DS 2 byte_216: .DS 1
;----------------------------------------------------------------------------- .ASEG __code, CODE .ORG 00C00h ; Program Start ;-----------------------------------------------------------------------------
; --------------------------------------------------------------------------- ; ===========================================================================
; Segment type: Pure code .DCB 04h .DCB 0Ch .DCB 0Eh .DCB 0Ch
mov #220h, SP ; set SP clr R11 ; clear Flags clr.b byte_216 ; set Baud rate 9600 dint ; disable all interupt C IAR понятно (через #define byte_216 (0x0216)), а как мне здесь описать метки в RAM, чтобы компиллятор не ругался ?
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|