Математические методы в программировании (ММвП)
Лабораторная работа ПРОГРАММИРОВАНИЕ ДЛЯ AVR В СРЕДЕ ECLIPSE
Рассматриваемые вопросы
Создание в среде Eclipse проекта на базе make-файла
Создание в среде Eclipse проекта на базе make-файла
Создание в среде Eclipse проекта на базе make-файла
Создание в среде Eclipse проекта на базе make-файла
Создание в среде Eclipse проекта на базе make-файла
Создание в среде Eclipse проекта на базе make-файла
Создание в среде Eclipse проекта на базе make-файла
Создание в среде Eclipse проекта на базе make-файла
Создание в среде Eclipse проекта на базе make-файла
Создание в среде Eclipse проекта на базе make-файла
Создание в среде Eclipse проекта на базе make-файла
Создание в среде Eclipse проекта на базе make-файла
Создание в среде Eclipse проекта на базе make-файла
Создание в среде Eclipse проекта на базе make-файла
Создание в среде Eclipse проекта на базе make-файла
Создание в среде Eclipse проекта на базе make-файла
Создание в среде Eclipse проекта на базе make-файла
Создание в среде Eclipse проекта на базе make-файла
Создание в среде Eclipse проекта на базе make-файла
Создание в среде Eclipse проекта на базе make-файла
Создание в среде Eclipse проекта на базе make-файла
Создание в среде Eclipse проекта на базе make-файла
Создание в среде Eclipse проекта на базе make-файла
Создание в среде Eclipse проекта на базе make-файла
Создание в среде Eclipse проекта на базе make-файла
Создание в среде Eclipse проекта на базе make-файла
Создание в среде Eclipse проекта на базе make-файла
Создание в среде Eclipse проекта на базе make-файла
Создание в среде Eclipse проекта на базе make-файла
Создание в среде Eclipse проекта на базе make-файла
Создание в среде Eclipse проекта на базе make-файла
Создание в среде Eclipse проекта на базе make-файла
Связь программного проекта в Eclipse со схемотехническим в Proteus
Связь программного проекта в Eclipse со схемотехническим в Proteus
Связь программного проекта в Eclipse со схемотехническим в Proteus
Связь программного проекта в Eclipse со схемотехническим в Proteus
Связь программного проекта в Eclipse со схемотехническим в Proteus
Связь программного проекта в Eclipse со схемотехническим в Proteus
Связь программного проекта в Eclipse со схемотехническим в Proteus
Дополнительные полезные настройки Eclipse-проекта
Дополнительные полезные настройки Eclipse-проекта
Дополнительные полезные настройки Eclipse-проекта
Дополнительные полезные настройки Eclipse-проекта
Дополнительные полезные настройки Eclipse-проекта
Дополнительные полезные настройки Eclipse-проекта
Дополнительные полезные настройки Eclipse-проекта
Дополнительные полезные настройки Eclipse-проекта
Дополнительные полезные настройки Eclipse-проекта
Дополнительные полезные настройки Eclipse-проекта
Дополнительные полезные настройки Eclipse-проекта
Дополнительные полезные настройки Eclipse-проекта
Дополнительные полезные настройки Eclipse-проекта
Дополнительные полезные настройки Eclipse-проекта
Дополнительные полезные настройки Eclipse-проекта
Дополнительные полезные настройки Eclipse-проекта
Дополнительные полезные настройки Eclipse-проекта
Дополнительные полезные настройки Eclipse-проекта
Дополнительные полезные настройки Eclipse-проекта
Спасибо за внимание
4.69M
Category: programmingprogramming

Математические методы в программировании (ММвП)

1. Математические методы в программировании (ММвП)

Преподаватель:
Олег Чеславович Ролич
кандидат технических наук, доцент
1

2. Лабораторная работа ПРОГРАММИРОВАНИЕ ДЛЯ AVR В СРЕДЕ ECLIPSE

2

3. Рассматриваемые вопросы

1. Создание в среде Eclipse
проекта на базе make-файла
2. Связь программного проекта в
Eclipse со схемотехническим в
Proteus
3. Дополнительные
полезные
настройки Eclipse-проекта
3

4. Создание в среде Eclipse проекта на базе make-файла

4

5. Создание в среде Eclipse проекта на базе make-файла

Здесь должно быть указано рабочее пространство
("надпроектная" папка), а не сам проект!!!
5

6. Создание в среде Eclipse проекта на базе make-файла

Закрытие окна приветствия
6

7. Создание в среде Eclipse проекта на базе make-файла

Окно Eclipse после закрытия окна приветствия
Необходимо убедиться в активной
перспективе
«C/C++»
и,
в
противном случае, выбрать её из
списка перспектив
7

8. Создание в среде Eclipse проекта на базе make-файла

