Горячая вакансия: PCB engineer 80000 КА Работа
Я ищу работу в IT сфере ✈ Я ищу резюме в IT сфере ✈

Быстрая публикация IT события здесь

Приступая к работе с Embedded Linux – Чать три

Мы продолжаем нашу серию статей о том, как научиться работать с Embedded Linux, если у Вас уже есть опыт работы со встроенными системами, но не с Linux. Вы можете найти предыдущую статью здесь, и первую статью – тут.
В каждом проекте необходимо будет использовать....
набор компиляторов GNU (GNU Compiler Collection – GCC), бинарные утилиты GNU (Binutils), и утилиту «make», используется для построения программ и обработки зависимостей. У Linux есть несколько интегрированных сред разработки (IDE - integrated development environments), например Eclipse, но все они построены вокруг этих инструментов командной строки. В отличие от разработки на Windows, где использование Visual Stutdio обязательное правило, многие разработчики Linux не используют IDE
Для компиляции программы С с использованием GCC, напишите вашу программу используя Ваш любимый текстовый редактор (vi, emacs, gedit, kwrite и т.д.) и сохраните ее с расширением .с (в следующем примере мы используем стандартную первую программу С из «K&R» и сохраняем ее как «hello.c»). Затем введите следующую команду:
  $ gcc -o hello -g -O1 hello.c  
Это заставит компилятор С перевести Вашу программу и, в случае успеха и отсутствии ошибок, продолжится вызовом компановщика с соответствующими системными библиотеками для создания выполняемого файла с именем Hello. (Другие операционные системы идентифицируют выполняемый файл через расширение, например .ехе. Выполняемые файлы в Linux в основном не имеют расширений. Вместо файла система отмечает, что распознаваемый файл может быть выполнен). Имя выполняемого файла следующее «-о» option – опция, вариант, «-g» - вариант говорит о создании средств отладки (generate debugging information) и «-О1» (буква «О» с последующей цифрой 1) указывает она создание оптимизированного кода. В GCC есть большое количество различный вариантов, но это базовые. Для более легкой отладки можете указать «-О0» (буква «О» с последующей цифрой 0) или пропустить «О» - вариант компиляции без оптимизации. Если у Вас больше одного файла, которые Вы хотите скомпилировать и соединить вместе, просто напишите список имен исходных файлов один за другим. Вы можете обнаружить, что у Вас отсутствуют такие компоненты, как GCC или заголовки для библиотеки С, которые не были установлены по умолчанию. В этом случае, Вы можете использовать Ваш «package manager» для добавления этих компонентов. В системе Fedora Вы можете использовать «yum» или возможно «packagekit GUI»; в Ubunto – «apt-get» или «synaptic GUI». Эти менеджеры пакетов будут загружены в ручную и установлены по Вашему запросу, также хорошо, как и любые другие, в зависимости от необходимости.
Вы можете запускать программные файлы из командной строки путем ввода имени программы, если они находятся непосредственно в Вашем каталоге, или путем присвоения пути имени файла. В нашем примере мы может сделать следующее:
  $ ./hello
   Hello world!
  
В этом случае, т.к. наша текущая директория отсутствует в окружении переменной $, мы используем (.) точку для идентификации текущей директории и затем пишем имя файла, отделяя его знаком слэш (/) от директории. Возможно, это удачное время для использования отладчика GDB для запуска программы. Делаете ли Вы ядро, драйверы или разрабатываете приложения, вполне вероятно, что Вам понадобится отлаживать Вашу программу с использованием отладчика GDB. В GDB есть интерфейс командной строки и это хорошо для изучения команд по выполнению базовых операций, например печать значения переменных, установка прерываний и пошаговое выполнение программы. Вот несколько возможных GUI для GDB. Я использую DDD, у которого теперь есть новое сопровождение, которого не было до недавнего времени. Другие GUI содержат Eclipse CDT IDE, Insight и даже расширения для текстового редактора Emacs. Вы можете вызвать GDB следующим образом:
           $ gdb hello
           [ start up messages from gdb ]
           (gdb) break main
           Breakpoint 1 at 0x400530: file hello.c, line 5.
           (gdb) run
           Starting program: /tmp/hello

           Breakpoint 1, main () at hello.c:5
           5         printf ("Hello world!\n");
           (gdb) cont
           Continuing.
           Hello world!
           (gdb) quit
  
В приведенном выше примере сигнал на выходе выделен жирным шрифтом; наши команды в нормальном виде. В дополнение к начальной загрузке сообщений из GDB, там могут быть другие сообщения об отсутствии отладочной информации для библиотек системы или сообщение о программе выхода. В окружении Embedded Linux Вы будете использовать GCC, GDB и «make» также как и при обычной разработке в Linux. В большинстве случаев Вы будете использовать различные сборки GCC и GDB, которые предназначены для выполняемого процесса. Имена программ могут быть различные, например, «arm-none-eabi-gcc», генерирует код для ARM с использованием EABI (Embedded ABI). Другое отличие в том, что большинство из Вас вероятно будут работать в cross-development среде, где компиляция происходит в хост-системе и Вы скачиваете Ваши программы в целевую систему. Если у Вас уже есть опыт работы области embedded программирования, работа в среде cross-development вам будет знакома. Мы поговорим о том, как это работает в Embedded Linux в следующих частях. В следующей части мы поговорим о приложениях и библиотеках Linux и о большом выборе различных бесплатных программных пакетов.

Перевод - Карпухина Татьяна
Кадровое агентство "Работа КА"
оригинал [(-)]


➥ ✈

Поиск IT персонала. Давайте решать задачи вместе! rabota@rabota-ka.ru



HotLog Rambler's Top100 Яндекс.Метрика
Отправить комментарий
Яндекс.Метрика Яндекс цитирования

Сообщения на Email