| Автор | Сообщение |
Strike оболтус Сообщения: 1936
|
Всем привет.
Прошу подсказать специалистами, работающими с МК и тп.
Как работаеет НЕКОЕ устройство на основе микроконтроллера, - грубо говоря -
любое .
Знаю - на основе программы заложеной например во прицепленной к нму флеши, ,.. SPI или парраельной - без разницы..
Вопросы-
1-Начальный адрес порграммы- где, , и кем определен - ( в 16-ричном коде если конкретно)
1-А) а если нет даташита??
2-В основном на чем пишутся программы.. можно ли распознать на чем написано, на каком либо языке, по данным прошивки ( если есть возможность слить) или по другим признакам..?
Основное интересует - адрес, -начало - считывание.
Привязано к конкретному МК?
Или у всех с начального, или аппаратно заложено с какого - либо..?
Ламер конечно,.. интересуюсь..
Добавлено 05-12-2012 17:54
Чет сумбурно написал... хотел кратко, получилось хз как.
Мк=-Проц - если знаем регистры и команды..
Загрузка программы привязана к определенному адресу- заложенному производителем??
Или по умолчанию с нуля - с переадресацией??
Есть другие варианты?
Добавлено 05-12-2012 17:58
Вариант "колхозный".:
Где находится начальный адрес загруки программы ( прошивки) у определенного (любого) процессора - МК - где и как это заложено.??
:
Если что-то непонятно написал -спрашивайте .... |
|
LH Участник Сообщения: 1481
|
Strike, Возьми даташит по интересующему тебя МК , почитай его, там вся понятно расписано! Там понятно откуда тот или иной МК стартует после Reset.
А по твоей писанине действительно трудно понять ход твоих мыслей. И темболее то - во что они упёрлись в конце концов.
С чего у тебя вообще такой вопрос возник? В чём проблема? |
|
o_l_e_g Предупреждений: 1 Сообщения: 4057
|
Программу можно загрузить с любого адреса, директива компиллеру типа ORG, ROMSTART и тп. Переместит код куда захочешь, изменятся адреса переходов. НО исполнение начнется с адреса вектора прерывания по сбросу, обычно с нулевого адреса. По этому адресу ставится безусловный переход к началу кода.
Определить, чем компилилась программа, можно по косвенным признакам, как радиста по почерку. |
|
КЕН45 Забанен  Сообщения: 2414
|
Работа любого МП начинается с нулевого адреса, но одна из первых команд - переход на подпрограмму.
В любом МК есть резидентная программа (не доступная для пользователя), которая на определенном этапе сканирует программу пользователя и выполняет ее команды. |
|
o_l_e_g Предупреждений: 1 Сообщения: 4057
|
У МК, обычно нет пользователя, и соответственно ЕГО программы.
И вообще нужно знать чем Гарвард отличается от Фон-Неймана! |
|
Генчик Гость 92.231.*.*
|
| КЕН45 писал: | | Работа любого МП начинается с нулевого адреса |
КЕН45, правда? А как же например 8086(88), у которых после сброса обращение происходило по адресу FFFF? |
|
КЕН45 Забанен  Сообщения: 2414
|
| Генчик писал: | | обращение происходило по адресу FFFF? |
А дальше? Для счетчика команд "FFFF" это "0000 минус 1".
Добавлено 05-12-2012 15:57
| o_l_e_g писал: | | У МК, обычно нет пользователя |
У программируемого микроконтроллера? А зачем он тогда нужен? |
|
o_l_e_g Предупреждений: 1 Сообщения: 4057
|
КЕН45, Идиот! Прямоадресуемое пространство у 8086 20бит адреса это FFFFF  |
|
Генчик Гость 92.231.*.*
|
КЕН45, а дальше начиналось чтение управляющей микропрограммы.
| КЕН45 писал: | | Для счетчика команд "FFFF" это "0000 минус 1". |
КЕН45, пеши исчо!  |
|
Strike оболтус Сообщения: 1936
|
LH, Честно говоря я хочу по живому дампу определить куда "суется" проц, где его главные биты и- дампы.
Поэтому мне надо знать , после резета куда он хочет, и по каким признакам..
Спасибо всем кто как-либо в теме, - "первариваю." - стараюсь "догнать"..  |
|
o_l_e_g Предупреждений: 1 Сообщения: 4057
|
| КЕН45 писал: |
| o_l_e_g писал: | | У МК, обычно нет пользователя |
У программируемого микроконтроллера? А зачем он тогда нужен? | Он красивый и им можно любоваться! Идиот!
В мире миллионы систем без челомашинного интерфейса. |
|
Генчик Гость 92.231.*.*
|
| Strike писал: | | Честно говоря я хочу по живому дампу определить куда "суется" проц. |
Strike, хернёй маешься! Нужно определять по даташиту на МК.  |
|
Strike оболтус Сообщения: 1936
|
Генчик, Поэтому был вопрос.. А если нет даташита?...
Добавлено 05-12-2012 19:15
Я так понял не с начального, как задаст производитель проца?
Добавлено 05-12-2012 19:41
Хорошо.
Есть система сдохшая по прошивке,.
Дамп от друого аппарата оживает систему, но у нее своя программа, , естественно не подходит для нашего..
ИМХО сбой начального адреса- инициализации МК , визуально дампы - ок, нет пробелов и FF-ов..
Хочу найти начальный адрес, чтобы восстановить "инициализацию" MK, чтобы запустить проц, т.к. молчек совсем, возможно сама программа не убита..
27С512
Ультрафиолет, тоже гемор, относительный.. |
|
Генчик Гость 92.231.*.*
|
| Strike писал: | | А если нет даташита?... |
Strike, значит плохо искал. |
|
o_l_e_g Предупреждений: 1 Сообщения: 4057
|
ПЗУха "поплыла" имхо, зачитай в режиме плавающих бит, возможно ошибки пропадут. |
|
starko Гость 95.153.*.*
|
Без особой надежды.. в смысле угадать... если 27с512, то МК 51-й... если нет ДШ, то советский - КР1816ВЕ51. Не? не оно? Тады пардон  |
|
o_l_e_g Предупреждений: 1 Сообщения: 4057
|
| starko писал: | если 27с512, то МК 51-й...  |
Не факт, может 68 мотороллер, может Z80, может ещё что..любой ромлесс.
ЗЫ А на маркировку и обвязку подследственного, взглянуть можно? |
|
Strike оболтус Сообщения: 1936
|
Позже отпишусь
Станок какойто, разрыхлитель, |
|
starko Гость 95.153.*.*
|
o_l_e_g, заявлено ж МК, а не МП. Хотя, опять же, что ТС подразумевает.. По ему получается, что 27С512 - флешка  |
|
o_l_e_g Предупреждений: 1 Сообщения: 4057
|
starko, А ты, делаешь различие МК от МП только по наличию и типу памяти? |
|
RIF Участник Сообщения: 910
|
Опа, ежели различий нет, то мне зачесалось потрындеть
Это о центральных процессорах (читал книжку в юности).
Strike, извени за загруз темы пустым, но может оттолкнёшься...
По вкл. питания, схема формирования RESETa держит сброшенными значения всех битов управляющих регистров и обнуляет регистры процессора, кроме регистра CS (Code Segment) содержащего начальный адрес сегмента кода, в нем устанавливается значение FFFFh. После снятия RESETa процессор начинает работу в реальном режиме и в течение примерно 7 циклов синхронизации приступает к выполнению инструкции, считываемой из ROM по тому самому адресу FFFF:0000.
Процессор (начиная с i386DX) выполняет первую инструкцию по адресу FFFFFFF0h.
К этому моменту вся периферийная логика, должна быть устаканена и готова як пионЭр.
Размер области ROM от адреса FFFF:0000 до конца равен 16 байт, и в ней по указанному адресу записана команда перехода на реально исполняемый код программы (точка входа). |
|
starko Гость 95.153.*.*
|
RIF, очень сомнительно, что там 86-й, уж больно мудреное НЕКОЕ устройство.
o_l_e_g, ну, как бы МК - все в одном. Память, порты. Вот не знаю, куда отнести 35-й, урезок 48-го  |
|
o_l_e_g Предупреждений: 1 Сообщения: 4057
|
starko, четкой границы, провести не возможно! ИМХО МК ориентирован на применение во встроенных системах, его задача управлять, что вытекает из названия. А тот же ARM, это что? |
|
Генчик Гость 92.230.*.*
|
| o_l_e_g писал: | | любой ромлесс. |
o_l_e_g, и это необязательно. К МК со встроенным ROM можно и внешний прицепить, если объёма внутреннего не хватает.
| starko писал: | | ну, как бы МК - все в одном. Память, порты. |
starko, вот именно, "как бы". Память к этому определению никаким боком, она может быть и внешней, и RAM, и ROM.  |
|
RIF Участник Сообщения: 910
|
Абсолютно!
О'писанный механизм касательно хочЬ инт., хочЬ экст., памяти.
А не хватит объёма на код программы, разместят в экст.
Главное что неизменно это регистр CS, это как метка для процессора где он получит адрес и запизд..(джамп - сделает) куда его послали.
А послать могут в любую удобную область памяти, даже в ОЗУ...
Короче, ну ИЁ в дышло  |
|
igor.gm Мастер по Eizo Сообщения: 854
|
Strike,
каждая линейка процов начинает СО СВОЕГО адреса , заложенного в конструктиве на данную линейку производителем.
1. Z80 начинает с 0000
2. 8051 начинает где то в середине или последней трети AB7E ( например)
3. другие еще ХЗ откуда.
Поэтому тебе надо знать под какой проц этот DAMP. Это в любом случае !!!!!!!!!!!
Но это еще не писец . ДАМП стоит в двоичном коде и тебе нужен будет потом ДИСАСЕМБЛЕР именно на этот проц , что бы перевести двоичный код в ассемблерную запись в виде :
go to
call
if
и тд .
И только потом , зная систему команд для данного проца , ты сможешь понять что и куда управляется.
Я тебе кайф обламал? |
|
o_l_e_g Предупреждений: 1 Сообщения: 4057
|
| igor.gm писал: | Strike,
2. 8051 начинает где то в середине или последней трети AB7E | Чушь! С 0000 начинает, там всегда код 02h - безусловный переход, далее адрес джампа. |
|
igor.gm Мастер по Eizo Сообщения: 854
|
o_l_e_g, А это не одно и тоже? Начало ДАМПа то ХЗ где , а не по адресу 0000.
Для этого и нужно , , что бы проц выдал первой команду безусловного перехода , которая жестко в проце зашита.
А там далее начало ДАМПа и лежит. |
|
o_l_e_g Предупреждений: 1 Сообщения: 4057
|
Что ты понимаешь под дампом? Программа это строгая логическая последовательность, вход в неё определён адресом прерывания по сбросу, именно это и есть стартовый адрес.
Добавлено 06-12-2012 18:45
| igor.gm писал: |
Для этого и нужно , , что бы проц выдал первой команду безусловного перехода , которая жестко в проце зашита.
| Нихера она там не зашита, в чистой памяти там FF, и я могу начать с нулевого адреса любой последовательностью команд, НО не давая разрешения прерываться, так как далее лежит поле адресов векторов прерываний. Собственно нулевой адрес, это также вектор прерывания по ресету. |
|
starko Гость 95.153.*.*
|
Генчик, o_l_e_g, та называйте как хотите! Соглашусь даже навать MK, к примеру, Core i7, раз настаиваете, ибо похрен.
Ну а вообще-то слово MK изначально подразумевало самодостаточность.
Добавлено 06-12-2012 19:34
| igor.gm писал: | | Начало ДАМПа то ХЗ где , а не по адресу 0000. |
| o_l_e_g писал: | | Что ты понимаешь под дампом? |
Нет, надо составлять мини-разговорник, а то понимаш - дамп, конвертор, облучатель  |
|
KVM Участник Сообщения: 863
|
просветите 0000 и FFFF - это неодно и тоже??? |
|
Генчик Гость 92.230.*.*
|
KVM, двоечник!
0000h = 0000 0000 0000 0000, а FFFFh = 1111 1111 1111 1111. |
|
|
Текущий раздел»
Флейм»
Технофлейм (Различные обсуждения на технические темы)
|
|
|