Если в качестве перспективы по умолчанию установлена
«Java», а не «C/C++», она меняется нажатием на
кнопку «Open Perspective» и выбором из прилагаемого
списка
требуемой
перспективы.
Ненужную
перспективу «Java» можно закрыть нажатием на ней
правой клавишей мыши и выбором пункта «Close» в
появившемся меню
8

9. Создание в среде Eclipse проекта на базе make-файла

Смена перспективы
Внимание! Если «C/C++» отсутствует
в списке перспектив, её надо
будет установить посредством
соответствующего plug-in
cdt-master-x.x.x.zip
(процесс установки plug-in см. далее)
Кнопка «Open Perspective»
Список прилагаемых перспектив
(в будущем нам понадобятся две из
них: «C/C++» и «Debug»)
9

10. Создание в среде Eclipse проекта на базе make-файла

Исходное состояние Eclipse
10

11. Создание в среде Eclipse проекта на базе make-файла

Добавление папки проекта с
разработанной схемой
Шаг 1.
Начальная стадия
импортирования проекта
File → Import
11

12. Создание в среде Eclipse проекта на базе make-файла

Добавление папки проекта с разработанной схемой
Шаг 2.
Выбор типа
проекта
C/C++ →
Existing Code as
Makefile Project
→ Next
12

13. Создание в среде Eclipse проекта на базе make-файла

Добавление папки
проекта с
разработанной
схемой
Шаг 3.
Указание пути к
папке проекта
Внимание! Проект располагается в папке
рабочего пространства, выбранного при
запуске Eclipse как Workspace
Existing Code Location
→ Browse… → Выбор
папки проекта 13

14. Создание в среде Eclipse проекта на базе make-файла

Добавление папки
проекта с
разработанной
схемой
Шаг 4.
Результат указания
пути к папке
проекта
Finish
14

15. Создание в среде Eclipse проекта на базе make-файла

Добавление папки проекта с
разработанной схемой
Шаг 5.
Результат добавления проекта к
рабочему пространству
15

16. Создание в среде Eclipse проекта на базе make-файла

Добавление в
проект исходных
Си-файлов
Шаг 1.
Главное меню
«File → New →
Source File»
16

17. Создание в среде Eclipse проекта на базе make-файла

Добавление в проект
исходных Си-файлов
Шаг 2. Указание имени исходного Си-файла
Source file: main.c → Finish
17

18. Создание в среде Eclipse проекта на базе make-файла

Содержимое файла main.c
/*
* main.c
*
* Created on: 27.1.2016
* Author: Oleg
*/
#include <avr/sfr_defs.h>
#include <avr/iom128.h>
#include <avr/io.h>
#define REG_STRING_ENABLE
#define REG_COLUMN_ENABLE
#define STR_QUANTITY
#define DIGIT_PERIOD
8
0x1000
0x02
0x01
18

19. Создание в среде Eclipse проекта на базе make-файла

Содержимое файла main.c
static uint8_t aunFont[][STR_QUANTITY] = {
{
(uint8_t)~0x00,
(uint8_t)~0x00,
(uint8_t)~0x7E,
(uint8_t)~0xFF,
(uint8_t)~0x81,
(uint8_t)~0xFF,
(uint8_t)~0x7E,
(uint8_t)~0x00,
},
19

20. Создание в среде Eclipse проекта на базе make-файла

Содержимое файла main.c
{
(uint8_t)~0x00,
(uint8_t)~0x00,
(uint8_t)~0x80,
(uint8_t)~0xFF,
(uint8_t)~0xFF,
(uint8_t)~0x81,
(uint8_t)~0x00,
(uint8_t)~0x00,
},
20

21. Создание в среде Eclipse проекта на базе make-файла

Содержимое файла main.c
{
(uint8_t)~0x00,
(uint8_t)~0x00,
(uint8_t)~0xC6,
(uint8_t)~0xDF,
(uint8_t)~0xE3,
(uint8_t)~0xE3,
(uint8_t)~0x86,
(uint8_t)~0x00,
},
};
21

22. Создание в среде Eclipse проекта на базе make-файла

Содержимое файла main.c
int main ( void ) {
uint8_t unDispString = 1;
uint8_t unFontIndex = 0;
int32_t nDelayIn, nDelayOut;
int32_t nDigit = 0;
DDRA = 0xFF;
DDRB = 0x03;
PORTA = 0;
PORTB = 0;
22

23. Создание в среде Eclipse проекта на базе make-файла

Содержимое файла main.c
while (1) {
nDelayOut = DIGIT_PERIOD;
while (--nDelayOut > 0) {
PORTA = unDispString;
PORTB |= REG_STRING_ENABLE;
PORTB &= (~REG_STRING_ENABLE);
unDispString <<= 1;
if (!unDispString) {
unDispString = 1;
}
23

24. Создание в среде Eclipse проекта на базе make-файла

Содержимое файла main.c
PORTA = aunFont[nDigit][unFontIndex++];
PORTB |= REG_COLUMN_ENABLE;
PORTB &= (~REG_COLUMN_ENABLE);
unFontIndex &= (STR_QUANTITY - 1);
for (nDelayIn = 0; nDelayIn < 100; nDelayIn++) {
}
}
nDigit++;
nDigit %= (sizeof(aunFont) / STR_QUANTITY / sizeof(uint8_t));
}
return 0;
}
24

