8-900-374-94-44
[email protected]
Slide Image
Меню

Codeblocks arm project: FriendlyARM- Using Code Blocks to develop Applications

Быстрый старт c микроконтроллерами STM32F10x. Первый проект в IDE Code::Blocks — Схемотехника

На стартовой странице Code::Blocks посетителей уверяют в том, что эта интегрированная среда разработки способна удовлетворить потребности самых требовательных пользователей. Она может быть настроена индивидуально под потребности каждого разработчика с помощью установки дополнительных плагинов. Такие обещания не оставили меня равнодушным и я решил попробовать создать свой первый проект в этой IDE.

Итак , после установки ARM_Toolchain Code::Blocks будет доступна для запуска из каталога CodeBlocks или из окна выбора между Eclipse и Code::Blocks.

Запустим программу и создадим проект с использованием собственного мейкфайла для Code::Blocks (далее по тексту я буду использовать сокращение C::B ). Создадим простой проект для одной из стартовых плат Olimexino-STM32 или STM32H-103 ( STM32F103-HB ).

Для начала посмотрим какие плагины установлены в C::B . Запускаем IDE и выбираем пункт меню «Plugins – Manage plugins…»

Список доступных для установки плагинов C::B вы можете посмотреть на странице https://wiki.

codeblocks.org/index.php?title=Code::Blocks_Plugins.

Хочу заметить, что установочный пакет ARM_Toolchain_Setup не производит модификацию переменной среды Path. Это предотвратит вас от запуска сторонних утилит вместо необходимых. Например, если у вас установлена RAD Studio , то в ее состав входит утилита make.exe, которая , однако, не понимает формат GNU Makefile.

Таким образом вам нужно либо полностью указывать путь к исполняемым файлам пакета ARM_Toolchain , либо же прописать их в переменной Path ( если в системе нет одноименных утилит).

Для этого нужно открыть свойства системы, нажав «Пуск — Панель управления — Система и безопасность — Система — Дополнительные параметры системы — Переменные среды» (для Windows 7) и выбрав в области «Системные переменные» переменную Path. Нажимаем на кнопку «Изменить» и дописываем через точку с запятой пути к исполняемым файлам пакета ARM_Toolchain :

;C:\ARM_Toolchain\GNU_Toolchain\bin;C:\ARM_Toolchain\MinGW\msys\1.0\bin;C:\ARM_Toolchain\OpenOCd\bin;C:\ARM_Toolchain

Теперь все необходимые утилиты могут быть запущены из командной строки без указания полного пути к исполняемому файлу. Проверим это, запустив Command Prompt и набрав в командной строке , например :

>openocd-0.6.0-rc2 –version

Вы также можете запустить любимую IDE , набрав в командной строке нехитрую команду :

>Start_IDE

Распакуйте архив Examples.zip и скопируйте с заменой каталог Examples в каталог с установленным ARM_Toolchain.
Запустите C::B , выберите в главном меню File – Open… . В открывшемся окне выберите файл проекта …/ARM_Toolchain/Examples/stm32f10xQuickstart/stm32f10xQuickstart.cbp .

Мы будем работать со своим мейкфайлом, поэтому кликните правой кнопкой мышки на названии проекта и выберите «Properties…». В открывшемся окне обязательно поставьте галочку напротив «This is a custom Makefile».

Снова кликните правой кнопкой мышки на названии проекта и выберите из контекстного меню «Build options…». В открывшемся окне выберите вкладку «Make» commands. Обратите внимание на названия целей по-умолчанию. Для сборки отладочной конфигурации используется цель «Debug», для очистки от объектных файлов — цель «cleanDebug». В заключительной версии программы эти цели имеют названия «Release» и «cleanRelease» соответственно. Ничего здесь изменять не будем, оставим все как есть.

Интегрированная среда разработки Code::Blocks предназначена для проектирования программ на языках программирования C и C++. Компиляторы этих языков могут использоваться совершенно разные , от Visual C++ до GCC (в том числе кросс-компиляторы). Поэтому и настройки компиляции также выполняются для каждого из поддерживаемых компиляторов отдельно.

Выберите в главном меню C::B пункт «Settings – Compiler…». В открывшемся окне «Compiler settings» в поле «Selected compiler» выберите «GNU ARM GCC Compiler».
Далее откройте вкладку «Toolchain executables» и выберите расположение инструментальных средств так, как показано на следующем рисунке.

Для беспрепятственного обнаружения дополнительных утилит ,например make.exe, можно указать в закладке «Additional Paths» дополнительные пути к необходимым утилитам, в частности к make. exe.

Чтобы при компиляции не возникли трудности с поиском стандартных заголовочных файлов я рекомендую также указать путь к каталогу include инструментального пакета GNU Toolchain .

