super.fex boot-resource.fex boot_package.fex boot0_sdcard.fex cardscript.fex cardtool.fex split_xxxx.fex fes1.fex Файл cardscript.fex
При запуске прошивальщика PhoenixCard в его папке создается временный конфигурационный файл с именем script.cfgf, который является копией файла cardscript.fex из образа прошивки с небольшими изменениями: Этот файл script.cfgf создается (копируется из образа и модифицируется) при старте прошивальщика a, феникс, а по заверершении работы он удаляется. Таким образом, файл cardscript.fex из образе прошивки - это конфигурационный файл прошивальщика, который определяет режим программирования (poduct или startup) и управляет записью на карту загрузчика Boot0 (файл прошивки boot0_sdcard.fex) и загрузочного пакета для раздела bootloader (файл прошивки boot_package.fex). Забавно, что когда-то в этом файле комментарии были на китайском, но в процесссе упорных улучшений они превратились в бессмысленные (на любом языке и в любой кодировке) наборы символов, да так и кочуют из одной прошиивки в другую. И ни у кого рука не поднялась их вычистить. Однако мне удалось восстановить исходный текст этих китайских комметариев и перевести их на русский. В этом конфигурационном файле имеются следующие секции: Ниже представлен текст этого файла с восстановленными комментариями (звездочкой помечены строки, отсутствующие в исходном файле и добавленные прошивальщиком). ;--------------------- ; ; card_script.cfg ; ; 2022-03-24 ; ;--------------------- ; этапы обработки ;--------------------- [process] version = 300 mode = product ;null - недопустим 0 ;product - карта для производства 1 ;bromrun - карта для старта 2 ;update - карта для обновления 3 ;test - тестовая карта 4 ;null - означает пропустить ;start - номер начального сектора ;sectors - количество секторов ( 0 - по размеру файла ) ; * startpos = 2006844 * data = 0 [boot_0_0] main = 12345678 sub = 1234567890BOOT_0 start = 16 sectors = 0 type = 1 ;0 raw (необработанный) ;1 1 уровень ;2 2 уровень ;x другое param0 = 0 param1 = 0 param2 = 0 param3 = 0 param4 = 0 param5 = 0 param6 = 0 param7 = 0 commen = pheonix card_00 commchs = запрограммирована первая часть [boot_1_0] main = 12345678 sub = BOOTPKG-00000000 start = 32800 sectors = 0 type = 1 ;0 raw (необработанный) ;1 1 уровень ;2 2 уровень ;x другое param0 = 0 param1 = 0 param2 = 0 param3 = 0 param4 = 0 param5 = 0 param6 = 0 param7 = 0 commen = pheonix card_10 commchs = запрограммирована вторая часть [card_boot] start = 40960 ;--------------- ; конец ;--------------- Анализ этого конфигурационного файла показывает, что PhoenixCard будет записывать: Таким образом, загрузчик Boot0 записывается на карту сразу после таблицы GPT, а boot_package записывется перед разделом bootloader со смещением в 32800 блоков от начала карты. Параметр [card_boot] имеет только одно значение: start = 40960. Это не что иное, как значение дельты (в блоках по 512 байт), на которую увеличены адреса всех разделов GPT при его модифицировании фениксом в процессе записи на загрузочный носитель (на SD-карту). Примечание. В строках конфигурационного файла commen = pheonix card_00 и commen = pheonix card_10 однажды при переводе с китайского на английский кто-то перепутал порядок букв в слове Phoenix (т.е. Феникс). А эти сообщения отображаются в окне лога прошивальщика PhoenixCard. Так и осталось навсегда... |