25. Создание в среде Eclipse проекта на базе make-файла

Создание в
среде
Eclipse
проекта на
базе makeфайла
Создание системы построения
проекта (make-файла)
Шаг 1. Начальная стадия добавления в проект нового файла
Главное меню «File → New → File from Template»
25

26. Создание в среде Eclipse проекта на базе make-файла

Создание в среде
Eclipse проекта
на базе makeфайла
Создание системы
построения
проекта (makeфайла)
Имя «makefile» стандартное
Данный файл не имеет расширения
Шаг 2. Завершающая
стадия добавления в
проект нового файла –
make-файла
File name: makefile →
Finish»
26

27. Создание в среде Eclipse проекта на базе make-файла

Создание системы построения
проекта (make-файла)
Шаг 3. Результат создания make-файла
Созданный makefile проекта и его
изначально пустое содержимое
27

28. Создание в среде Eclipse проекта на базе make-файла

Создание системы построения проекта (make-файла)
Желательное совпадение значения
TARGET с названием проекта
Шаг 4. Написание make-файла
28

29. Создание в среде Eclipse проекта на базе make-файла

Содержимое make-файла
# Target file name (without extension)
TARGET=LED_Display
# Define commands
CC=avr-gcc
OBJCOPY=avr-objcopy
SIZE = avr-size
REMOVE= rm -f
COPY= cp -f
MOVE= mv -f
REMOVEDIR = rmdir
MAKEDIR= mkdir –v
DEBUG=-gdwarf-2
OPTIM=-O0
M_CPU=atmega128
LINKER_FLAGS= -I. -Wl,-Map,$(TARGET).map -mmcu=$(M_CPU)
29

30. Создание в среде Eclipse проекта на базе make-файла

Содержимое make-файла
CFLAGS= -I. \
-D _AVR_IO_H_ \
-mmcu=$(M_CPU) -Wall $(OPTIM) $(DEBUG) \
-std=gnu99 \
-funsigned-char -funsigned-bitfields -fpack-struct \
-fshort-enums -MMD -MP
SOURCE= main.c
OBJS = $(SOURCE:.c=.o)
30

31. Создание в среде Eclipse проекта на базе make-файла

Содержимое make-файла
all: begin Debug $(TARGET).bin size finished move end
$(TARGET).bin : $(TARGET).elf
$(OBJCOPY) -O ihex -R .eeprom -R .fuse -R .lock -R .signature
$(TARGET).elf $(TARGET).hex
$(TARGET).elf : $(OBJS)
$(CC) $(LINKER_FLAGS) -o $(TARGET).elf $(OBJS)
$(OBJS) : %.o : %.c
$(CC) $(CFLAGS) -c -o $@ $<
size:
$(SIZE) --format=berkeley $(TARGET).elf
# Define Messages
# English
MSG_ERRORS_NONE = Errors: none
MSG_MOVE = ------ Moving output files into Debug folder -----MSG_BEGIN = -------- begin -------MSG_END = -------- end -------31

32. Создание в среде Eclipse проекта на базе make-файла

Содержимое make-файла
begin:
@echo
@echo $(MSG_BEGIN)
finished:
@echo $(MSG_ERRORS_NONE)
move: Debug
@echo
@echo $(MSG_MOVE)
@echo
$(MOVE) *.d Debug
$(MOVE) $(OBJS) Debug
$(MOVE) $(TARGET).elf Debug
$(MOVE) $(TARGET).hex Debug
$(MOVE) $(TARGET).map Debug
32

33. Создание в среде Eclipse проекта на базе make-файла