Итак, с настройками C::B мы разобрались. Теперь настало время собрать наш первый проект для микроконтроллера stm32f103rb. Откройте Makefile , он находится в логическом каталоге «Others» интегрированной среды разработки. Дело в том, что эти каталоги создаются Code::Blocks автоматически. Принадлежность файлов к каждому из каталогов также определяется без участия пользователя.
В моем проекте вы можете видеть такие организационные элементы :

  • Sources – сюда причислены все исходные файлы на C/C++
  • Headers – здесь находятся все заголовочные файлы проекта
  • ASM Souces – исходные файла на языке ассемблера
  • Others – все остальные , не распознанные средой, файлы

В открывшемся Makefile первая переменная VERSION указывает на версию проекта (Debug или Release).

Обратите также внимание на выпадающее поле «Build target» вверху экрана C::B .
Выбрав в поле «Build target» опцию Debug вы указываете среде запускать при сборке проекта цель Debug, при очистке — cleanDebug.
Что находится в этих целях интегрированная среда разработки не знает, поэтому в своем мейкфайле нам необходимо самим позаботиться о том, чтобы при запуске цели Debug исходные файлы были откомпилированы без оптимизации и с включением в выходной elf-файл отладочной информации. Для этого существует переменная VERSION.
Вам необходимо изменить ее значение на Release при выборе в поле «Build target» цели «Release».

Собираем проект простым нажатием на «Build – build» либо комбинацией клавиш «Ctrl + F9». В результате на вкладке «Build log» вы можете наблюдать процесс сборки. В случае его успешного завершения в этой вкладке появится следующее сообщение :

Process terminated with status 0 (0 minutes, 9 seconds)
0 errors, 0 warnings (0 minutes, 9 seconds)

После использования IDE Eclipse я привык видеть в окне менеджера проектов результаты работы компилятора и компоновщика. В Code::Blocks разработчики посчитали это ненужным , но возможность добавить каталоги с объектными и исполняемыми файлами у нас все же имеется.
Для этого кликните правой кнопкой мышки на названии проекта и выберите в выпадающем меню пункт «Project tree – Edit file types&categories…» . В появившемся окне «Categories & file types» нажмите на кнопку «Add» , чтобы добавить новую категорию. Для созданной категории необходимо через точку с запятой указать расширения файлов ,которые будут автоматически причислены к этой категории.

Если новая категория не появится в окне менеджера проектов автоматически , то нам придется добавить хотя бы один из файлов, относящийся к данной категории. Для этого снова кликните правой кнопкой мыши на проекте и выберите пункт меню «Add files…» и выберите нужный файл.

Настало время сказать несколько слов о самой тестовой программе. Пример очень простой .
Программа выводит в начале строку символов в USART и моргаем светодиодом с частотой приблизительно 7,6 Гц.
Задержка формируется благодаря встроенному в микроконтроллер таймеру TIMER2.
Используется один обработчик прерывания от таймера.
USART работает без прерываний. Это сделано мною специально для того, чтобы потом задействовать функции USART-а для вывода кодов ошибок через последовательный порт.
В этом случае использование USART-а является более предпочтительным , например , по сравнению с виртуальным портом на основе USB VCP.
Когда ваша программа попадет в обработчик HardFault_Handler , то никакие другие прерывания уже не будут доступны. Чтобы отправить перед входом в бесконечный цикл обработчика HardFault_Handler сообщение о том, что мы попали в обработчик исключения HardFault используется функция вывода в USART без прерываний.

Для проверки работоспособности нашей программы необходимо загрузить один из выходных файлов (test.elf , test.bin или test.hex) в микроконтроллер.
По-умолчанию исполняемый файл предназначен для загрузки в отладочную плату STM32H-103.
Если вы используете в качестве отладочной платы OLIMEXINO-STM32 , то вам необходимо закомметировать в Makefile строчку

DEFINE+= USE_STM32H_103

И раскомментировать

DEFINE+= USE_OLIMEXINO_STM32

Собрать проект и загрузить исполняемый образ в микроконтроллер.

Использование библиотеки Stm32 Std Peripheral Library мы обсудим в следующей статье.

Продолжение следует.

Viewed 42378 times by 6379 viewers

Code::Blocks: Создание проекта — Кафедра информатики математико-механического факультета СПбГУ

Создание проекта

Для полноценной разработки программы на C в Code::Blocks необходимо создать проект. Проект это по сути и есть разрабатываемая программа, исходный код которой может состоять из нескольких файлов: проект объединяет в себе ссылки на эти файлы, настройки компилятора и другие элементы конфигурации программы.

Каждому проекту создается отдельный каталог, где размещаются файлы проекта, а также файл с именем проекта и расширением .cbp, содержащий конфигурацию проекта. При переносе проекта на другой компьютер необходимо брать именно весь этот каталог, однако подкаталоги bin (содержит исполняемые файлы создаваемой программы) и obj (содержит объектные файлы создаваемой программы) лучше исключить.

