Корзина

0 Товары - 0.00 RUB
В корзину

Курсы Валют

Курсы Валют  Дата ЦБ
Нал.USD
24.11 58.46
Нал.EUR
24.11 69.18
Нал.CNY
24.11 88.80

Оплата

visa

Реклама

Блог

Первый проект для VE-LCMXO27000HC. Часть 1.

Наконец то у нас дошли руки до нашей отладочной платы VE-LCMXO27000HC. По традиции в первой части проекта мы создадим USB CDC устройство на основе микроконтроллера MK20DN32 компании NXP. Когда мы задумывали проект по продвижению отладочных плат с FPGA и ARM процессором на борту, данный контроллер производился компанией FreeScale. Кто бы мог подумать что и она, вслед за Motorola перестанет существовать?

Среду разработки Eclipse мы уже настроили в нашей прошлой статье первый проект для ve-ep4ce10e часть 1. Поэтому сразу приступим к созданию проекта, у нас он называется usb_mk20_rom:

pic1

Оставляем две стандартные конфигурации Release и Debug:

pic2

Тулчейн выбираем, настроенны ранее:

pic3

На этом шаге нужно скачать наш проект (ссылка ниже). Распаковать содержимое архива в папку созданного проекта, в вашей директории workspace. И нажав на созданном проекте правую клавишу мыши, выбрать пункт меню Refresh.

pic4

Структура проекта должна выглядеть так:

pic5

Далее настроим проект, сначала выберем тип процессора, тут все стандартно:

pic6

В препроцессоре добавим предопределенный символ:

TWR_K20X128

Этот дефайн определяет тип отладочной платы. Наш пример взят из комплекта к отладочной плате TWR_K20X128.

Настройка путей поиска заголовочных файлов:

pic7

Настройка линкера:

pic8

Далее создадим конфигурацию отладчика. Для этого выберем пункт меню Run->External tools->External Tools->External Tools Gonfigurations. Назовем нашу конфигурацию jlink-swd mk20dn32, в поле Locations пропишем путь к GDB серверу: D:\Program Files (x86)\SEGGER\JLink_V600i\JLinkGDBServerCL.exe. В качестве аргументов передадим строку -select USB -device MK20DN32xxx5 -if SWD -speed auto.

pic9

На вкладке Common поставим галку на пункт External Tools, после чего наша конфигурация появится в меню быстрого доступа.

pic10

Далее выберем пункт Run->Debug Configurations:

 pic11

На вкладке Debugger прописываем путь до нашего отладчика, у нас это D:\dev\ARM_toolchain\arm_gcc\bin\arm-none-eabi-gdb.exe. Параметры соединения показаны ниже:

pic12

На вкладке Startup прописываем команды инициализации:

monitor speed auto
monitor endian little
monitor flash device = MK20DN32xxx5
monitor flash download = 1
monitor flash breakpoints = 1

 pic13

На вкладке Common добавляем нашу конфигурацию в меню отладки.

pic14

Изменим функцию static void Virtual_Com_App(void). Добавим Слово "Символ=" в возращаемом пакете:

C++ Code:
  1. /******************************************************************************
  2.  *
  3.  * @name Virtual_Com_App
  4.  *
  5.  * @brief Implements Loopback COM Port
  6.  *
  7.  * @param None
  8.  *
  9.  * @return None
  10.  *
  11.  *****************************************************************************
  12.  * Receives data from USB Host and transmits back to the Host
  13.  *****************************************************************************/
  14. static void Virtual_Com_App(void)
  15. {
  16. static uint_8 status = 0;
  17. /* Loopback Application Code */
  18. if(g_recv_size)
  19. {
  20. /* Copy Received Buffer to Send Buffer */
  21. for (status = 0; status < g_recv_size; status++)
  22. {
  23. g_curr_send_buf[0]='С';
  24. g_curr_send_buf[1]='и';
  25. g_curr_send_buf[2]='м';
  26. g_curr_send_buf[3]='в';
  27. g_curr_send_buf[4]='о';
  28. g_curr_send_buf[5]='л';
  29. g_curr_send_buf[6]='=';
  30. g_curr_send_buf[status+7] = g_curr_recv_buf[status];
  31. }
  32. g_curr_send_buf[status+7]='\r';
  33. g_curr_send_buf[status+8]='\n';
  34.  
  35. g_send_size = g_recv_size+9;
  36. g_recv_size = 0;
  37. }
  38. if(g_send_size)
  39. {
  40. /* Send Data to USB Host*/
  41. uint_8 size = g_send_size;
  42. g_send_size = 0;
  43. status = USB_Class_CDC_Interface_DIC_Send_Data(CONTROLLER_ID,
  44. g_curr_send_buf,size);
  45. if(status != USB_OK)
  46. {
  47. /* Send Data Error Handling Code goes here */
  48. }
  49. }
  50.  
  51. return;
  52. }

 Компилируем наш проект:

Invoking: Cross ARM GNU Print Size
arm-none-eabi-size --format=berkeley "ve_k20_usb_cdc.elf"
   text	   data	    bss	    dec	    hex	filename
  14652	    392	   2832	  17876	   45d4	ve_k20_usb_cdc.elf
Finished building: ve_k20_usb_cdc.siz
 

00:04:22 Build Finished (took 451ms)

 В меню Run->External Tools выбираем созданный нами пункт jlink-swd mk20dn32 после этого мы должны подключиться к нашей плате:

pic15

 Запускаем отладку нажав на значок с зеленым пауком ))) и выбрав там пункт usb_mk20_rom Debug :

pic16

В результате мы получили USB CDC устройство, которым можно управлять с помощью утилиты Putty:

Исходные файлы проекта: usb_mk20_rom.zip

Перевод

Вход

Или классический вход:

Время

Карта сайта Визуальная электроника