2016-01-21 3 views
0

Я разрабатываю прошивку C для ARM с arm-none-eabi-gcc. My makefile уже генерирует flashable .hex-файл; Я хотел бы настроить файл .hex, добавив полезную информацию. Конечно, он больше не будет flashable, но этот файл будет использоваться с программой загрузки прошивки, которая сможет ее интерпретировать. Если возможно, я хотел бы включить некоторые полезные значения переменных из проекта.как добавить значение переменной в выходной файл с помощью makefile

т.е. в main.c:

unsigned int version_num = 12; 

содержание output.hex файла:

version=12 
:020000040000FA 
:10500000C00E0020355100004F51000051510000EA 
:105010000000000000000000000000000000000090 
:1050200000000000000000000000000053510000DC 
:105030000000000000000000555100005751000022 
:105040005951000059510000215A000059510000E7 
... 
+0

Единственный способ сделать это, чтобы разобрать их ваших источников (используя 'grep' /' sed'/'awk' или все, что необходимо), а затем добавьте их в выходной файл (используя' sed', а также опцию) –

+0

Прежде чем вы сможете что-то сделать с Make, вы должны знать, как вы это сделаете * без * Make. – Beta

+0

Хорошо, я понимаю, что я в основном должен использовать код/​​использовать какой-то внешний инструмент для генерации и добавления нужных мне строк, а затем просто называть его в конце make-файла. Я думал, что есть другие волшебные трюки с маркой. – Vitomakes

ответ

0

makefile:

output.hex: .hex 
    sed -n 's/unsigned int version_num = \([0-9]*\);/version=\1/p' main.c|\ 
    cat - .hex >output.hex 
+0

Хотя этот код может ответить на вопрос, предоставив дополнительный контекст относительно _why_ и/или _how_ этот код ответил на вопрос, значительно улучшит его долгосрочную стоимость . Пожалуйста, отредактируйте свой ответ, чтобы добавить описание . –

Смежные вопросы