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

Материал из me-robotics wiki
Строка 2: Строка 2:
 
Необходимо скачать архив с программой по ссылке https://disk.yandex.ru/d/C9urM9QtBTNLSg и распаковать.
 
Необходимо скачать архив с программой по ссылке https://disk.yandex.ru/d/C9urM9QtBTNLSg и распаковать.
  
Запускать файлом eclipse.exe из папки программы. При первом запуске в окне программы закрыть вкладку Welcome нажатием на крестик рядом с именем вкладки.
+
Запускать файлом '''eclipse.exe''' из папки программы. При первом запуске в окне программы закрыть вкладку Welcome нажатием на крестик рядом с именем вкладки.
  
== Создание проекта ==
+
==Создание проекта==
[[Файл:Eclipse Target Processor.png|мини|360x360пкс]]
 
 
1. В строке меню нажать File->New->C/C++ Project.
 
1. В строке меню нажать File->New->C/C++ Project.
  
Строка 31: Строка 30:
 
5) Нажать в нижней части окна Apply and Close, нажать Next.</blockquote>5. В выпадающем списке Toolchain name выбрать ''RISC-V GCC/Newlib (riscv64-unknown-elf-gcc)'', нажать Finish.
 
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. Проект создан.
+
6. Скачать [https://disk.yandex.ru/d/fw-_fyVaQjMDVw файл crt0.s], распаковать в любое место, скопировать в папку проекта в области Project Explorer. В появившемся окне ответить ''Copy files and folder'' и нажать OK. Проект создан.<gallery>
 +
Файл:Eclipse Target Processor.png
 +
Файл:Linker settings - Eclipse IDE.png
 +
Файл:Copy runtime folder to project - Eclipse IDE.png
 +
</gallery>
  
== Запись программы в память ==
+
==Создание файлов и компиляция==
 +
Чтобы создать файл main.c нажмите правой кнопкой мыши на папку проекта в области Project Explorer и выбирете New->Source File. В открывшемся окне в поле Source file введите main.c и нажмите Finish. В окно редактора кода вставте код, приведенный ниже.
 +
{| class="wikitable"
 +
|#include <mcu32_memory_map.h>
 +
<nowiki>#</nowiki>include <pad_config.h>
  
== Запуск отладки ==
+
<nowiki>#</nowiki>include <gpio.h>
 +
 
 +
<nowiki>#</nowiki>include <power_manager.h>
 +
 
 +
 
 +
void main() {
 +
 
 +
   PM->CLK_APB_P_SET = PM_CLOCK_GPIO_0_M | PM_CLOCK_GPIO_1_M;
 +
 
 +
   PM->CLK_APB_M_SET = PM_CLOCK_PAD_CONFIG_M | PM_CLOCK_WU_M | PM_CLOCK_PM_M;
 +
 
 +
   for (volatile int i = 0; i < 10; i++) ;
 +
 
 +
 
 +
   PAD_CONFIG->PORT_1_CFG = 1 << (13 << 1);
 +
 
 +
   GPIO_1->DIRECTION_OUT = 1 << 13;
 +
 
 +
 
 +
   while (1) {
 +
 
 +
       GPIO_1->OUTPUT = 1 << 13;
 +
 
 +
       for (volatile int i = 0; i < 500000; i++);
 +
 
 +
       GPIO_1->OUTPUT = 0;
 +
 
 +
       for (volatile int i = 0; i < 500000; i++);
 +
 
 +
   }
 +
 
 +
}
 +
|}
 +
В строке меню выберите Project->Build All. При правильной настройке проект успешно соберется.
 +
 
 +
==Загрузка программы в ОЗУ контроллера==
 +
 
 +
==Запуск отладки==
 +
 
 +
==Запись программы в ПЗУ==

Версия 22:28, 11 ноября 2021

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

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

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

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

1. В строке меню нажать File->New->C/C++ Project.

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

3. В поле Project Name ввести название проекта. В правой области Project type должно быть выбрано Empty Project, в левой области Toolchains выбрать RISC-V Cross GCC. Нажать Next.

4. Нажать на кнопку Advanced Settings..., откроется окно, в левой части которого раскрыть C/C++ Build и выбрать Settings.

Все необходимые настройки находятся на вкладке Tool Settings, настройки объединены в группы, которые выбираются в дереве в левой части вкладки

1) Начнем с Target Processor. В выпадающем списке Architecture выбрать RV32I (-march=rv32i*), отметить Multiply extension (RVM), отметить Compressed extension (RVC), в списке Integer ABI выбрать ILP32 (-mabi=ilp32*), в списке Align выбрать Strict (-mstrict-align).

2) В группе Warnings рекомендуем отметить Enable all common warnings (-Wall).

3) В подгруппе Includes группы GNU RISC-V Cross C Compiler вставить пути, перечисленные ниже (наиболее простой способ - выделить все пути, скопировать, кликнуть по области под Include paths и нажать Ctrl+V).

"${eclipse_home}\shared\include"

"${eclipse_home}\shared\periphery"

4) В подгруппе General группы GNU RISC-V Cross C Linker вставить путь до файла, указанный ниже.

"${eclipse_home}\shared\ldscripts\link_ramonly.ld"

В нижней части подгруппы отметить пункты Do not use standart start files (-nostartfiles) и No startup or default libs (-nostdlib)

5) Нажать в нижней части окна Apply and Close, нажать Next.

5. В выпадающем списке Toolchain name выбрать RISC-V GCC/Newlib (riscv64-unknown-elf-gcc), нажать Finish. 6. Скачать файл crt0.s, распаковать в любое место, скопировать в папку проекта в области Project Explorer. В появившемся окне ответить Copy files and folder и нажать OK. Проект создан.

Создание файлов и компиляция

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

#include <mcu32_memory_map.h>

#include <pad_config.h>

#include <gpio.h>

#include <power_manager.h>


void main() {

   PM->CLK_APB_P_SET = PM_CLOCK_GPIO_0_M | PM_CLOCK_GPIO_1_M;

   PM->CLK_APB_M_SET = PM_CLOCK_PAD_CONFIG_M | PM_CLOCK_WU_M | PM_CLOCK_PM_M;

   for (volatile int i = 0; i < 10; i++) ;


   PAD_CONFIG->PORT_1_CFG = 1 << (13 << 1);

   GPIO_1->DIRECTION_OUT = 1 << 13;


   while (1) {

       GPIO_1->OUTPUT = 1 << 13;

       for (volatile int i = 0; i < 500000; i++);

       GPIO_1->OUTPUT = 0;

       for (volatile int i = 0; i < 500000; i++);

   }

}

В строке меню выберите Project->Build All. При правильной настройке проект успешно соберется.

Загрузка программы в ОЗУ контроллера

Запуск отладки

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