Чтобы создать проект необходимо выбрать в меню

FileNewProject. В появившемся окне выбрать тип проекта: в данном курсе это Console Application.

Далее программа предложит пошагово настроить новый проект. Переход к следующуему шагу осуществляется нажатием Next, на последнем шаге необходимо будет выбрать Finish.

Первый шаг информационный, можно лишь отметить, чтобы при создании следующих проектов он пропускался. На втором шаге необходимо выбрать использумыей язык — C, не C++.

На третьем шаге необходимо указать имя проекта и папку для его размещения. Имя проекта (Project title) — имя создаваемой программы, папку (Folder to create project in) необходимо выбрать там, где у Вас запланировано место для хранения создаваемых программ (Мои документы на домашнем компьютере, подкаталог диск W: в компьютерных классах и т.п.)

На последнем шаге предлагается выбрать компилятор (GNU GCC Compiler), подключить две конфигурации сборки (их и нужно две — Debug для отладки и Release для публикации), поэтому здесь оставляем как есть (Finish).

Проект создан, в левой части можно найти файлы исходного кода, Code::Blocks создал файл main.c hello-world программой.

После создания проекта рекомендуется проверить настройки опций сборки: ProjectBuild options. В левой части окна — список конфигураций. Если активна строчка с именем проекта (здесь это MyProject), то это общие для всех конфигураций опции, опции конфигураций сборки (Debug, Release) добавляются к ним.

Рекомендуется, чтобы в общих для всех конфигураций сборки опциях компилятора (вкладка Compiler settings) была активна опция подключения всех предупреждений -Wall (Enable all common compiler warnings), так как предупреждения позволяют найти многие смысловые ошибки в верной с точки зрения синтаксиса программе.

Также можно подключить строгое следование стандарту ISO C (-pedantic, -pedantic-errors).

Конфигурация Debug должна дополнительно подключать опцию -g (Produce debugging symbols) без которой отладчик не сможет установить взаимно-однозначное соответствие между исполняемым файлом и исходным кодом (в конфигурации Release этой опции быть не должно, в частности потому, что при ее подключении программа будет работать медленнее, занимать больше места и др. )

Сборка, запуск и отладка

  1. Компиляция (сборка) проекта осуществляется с помощью меню BuildBuild. Сборка предполагает компиляцию, только если файлы исходного кода изменены. Принудительная полная перекомпиляция — BuildRebuild (может понадобиться, например, если изменялись опции сборки).
  2. Запуск проекта без отладчика осуществляется с помощью BuildRun или BuildBuild and run (в последнем случае предварительно осуществляется сборка изменений, но запускать без предварительной сборки не рекомендуется, так как можно пропустить предупреждения).
  3. Запуск в отладчике осуществляется с помощью DebugStart/Continue, однако в этом случае программа будет исполняться в отладчике без пауз, если не будут установлены точки прерывания. Для их установки и сняти нужно подвести курсор к строке кода и выбрать DebugToggle breakpoint.

    Начать пошаговое исполнение с начала первого оператора главной функции можно с помощью DebugStep into, в этом случае программа будет исполняться до той строки, где находится курсор.

    Также можно запустить в отладчике с остановкой в одном выбранном месте с помощью DebugRun to cursor, в этом случае программа будет исполняться до той строки, где находится курсор.

    Перед запуском в отладчике необходимо убедиться, что запускается именно отладочная конфигурация (Debug): BuildSelect target.

  4. Пошаговое исполнение в отладчике осуществляется с помощью DebugNext line (без входа в функции) и с помощью DebugStep into (со входом в функции).

    Окно наблюдений за значениями переменных программы можно подключить в DebugDebugging windowsWatches

FriendlyARM- Использование блоков кода для разработки приложений

 

В этом посте я продемонстрирую способы разработки программ для mini2440 с использованием блоков кода.

Code Blocks — это бесплатная кроссплатформенная среда разработки с мощными функциями.

Установите блоки кода с помощью Ubuntu Software Center. Просто введите блоки кода в поле поиска и нажмите «Установить».

После установки на панели запуска появится значок Code Blocks.

   

Нажмите значок, чтобы запустить блоки кода. Чтобы запустить новую программу, нажмите Кнопка Создать новый проект .

 

Выберите консольное приложение, нажмите кнопку «Перейти» и в следующем окне выберите C в качестве языка.

   

Нажмите «Далее» и введите имя для своего проекта, например, welcome.

   

Выберите компилятор как « GNU ARM GCC Compiler ».

   

Нажмите «Далее», чтобы открыть окно «Рабочее пространство». Слева на вкладке «Проекты» вы увидите название проекта «Добро пожаловать», а если развернуть «Источники», вы увидите  файл main. c создается автоматически. Дважды щелкните этот файл main.c.

      

