SSerge 6 7 апреля, 2015 Опубликовано 7 апреля, 2015 · Жалоба Впрочем есть ещё одно особо тонкое извращение - пропустить этот файл через препроцессор С, а результат уже скармливать ассемблеру. Кейловский с-компилер должен уметь выдавать результат работы препроцессора в файл. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 60 7 апреля, 2015 Опубликовано 7 апреля, 2015 (изменено) · Жалоба Почему "только"? :) GCC тоже понимает! (gcc -x assembler-with-cpp file.S). Да и в Keil почти всё можно сделать. По крайне мере, что здесь обсуждается - давно уже описано. И вычисление CRC подстановкой в нужное место, и размеры секций сразу можно в нужные места подставить. Лучше всего Help посмотреть - там есть всё и даже больше. А можно вместо armcc просто использовать в Keil gcc, если сильно хочется. Изменено 7 апреля, 2015 пользователем x893 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
toweroff 1 8 апреля, 2015 Опубликовано 8 апреля, 2015 · Жалоба Теперь задача - зашифровать-расшифровать прошивку. Попробовал XTEA. Пока только закодировал. Не знаю, сколько времени будет декодироваться в микроконтроллере. У меня на CM3 (LPC175x) влезло в 4КБ - CRC32 (программное, аппаратного нет), USART, протокол обменя, AES-128 (CBC mode), XTEA (тоже CBC) Время на 1КБ на 16МГц (PLL не запущена) - CRC32 - менее 1мс - XTEA - 2мс - AES-128 - 32мс Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 8 апреля, 2015 Опубликовано 8 апреля, 2015 · Жалоба Поэкспериментировав с размещением в стартапе дополнительных констант, решил-таки залезать в дыру в векторах, в адрес 0x0020. Там (в секторе 1) внешней программой - шифровальшиком сохраняю размер файла. Туда же (но в загрузчике, в секторе 0) ST-Link Утилитой записываю серийный номер. И никаких изменений в startup.s не требуется. А строковые константы - производитель, модель, версия программы - куда компилятор положит, оттуда программа и возьмет. У меня тоже дешифруется быстро. Время засечь не могу (та же беда с точками останова, что описывал в другой теме; проще новый проект создать, чем в этом копаться). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
toweroff 1 8 апреля, 2015 Опубликовано 8 апреля, 2015 · Жалоба У меня тоже дешифруется быстро. Время засечь не могу (та же беда с точками останова, что описывал в другой теме; проще новый проект создать, чем в этом копаться). я запускал таймер на секунд 10 и поднимал флаг. В цикле расшифровывал, увеличивал счетчик, выходил по флагу, считал время Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться