Быстрый старт в Eclipse IDE: различия между версиями

Материал из MIK32 микроконтроллер
Нет описания правки
Нет описания правки
(не показано 11 промежуточных версий этого же участника)
Строка 1: Строка 1:
== Установка и запуск программы ==
== Установка и запуск программы ==
Необходимо скачать архив с программой по ссылке https://disk.yandex.ru/d/C9urM9QtBTNLSg и распаковать.
Необходимо скачать архив с программой по ссылке https://disk.yandex.ru/d/hJidR6OVDKm-AA и распаковать.


Запускать файлом '''eclipse.exe''' из папки программы. При первом запуске в окне программы закрыть вкладку Welcome нажатием на крестик рядом с именем вкладки.
Запускать файлом '''eclipse.exe''' из папки программы.


==Создание проекта==
==Создание проекта==
1. В строке меню нажать File->New->C/C++ Project.
0. Скачать папку-шаблон проекта [https://disk.yandex.ru/d/AieGvNTL7d-FoQ project-template], распаковать, переименовать по названию проекта, скопировать в папку mcu32-ide/workspace.


2. В открывшемся окне выбрать C Managed Build и нажать Next.
1. В строке меню нажать File->Import...


3. В поле Project Name ввести название проекта. В правой области Project type должно быть выбрано ''Empty Project'', в левой области Toolchains выбрать ''RISC-V Cross GCC''. Нажать Next.
2. В открывшемся окне раскрыть группу General и выбрать Existing Projects into Workspace, нажать Next


4. Нажать на кнопку Advanced Settings..., откроется окно, в левой части которого раскрыть ''C/C++ Build'' и выбрать Settings.<blockquote>Все необходимые настройки находятся на вкладке Tool Settings, настройки объединены в группы, которые выбираются в дереве в левой части вкладки
3. Нажать кнопку Browse..., выбрать папку проекта, убедиться что в области Projects проект отмечен галочкой, нажать Finish.<gallery>
1) Начнем с ''Target Processor''. В выпадающем списке Architecture выбрать ''RV32I (-march=rv32i*)'', отметить ''Multiply extension (RVM)'', отметить ''Compressed extension (RVC)'', в списке Integer ABI выбрать ''ILP32 (-mabi=ilp32*)'', в списке Align выбрать ''Strict (-mstrict-align)''.
Файл:Импорт шаблона проекта шаг 1 - Eclipse IDE.png
 
Файл:Импорт шаблона проекта шаг 2 - Eclipse IDE.png
2) В группе Warnings рекомендуем отметить Enable all common warnings (-Wall).
Файл:Импорт шаблона проекта шаг 3 - Eclipse IDE.png
 
3) В подгруппе Includes группы GNU RISC-V Cross C Compiler вставить пути, перечисленные ниже (наиболее простой способ - выделить все пути, скопировать, кликнуть по области под Include paths и нажать Ctrl+V).
 
<code>"${eclipse_home}\shared\include"</code>
 
<code>"${eclipse_home}\shared\periphery"</code>
 
4) В подгруппе General группы GNU RISC-V Cross C Linker вставить путь до файла, указанный ниже.
 
<code>"${eclipse_home}\shared\ldscripts\link_ramonly.ld"</code>
 
В нижней части подгруппы отметить пункты ''Do not use standart start files (-nostartfiles)'' и ''No startup or default libs (-nostdlib)''
 
5) Нажать в нижней части окна Apply and Close, нажать Next.</blockquote>5. В выпадающем списке Toolchain name выбрать ''RISC-V GCC/Newlib (riscv64-unknown-elf-gcc)'', нажать Finish.
 