По умолчанию отображается пример программы Hello world.

Поскольку мы компилируем программу для платформы ARM, мы должны выполнить следующие настройки компилятора:

Щелкните Настройки -> Компилятор и отладчик

Под выбранным компилятором убедитесь, что запись GNU ARM GCC Компилятор.

Теперь выберите вкладку Toolchainexecutables.

   

Эта часть является наиболее важной частью настроек компилятора. Пожалуйста, выберите, как показано на скриншоте ниже: Процедуру установки кросс-компилятора читайте в предыдущем посте здесь.

Убедитесь, что на вкладке Program Files установлены следующие параметры:

                 Компилятор C          :   arm-none-linux-gnueabi-gcc-4.4.3

C ++ Компилятор: Arm-none-linux-gnueabi-c ++

Линкер для динамических либеров: Arm-none-linux-gnueabi-g ++

Линкер для Static Libs: Arm-none-linux-gnueabi-gnueabi -AR

Отладчик: GDB

Программа: Сделайте

, чтобы выбрать путь. 0003

            /opt/FriendlyARM/toolschain/4.4.3/bin

Внутри этого каталога bin вы видите все необходимые файлы программы. Выберите в соответствии со списком выше.

Используемый отладчик: gdb и путь:

/opt/FriendlyARM/toolschain/4.4.3/arm-none-linux-gnueabi/debug-root/usr/bin

3

2 9 Нажмите ОК, чтобы прибыть на рабочее место.

Теперь введите код, как показано ниже, просто чтобы распечатать сообщение «Добро пожаловать в FriendlyARM…!» 5 раз:

   

Нажмите «Файл» -> «Сохранить все», а затем нажмите «Сборка» -> «Сборка». ПК.

            

Просто нажмите «Сборка». Bin-файл готов к передаче на целевое устройство ARM, mini2440.

По умолчанию файл результатов хранится у вас дома.

Открыть файловую систему, перейти к /Home/welcome/bin/Debug

                  

Там вы найдете исполняемый файл bin «добро пожаловать».

Чтобы передать этот файл на целевое устройство, используйте метод FTP. Откройте терминал Linux и перейдите в каталог, в котором находится ваш окончательный выходной файл. Вот он 

/Home/welcome/bin/Debug.

Чтобы запустить ftp, введите ftp 192.168.1.230 , который является IP-АДРЕСОМ нашего целевого устройства MINI2440.

                

Введите имя как plg   и пароль также как plg.

Теперь появляется приглашение ftp> , где вы вводите bin , чтобы указать тип файла для передачи.

Введите > put welcome

для передачи приветственного файла на mini2440.

           

Теперь пришло время протестировать вашу программу на целевом устройстве. Откройте терминал PuTTY

(ознакомьтесь с процедурой настройки здесь, в предыдущей публикации).

и измените каталог на /home/plg

В каталоге plg находится файл приветствия , который вы перенесли с ПК.

Введите # chmod +x welcome

, чтобы предоставить разрешение на выполнение файлу приветствия.

    

Теперь введите # ./welcome 

  ( точка косая черта имя файла ).

Поздравляю!! Вы видите результат приветственной программы. Вместо того, чтобы выполнять это в терминале PuTTY, вы можете сделать это на целевом устройстве, открыв встроенный в него терминал.

Нравится:

Нравится Загрузка…

debian — Как правильно добавить ARM в цель сборки (Code::blocks)

Задавать вопрос

спросил

Изменено 9 лет, 3 месяца назад

Просмотрено 12 тысяч раз

Я хочу разрабатывать приложения C++ для своего PI на своем ПК. Я создал среду разработки в Ubuntu с помощью IDE Code::blocks. Проблема в том, что мой ПК — X86, а PI — ARM. Итак, как я могу добавить ARM к цели сборки в Code::Blocks? Я переключился на компилятор ARM, но он не может найти компилятор.

 Не удалось автоматически определить путь установки "Компилятор GNU ARM GCC"...
Вы хотите использовать каталог установки этого компилятора по умолчанию?
 

И:

 XXX использует неверный компилятор. Вероятно, путь набора инструментов в параметрах компилятора настроен неправильно?! Пропуская...
 
  • debian
  • разработка программного обеспечения
  • arm
  • c++

Похоже, вам нужно настроить полный набор инструментов для кросс-компиляции (включая компоновщик и библиотеки). Согласно этому сообщению в блоге, вы можете настроить цепочку инструментов ARM с помощью crosstool-ng. После этого я бы написал make-файл или CMakeLists.txt для тестирования. Я не знаю Code::blocks, но, возможно, он может создавать проекты на основе make-файлов или CMakeLists.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *