(A "Long Story Short" предоставлено в нижней части этого поста для быстрого просмотра.)
Здравствуйте, мне недавно было поручено просеивать и понимать элементы внешнее устройство памяти Fla sh (Intel Advanced + Boot Block Fla sh устройство памяти (C3), P / N: JS28F800C3TD70) для проекта. Я признаю, что кое-что из того, что меня попросили сделать, выше моего нынешнего уровня понимания, и я стремлюсь узнать больше. Я полагаю, что приведенный ниже код написан на C, но большая часть моего опыта написана на C ++ и Python.
Устройство Fla sh разбито на несколько разделов или блоков памяти ( Я считаю, что это практика памяти NAND). Устройство подключается параллельно с SRAM и взаимодействует со встроенным микроконтроллером. Поскольку мне поручено восстановление данных, я надеюсь получить некоторое понимание относительно очевидного (на мой взгляд) обращения, которое происходит с некоторыми кодами на борту.
Ниже у меня есть выдержка из код восстановлен с устройства fla sh. Ради конфиденциальности я отредактировал имена переменных для показанного примера. Мое намерение состоит в том, чтобы понять формат, поэтому я уверен, что имена var не имеют отношения к таким усилиям.
f_one[ION][%1i]=%6.3f s_one* s_two* pc_Flash l_Flash = %9ld (0x%08lx)
foo_one foo_two = %9ld (0x%08lx)
foo_two foo_three = %9ld (0x%08lx)
foo_three foo_four = %9ld (0x%08lx)
foo_four foo_five = %9ld (0x%08lx)
foo_five foo_six = %9ld (0x%08lx)
foo_six foo_seven = %9ld (0x%08lx)
foo_seven foo_eight = %9ld (0x%08lx)
foo_eight foo_nine = %5i (0x%04x)
foo_nine foo_ten = %5i (0x%04x)
foo_ten foo_eleven = %5i (0x%04x)
foo_eleven foo_twelve = %5i (0x%04x)
foo_twelve foo_thirteen = %5i (0x%04x)
foo_thirteen foo_fourteen = %5i (0x%04x)
foo_fourteen foo_fifteen = %5i (0x%04x)
foo_fifteen foo_sixteen = %5i (0x%04x)
foo_sixteen foo_seventeen = %5i (0x%04x)
foo_seventeen foo_eighteen = %5i (0x%04x)
foo_eighteen foo_nineteen = %5i (0x%04x)
foo_nineteen foo_twenty = %5i (0x%04x)
foo_twenty foo_twentyone = %5i (0x%04x)
foo_twentyone foo_twentytwo = %5i (0x%04x)
foo_twentytwo foo_twentythree = %5i (0x%04x)
foo_twentythree foo_twentyfour = %5i (0x%04x)
foo_twentyfour foo_twentyfive = %5i (0x%04x)
foo_twentyfive foo_twentysix = %5i (0x%04x)
foo_twentysix foo_twentyseven = %5i (0x%04x)
foo_twentyseven foo_twentyeight = %5i (0x%04x)
foo_twentyeight foo_twentynine = %5i (0x%04x)
foo_twentynine foo_thirty = %5i (0x%04x)
foo_thirty foo_thirtyone = %5i (0x%04x)
foo_thirtyone foo_thirtytwo = %5i (0x%04x)
foo_thirtytwo foo_thirtythree = %5i (0x%04x)
foo_thirtythree foo_thirtyfour = %f (0x%08lx)
foo_thirtyfour foo_thirtyfive = %5i (0x%04x)
foo_thirtyfive foo_thirtysix = %5i (0x%04x)
foo_thirtysix foo_thirtyseven = %5i (0x%04x)
foo_thirtyseven foo_thirtyeight = %5i (0x%04x)
foo_thirtyeight %s %f %s %p %i %x %x %x %x %x %x %x %i %f %i %f %f %i %f %i %03X %03X %04X %03X %03X %04X %03X
На основании моих предыдущих исследований, похоже, что одно из двух значений TPID заканчивается каждым строка кроме последней. Я очень мало знаю о TPID и IEEE 802.1Q, поэтому любые источники информации, которые вы сможете предоставить, помогут мне сэкономить время при исследовании!
Также важно отметить, что все значения foo_xxx появляются только в этом отрывке и больше нигде в памяти fla sh (если не зашифрованы?). Куда я должен направить свое внимание, чтобы научиться понимать этот код?
Long Story Short:
-Что относится к% 5i и% 9ld?
-Какой цели могут служить значения 0x% 08lx и 0x% 04x? Это даже TPID (идентификатор протокола тега)? (Правка: исправлено от 0x% 081x до 0x% 08lx, уточненный вопрос)
-Почему в двух строках, по-видимому, одновременно определены две переменные, казалось бы, только для того, чтобы снова определить вторую переменную с новой переменной в следующей? линия (ad nauseum)?
-У вас есть какой-нибудь совет, где я могу продолжить изучать ответы на эти вопросы?
Заранее благодарим вас за любую помощь, которую вы можете предоставить .