| Поиск по сайту: | 
 | По базе: | 
|  | 
| Главная страница > Статьи > Средства разработки | |||||||||
|  | |||||||||||||||
| 
 КомпоновкаКомпоновка - процесс связывания и преобразования объектных файлов. Иногда применяют термин линковка и программу называют, линковщиком или линкером. Связывание можно выполнить командой: 
 Параметр -T задаёт скрипт линкера. Это текстовый файл, на специальном языке управления процессом линковки. Параметр -o задаёт имя выходного файла, по умолчанию генерируется файл формата ELF исполнимый. Среди параметров задаётся список объектных файлов подлежащих связыванию. Скрипт линкера: 
 Важнейшая команда - SECTIONS . Именно эта команда определяет, как будут связаны секции и по каким адресам размещены. В командном файле линкера может располагаться только одна команда SECTIONS. Напомню, что секции объектного файла, называются входными секциями, а секции исполнимого файла - это выходные секции. Специальная переменная линкера "." ("точка") всегда содержит текущее значение адреса. Во второй строке скрипта, текущее значение адреса устанавливается в ноль. Хотя это не обязательно, так как по умолчанию начальное значение этой переменной ноль. Но допустимо присваивать переменной линкера произвольное значение. В 3-ей строке задано имя выходной секции .text , именно в эту выходную секцию будет загружаться информация. С учётом предыдущего оператора, начало секции .text , будет располагаться с нулевого адреса. В 4-ой строке указано, из какого источника, из объектного файла ex1.o переместить секцию .text. Так же линкер будет выполнять и другие операции, например настройку адресов. Так как название объектного файла указано в скрипте, то задавать это название в параметрах командной строки, при вызове линкера, не обязательно. Возможен и такой вариант: 
 Здесь название конкретного файла заменено шаблоном "*". Нужно понимать так, секции всех объектных файлов заданных в командной строке, перенести в выходную секцию. Результатом процесса связывания станет исполнимый файл формата ELF. Получить бинарный образ для записи во Flash, можно командой: 
 Шестнадцатеричный дамп бинарного файла ex1.bin: 
 В начале можно увидеть значение указателя стека, далее вектор сброса и значения остальных векторов прерывания. При анализе надо учесть обратный порядок следования байтов в бинарном файле (little endian). После заданной в программе строки текста, идут 2 нулевых байта, результат действия директивы .aling . Содержимое файла - двоичный код без служебной информации. Записать бинарный файл в микроконтроллер можно командой: 
 
  Главная - Микросхемы - DOC - ЖКИ - Источники питания - Электромеханика - Интерфейсы - Программы - Применения - Статьи  | |||||||||||||||