6. Скачать [https://disk.yandex.ru/d/fw-_fyVaQjMDVw файл crt0.s], распаковать в любое место, скопировать в папку проекта в области Project Explorer. В появившемся окне ответить ''Copy files and folder'' и нажать OK. Проект создан.<gallery>
Файл:Eclipse Close Welcome.png
Файл:Eclipse Target Processor.png
Файл:Includes settings - Eclipse IDE.png
Файл:Linker settings - Eclipse IDE.png
Файл:Copy runtime folder to project - Eclipse IDE.png
</gallery>
</gallery>


==Создание файлов и компиляция==
==Создание новых файлов==
Чтобы создать файл [https://disk.yandex.ru/d/OBvGzAk2n8YZdA main.c] нажмите правой кнопкой мыши на папку проекта в области Project Explorer и выбирете New->Source File. В открывшемся окне в поле Source file введите main.c и нажмите Finish. В окно редактора кода вставте код, приведенный ниже.
[[Файл:Main.c location - Eclipse IDE.png|мини|228x228пкс]]
{| class="wikitable"
В проекте уже создан файл main.c, он находится в папке src. Для начала работы раскройте в Project Explorer папку с названием вашего проекта, затем раскройте папку src и дважды щелкните по файлу main.c.
|#include <mcu32_memory_map.h>
<nowiki>#</nowiki>include <pad_config.h>


<nowiki>#</nowiki>include <gpio.h>
Чтобы создать новый файл с исходным кодом нажмите правой кнопкой мыши на папку src проекта в области Project Explorer и выбирете New->Source File. В открывшемся окне в поле Source file введите main.c и нажмите Finish. Аналогично командой New->Header file создается заголовочный файл.


<nowiki>#</nowiki>include <power_manager.h>
==Сборка программы для запуска из ОЗУ и загрузка в ОЗУ контроллера==
Для сборки программы для запуска из ОЗУ необходимо переключить конфигурацию сборки на Debug RAM - для этого необходимо нажать на треугольник рядом с иконкой молотка на панели инструментов, выбрать 2 Debug RAM. Сборка уже должна запуститься, при дальшейшей разработке будет достаточно нажать на кнопку с иконкой молотка или сочетание клавиш <code>Ctrl</code>+<code>B</code>.


Затем необходимо нажать на треугольник рядом с кнопкой External Tools и выбрать 2 Load elf Image для загрузки программы в МК.


void main() {
В случае успешной записи в консоли будет видна строка X bytes written at address 0x02000000.


   PM->CLK_APB_P_SET = PM_CLOCK_GPIO_0_M | PM_CLOCK_GPIO_1_M;
В случае появления ошибок вида:<blockquote>Error: Target not examined yet


   PM->CLK_APB_M_SET = PM_CLOCK_PAD_CONFIG_M | PM_CLOCK_WU_M | PM_CLOCK_PM_M;
Error: riscv.cpu: Unsupported DTM version: 15</blockquote>проверьте питание МК и соединение с отладчиком, выполните сброс, проверьте наличие колебаний на часовом кварце.


   for (volatile int i = 0; i < 10; i++) ;
В случае появления ошибок вида:<blockquote>Error: no device found


Error: unable to open ftdi device with vid 0403, pid 6010, description '*', serial '*' at bus location '*'</blockquote>


   PAD_CONFIG->PORT_1_CFG = 1 << (13 << 1);
проверьте подключение программатора к компьютеру, проверьте установку драйверов для программатора.<gallery>
Файл:Debug RAM build mode - Eclipse IDE.png
Файл:External Tools - Eclipse IDE.png
Файл:Load program in RAM - Eclipse IDE.png
Файл:Mcu32 load succesful console log.png
</gallery>


   GPIO_1->DIRECTION_OUT = 1 << 13;
==Запись программы в ПЗУ==
Для сборки программы для запуска из ПЗУ необходимо переключить конфигурацию сборки на Debug EEPROM - для этого необходимо нажать на треугольник рядом с иконкой молотка на панели инструментов, выбрать 1 Debug EEPROM. Сборка уже должна запуститься, при дальшейшей разработке будет достаточно нажать на кнопку с иконкой молотка или сочетание клавиш <code>Ctrl</code>+<code>B</code>.


Затем необходимо нажать на треугольник рядом с кнопкой External Tools и выбрать 1 Load EEPROM hex для загрузки программы в ПЗУ МК.


   while (1) {
В случае успешной записи в консоли будет видна строка


       GPIO_1->OUTPUT = 1 << 13;
EEPROM check through APB done!<gallery>
 
Файл:EEPROM config - Eclipse IDE.png
       for (volatile int i = 0; i < 500000; i++);
Файл:Load script EEPROM - Eclipse IDE.png
 
Файл:EEPROM load console output - Eclipse IDE.png
       GPIO_1->OUTPUT = 0;
</gallery>
 
       for (volatile int i = 0; i < 500000; i++);
 
   }
 
}
|}
В строке меню выберите Project->Build All. При правильной настройке проект успешно соберется.
 
==Загрузка программы в ОЗУ контроллера==
 
==Запуск отладки==
 
==Запись программы в ПЗУ==

Версия от 12:13, 23 декабря 2021

Установка и запуск программы

Необходимо скачать архив с программой по ссылке https://disk.yandex.ru/d/hJidR6OVDKm-AA и распаковать.

Запускать файлом eclipse.exe из папки программы.

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

0. Скачать папку-шаблон проекта project-template, распаковать, переименовать по названию проекта, скопировать в папку mcu32-ide/workspace.

1. В строке меню нажать File->Import...

2. В открывшемся окне раскрыть группу General и выбрать Existing Projects into Workspace, нажать Next

3. Нажать кнопку Browse..., выбрать папку проекта, убедиться что в области Projects проект отмечен галочкой, нажать Finish.

Создание новых файлов

Main.c location - Eclipse IDE.png

В проекте уже создан файл main.c, он находится в папке src. Для начала работы раскройте в Project Explorer папку с названием вашего проекта, затем раскройте папку src и дважды щелкните по файлу main.c.

Чтобы создать новый файл с исходным кодом нажмите правой кнопкой мыши на папку src проекта в области Project Explorer и выбирете New->Source File. В открывшемся окне в поле Source file введите main.c и нажмите Finish. Аналогично командой New->Header file создается заголовочный файл.

Сборка программы для запуска из ОЗУ и загрузка в ОЗУ контроллера

Для сборки программы для запуска из ОЗУ необходимо переключить конфигурацию сборки на Debug RAM - для этого необходимо нажать на треугольник рядом с иконкой молотка на панели инструментов, выбрать 2 Debug RAM. Сборка уже должна запуститься, при дальшейшей разработке будет достаточно нажать на кнопку с иконкой молотка или сочетание клавиш Ctrl+B.

Затем необходимо нажать на треугольник рядом с кнопкой External Tools и выбрать 2 Load elf Image для загрузки программы в МК.

В случае успешной записи в консоли будет видна строка X bytes written at address 0x02000000.

В случае появления ошибок вида:

Error: Target not examined yet Error: riscv.cpu: Unsupported DTM version: 15

проверьте питание МК и соединение с отладчиком, выполните сброс, проверьте наличие колебаний на часовом кварце. В случае появления ошибок вида:

Error: no device found Error: unable to open ftdi device with vid 0403, pid 6010, description '*', serial '*' at bus location '*'

проверьте подключение программатора к компьютеру, проверьте установку драйверов для программатора.

Запись программы в ПЗУ

Для сборки программы для запуска из ПЗУ необходимо переключить конфигурацию сборки на Debug EEPROM - для этого необходимо нажать на треугольник рядом с иконкой молотка на панели инструментов, выбрать 1 Debug EEPROM. Сборка уже должна запуститься, при дальшейшей разработке будет достаточно нажать на кнопку с иконкой молотка или сочетание клавиш Ctrl+B.

Затем необходимо нажать на треугольник рядом с кнопкой External Tools и выбрать 1 Load EEPROM hex для загрузки программы в ПЗУ МК.

В случае успешной записи в консоли будет видна строка

EEPROM check through APB done!