VEDIAMO чтение и запись битов

sein

Активный Участник
есть вопрос - по передаче битов в память еепром или флеши (ведьма, ДАС)
Например, KI211
В ДАС и в ведьме есть такая функция
DT_Read_Address и DL_Write_Address
При обращении к этой команде выплывает окошко, в котором для каждой команды есть основные три строки:
DT_Read_Address, Speicheradresse Hi Byte
DT_Read_Address, Speicheradresse Mid Byte
DT_Read_Address, Speicheradresse Lo Byte
я так понимаю это обращение к ЕЕПРОМ? или к флеши?
И указывая адрес строки ( он разложен на несколько составляющих), можно прочитать или записать в нужное место новое значение
В общем - имея дамп приборки, не смог правильно считать значения битов. Ведьма дает какой то результат, но он у меня не совпадает с значениями в дампе
Подскажите, как правильно пользоваться этой функцией?
 
Последние изменения:

романофф

блестящий...
Дамп какого места ты имел? EEPROM? Так в памяти там вряд ли он с нулевого адреса лежит.
 

sein

Активный Участник
Ну к примеру, считываю абриком дамп приборки
Открываю любым редактором, все биты имеют свои адреса
слева строки, вверху над битом двухзначный адрес

т.е. каждый бит имеет свой адрес
и вроде бы указав нужный адрес,я смогу записать или прочитать не весь еепром, а какую то часть?
Или эти команды не для этого?
 
Последние изменения:

романофф

блестящий...
Или эти команды не для этого

Может для этого, вы же другим прибором читаете. Надо разбираться с форматом адреса little или big endian, тыкать и думать. Маловероятно, что кто-то с этим глубоко разбирался.

Как вариант - правой мышкой посмотри какая команда и посмотри в описании uds формата ее параметры.
 

романофф

блестящий...
И считывая дамп ты не можешь знать с каких адресов он считан. Это надо для добавления смещения к имеющемуся положению нужного байта в дампе.
 

sein

Активный Участник
Романов, про сид сейчас вопросов нет. это другая тема.
Здесь вопрос следующий
как мне ввести значения в эти три строки, чтобы к примеру получить значение из строки 000000A0 и в столбце 0А?
сообщение было автоматически прилеплено:

И считывая дамп ты не можешь знать с каких адресов он считан. Это надо для добавления смещения к имеющемуся положению нужного байта в дампе.
Как бы мне хотелось тебя понять
К примеру - читаю прогером еепром. Он же считывает весь дамп памяти, пусть даже если его половина имеет пустые значения (ф ки)
Все редакторы одинаково назначают адреса битам. Или они то-же с каким то смещением?
 

романофф

блестящий...
Сообщение 6. Надо знать структуру организации памяти процессора. Найди документацию и посмотри.

По простому - отследи запросы другого прибора и посмотри какие адреса там.
 

sein

Активный Участник
т.е. в процессоре адреса не совпадают с теми, что я вижу на экране редактора?
сообщение было автоматически прилеплено:

да кстати, в командах в первом посте, принимаются только цифровые значения - буквы не принимает
На это я обратил внимание, видимо в процессоре адреса только в цифровом виде
А в редакторе есть и буквы
 

Andrei

Участник
Есть же абрик. подтыкаем его, читаем, кан хакером смотрим команды. Должно быть много повторяющихся команд- это будет чтение. ну и при наличии дампа смотрим как адреса указываются. Затем смотрим какая команда из ведьмы имеет такое же представление.
 

романофф

блестящий...
я ещё раз скажу

Unified Diagnostic Services - Wikipedia

Код:
$23 Read Memory By Address

Read data from the physical memory at the provided address. This function can be used by a testing tool, in order to read the internal behaviour of the software.

автор пишет про то-же самое, и спрашивает какие данные. посмотреть правой мышкой описание лень, мы за него это сделаем

Код:
Service
Qualifier: DT_Read_Address
Name: Speicherlesen (1 Byte)
Description:  - 
Request: 23 00 00 00 01
Input Parameter: 3
   0: DT_Read_Address, Speicheradresse Hi Byte

   1: DT_Read_Address, Speicheradresse Mid Byte

   2: DT_Read_Address, Speicheradresse Lo Byte

Output Parameter: 1
   0: DT_Read_Address: PRES_1ByteDump

как раз видим наш UDS запрос $23 и три байта адресов в формате HEX, если выбран HEX режим нотации цифр в настройках (уже говорил, что надо HEX ставить)

формат - 0x00 00 00 -- 0x ff ff ff покрывает 16мб адресного пространства.

последний байт команды - 01 указыват сколько передавать данных. две функции есть - байт и слово. у байта 01, у слова 02. может быть может за раз больше передать, надо тыкать :)

вопрос тут стоит в том, что для доступа к памяти в некоторых случаях нужен seed, это раз. два - надо знать в каком физическом адресе процессора лежит EEPROM.

для записи его - железобетонно нужен seed.
 

романофф

блестящий...
так, что тема тут не про ведиамо (опять оболочка сама по себе ничего не умеет делать), а про то, что всё реализуется через стандартные функции , но нужно понимать что и как устроено что-бы ими пользоваться.
 

sein

Активный Участник
Романов, про 23 и команду записи (не помню счас какие там, по моему 63) знаю,
я уже смотрел логи у ведьмы
Спасибо за объяснение - буду осмысливать написанное

Андрей - в абрике действительно есть вкладка спецзапросы. И мне кажется она тесно перекликается с ведьмой и дасом и команды у них одинаковы
 

Lorenso

Участник
У меня в ezs есть чтение запись байтов. Тоже интересно разобраться. А вообще да, без спецификации чипов и знания что и как работает не разобраться. Но у меня есть блок на котором можно поиграться)

Я думаю помогут только инженерные cbf и то там наверное будет не всё реализовано. А вообще всё функции можно дописать. В ведьме там почти всё
сообщение было автоматически прилеплено:

думаю в ezs они для прописки ключей или привязки блоков
 

Nik

Участник
Вот как пример считывание данных EEPROM IC172. 20=32
23_14.png
 

Lorenso

Участник
надо знать в каком физическом адресе процессора лежит EEPROM.

Я думаю надо искать штатное ПО для процветания на сайте производителя. Я нашел всё что искал для своего на офф сайте инфинеона
сообщение было автоматически прилеплено:

Читает и епром и флешку подвешенную на него
 

Lorenso

Участник
Можно по всем протоколам читать с которыми работает проц. Can, k-line и ещё какой-то. В моем случае с ME2.8
 
Верх