end:
@echo $(MSG_END)
@echo
Debug:
$(MAKEDIR) Debug
clean : begin clean_list end
clean_list :
touch Makefile
@echo $(MSG_CLEANING)
$(REMOVE) *.d
$(REMOVE) $(OBJS)
$(REMOVE) $(TARGET).hex
$(REMOVE) $(TARGET).bin
$(REMOVE) $(TARGET).elf
$(REMOVE) $(TARGET).map
$(REMOVE) Debug/*
$(REMOVEDIR) Debug
Содержимое
make-файла
33

34. Создание в среде Eclipse проекта на базе make-файла

Первая попытка
построения проекта
Шаг 1.
Запуск построения проекта
(запуск цели all make-файла)
Главное меню
«Project → Build All (Ctrl+B)»
34

35. Создание в среде Eclipse проекта на базе make-файла

Успешное построение проекта
Искомый elf-файл,
необходимый для
Proteus-проекта
35

36. Связь программного проекта в Eclipse со схемотехническим в Proteus

Шаг 1.
Вход в диалоговую панель
редактирования свойств
микроконтроллера
36

37. Связь программного проекта в Eclipse со схемотехническим в Proteus

Шаг 2.
Выбор программного elf-файла
37

38. Связь программного проекта в Eclipse со схемотехническим в Proteus

Искомый elf-файл внутри рабочего проекта
«LED_Display», который принадлежит
рабочему пространству «ATmega»
38

39. Связь программного проекта в Eclipse со схемотехническим в Proteus

Результат выбора программного
elf-файла
39

40. Связь программного проекта в Eclipse со схемотехническим в Proteus

Проверка корректности связи программного проекта в
Eclipse со схемотехническим в Proteus
Шаг 1. Запуск модели
40

41. Связь программного проекта в Eclipse со схемотехническим в Proteus

Шаг 2. Контроль состояния
отладочных и информационных окон
41

42. Связь программного проекта в Eclipse со схемотехническим в Proteus

Демонстрационное видео
результирующей работы
прибора в среде Proteus
42

43. Дополнительные полезные настройки Eclipse-проекта

Устранение семантических ошибок
Шаг 1. Выявление семантических
ошибок
43

44. Дополнительные полезные настройки Eclipse-проекта

Устранение семантических ошибок
Шаг 2. Переход к свойствам проекта
44

45. Дополнительные полезные настройки Eclipse-проекта

Устранение семантических ошибок
Шаг 3. Подготовка к указанию
пути к стандартным
библиотекам
45

46. Дополнительные полезные настройки Eclipse-проекта

Устранение семантических ошибок
Шаг 4.
Непосредственное
указание пути к
стандартной
библиотеке
46

47. Дополнительные полезные настройки Eclipse-проекта

Устранение семантических ошибок
Результат устранения семантических ошибок
47

48. Дополнительные полезные настройки Eclipse-проекта

Во
избежание
повторного
прохождения
длительного
процесса настройки аналогичных
проектов
новые
проекты
настоятельно
рекомендуется
создавать на базе существующих
путём копирования (Ctrl+C →
Ctrl+V)
48

49. Дополнительные полезные настройки Eclipse-проекта

Шаг 1. Копирование
текущего проекта в
буфер обмена
49

50. Дополнительные полезные настройки Eclipse-проекта

Шаг 2. Вставка
скопированного
проекта из буфера
обмена
50

51. Дополнительные полезные настройки Eclipse-проекта

Шаг 3. Коррекция
имени нового
проекта
51

52. Дополнительные полезные настройки Eclipse-проекта

Дополнительные
полезные
настройки Eclipseпроекта
Шаг 4. Очистка
нового проекта
52

53. Дополнительные полезные настройки Eclipse-проекта

Дополнительные
полезные
настройки Eclipseпроекта
Шаг 5. Коррекция
имени нового
проекта в его
make-файле
53

54. Дополнительные полезные настройки Eclipse-проекта

Дополнительные
полезные
настройки Eclipseпроекта
Шаг 6. Построение
нового проекта
54

55. Дополнительные полезные настройки Eclipse-проекта

Шаг 7. Контроль
безошибочного
построения нового
проекта
55

56. Дополнительные полезные настройки Eclipse-проекта

Дополнительны
е полезные
настройки
Eclipse-проекта
Шаг 1. Подготовка к настройке
изменения свойства
автоматического сохранения всех
несохранённых файлов перед
построением проекта
56

57. Дополнительные полезные настройки Eclipse-проекта

Дополнительные
полезные
настройки Eclipseпроекта
Шаг 2. Непосредственное
изменение свойства
автоматического
сохранения всех
несохранённых файлов
перед построением проекта
57

58. Дополнительные полезные настройки Eclipse-проекта

Дополнительные
полезные
настройки Eclipseпроекта
Установка связи проекта с
различными библиотеками
Шаг 1.
Начало изменения свойств проекта
Главное меню «Project → Properties»
58

59. Дополнительные полезные настройки Eclipse-проекта

Установка связи проекта с различными библиотеками
Шаг 2.
59

60. Дополнительные полезные настройки Eclipse-проекта

Установка связи проекта с различными библиотеками
Шаг 3. Указание пути к библиотекам в файловой системе
60

61. Дополнительные полезные настройки Eclipse-проекта

Результат связи проекта с
выбранной библиотекой
61

62. Спасибо за внимание

English     Русский Rules