Использование под Linux платы TI LunchPad F28027F

Использование под Linux платы TI LunchPad F28027F

Чуть ранее я уже писал  на форуме, поэтому, если вы этой темой заинтересованны, вероятнее всего что более детальная или подробрая информация будет там, однако не смотря на это, тут тоже помещю.
Изображение

Тут будет обзор тем:

  • Подключение LunchPad F28027F
  • Подключение терминала
  • Установка CCS v6
  • Определение отладчика
  • Работа в CCS и Debug кода в Linux
  • Установка примеров кода для С2000

 

 


Подключение LunchPad F28027F
Для проверки нужно лодключить ланчпад, Для этого нужно настроить права доступа на USB. В файле

/etc/udev/rules.d/70-persistent-uart.rules

И делаем по аналогии как было тут viewtopic.php?f=26&t=2053
Нужно написать вот такую строчку

SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", NAME="%k", MODE="0666"

это позволит при подключении предоставлять права доступа на запись и чтение, для /dev/ttyUSB0

Подключение терминала
В домашней директории должен быть конфиг для терминальной программы, в моем случае это minicom

.minirc.dfl

С содержимым как минимум :~$ cat .minirc.dfl

# Автоматически сгенерированный файл - используйте меню настройки minicom
# для изменения параметров.
pu port /dev/ttyUSB0
pu downdir /home/stas/minicom_rx

Вместо /home/stas/ — нужный юзер
Если всё корректно, то в терминале будет видно вот такое сообщение

Дата компиляции Jan  1 2014, 17:13:22.
Port /dev/ttyUSB0, 02:37:36
Нажмите CTRL-A Z для получения подсказки по клавишам
77777777777777777777777777777777777777777777777777777777777777777777777777777
77777777777777777777777777777777777777777777777777777777777777777777777777777
77777777777777777777777777777777777777777777777777777777777777777777777777777
77777777777777777777777777777777777777777777777777777777777777777777777777777
77777777777777777777777777777777777777777777777777777777777777777777777777777
77777777777777777777777:::::::::::::77777777777777777777777777777777777777777
77777777777777777777777:::::::::::::77777777777777777777777777777777777777777
77777777777777777777777:::::::::::::7777777=~~~:~7777777777777777777777777777
77777777777777777777777:::::::::::::7777777::::~I7777777777777777777777777777
77777777777777777777777:::::::::::::7777777:::::77777777777777777777777777777
77777777777777777777777:::::::::::::777777~::::~77777777777777777777777777777
77777777777777777777777::::::::::::~77777777777777777777777777777777777777777
77777777777777777777777::::::::::::~~:~~77:::::777~:::::::::+7777777777777777
77777777777777777777777::::::::::::::~:77I:::::77::::::::::~+7777777777777777
77777777777777777777777:::::::::~::~~~~77~:::::77~~~:~::::::+7777777777777777
77777777777777777777777::::::::::::::~=77~::::I7?::~::::::::+7777777777777777
77777777777777777777777::::::::::~~+++77I~:~::77++++~:::::::+7777777777777777
77777777777777777777777:::::::::::777777~~:~:~777777~::::::::7777777777777777
77777777777777777777777::::::::::~777777~::::777777I~::::::::7777777777777777
7777777::::::::::::::::::::::::::+777777:~:::777777::::::::::~777777777777777
77777777::::::::::::::::::::::::::::~77?:~~:~77:::::::::::::::::7777777777777
77777777I::::~:::::::::::::::::::::::77~::::=77:~:::::::::::::::7777777777777
7777777777:~:::::::::::::::::::::::~?77::::~77=:::::::::::::::::7777777777777
777777777777:~:::::::::::::::::::::~77=:::~:77~:::::::::::::::::7777777777777
7777777777777~~:::::::::::::::::::::77~:::~?77::::::::::::::::::7777777777777
77777777777777~::::::::::::::::::::I77::~::77~~:::::::::::::::::7777777777777
777777777777777::~:::::::::~:~::~:~77~:::::77?~~~~~:::::::~~::::7777777777777
777777777777777?:::::::::~::::::~::77777777777777:::::::~::::~~?7777777777777
7777777777777777~::::::~7777~:::::~7777777777777+::::::::~~777777777777777777
77777777777777777?~~~:77777777:~::~7777777777777::::::~7777777777777777777777
777777777777777777777777777777?:~~~+777777777777~::::777777777777777777777777
7777777777777777777777777777777~:::::~:~::~~~~~:~::?7777777777777777777777777
77777777777777777777777777777777~~::::::::::::::::777777777777777777777777777
77777777777777777777777777777777I::::::::::::::~~7777777777777777777777777777
777777777777777777777777777777777+~::::::::::::~77777777777777777777777777777
7777777777777777777777777777777777I~~::::::::::I77777777777777777777777777777
77777777777777777777777777777777777:~::::::::::777777777777777777777777777777
777777777777777777777777777777777777+::~:::::::777777777777777777777777777777
77777777777777777777777777777777777777~~::::::::77777777777777777777777777777
7777777777777777777777777777777777777777~:::::::77777777777777777777777777777
7===========================7777777777777777II77777=========================7
7| Texas Instruments       |77777777777777777777777| Press S3 to begin     |7
7| C2000 Piccolo Launchpad |77777777777777777777777| demo                  |7
7===========================77777777777777777777777=========================7
77777777777777777777777777777777777777777777777777777777777777777777777777777

По нажатию на вторую кнопку, появится в нижней части вот такое изменение

Current Temperature:nchpad |77777777777777777777777| demo                  |7
41 Celcius = Ref + 0  ======77777777777777777777777=========================7

Установка CCS
Скачать и расспаковать CCS v6

stas@stas-ThinkPad-Edge-E540:~/TI/CCSv6$ ./ccs_setup_linux32.bin

Что-бы освободить терминал можно нажать ^Z и потом

stas@stas-ThinkPad-Edge-E540:~/TI/CCSv6$ bg
[1]+ ./ccs_setup_linux32.bin &

Может быть ошибка что не найденым окажется файл libudev.so.0
Нужно сперва найти виновника из-за которого эта ошибка и потом исправить

stas@stas-ThinkPad-Edge-E540:~$ dpkg -S libudev.so.0
dpkg-query: не найден путь, подходящий под шаблон *libudev.so.0*
stas@stas-ThinkPad-Edge-E540:~$ dpkg -S libudev.so.
libudev1:i386: /lib/i386-linux-gnu/libudev.so.1.3.5
libudev1:i386: /lib/i386-linux-gnu/libudev.so.1
stas@stas-ThinkPad-Edge-E540:~$ sudo aptitude install libudev1:i386
Ни одного пакета не будет установлено, обновлено или удалено.
0 пакетов обновлено, 0 установлено новых, 0 пакетов отмечено для удаления, и 0 пакетов не обновлено.
Необходимо получить 0 Б архивов. После распаковки 0 Б будет занято.
stas@stas-ThinkPad-Edge-E540:~$ ll /lib/i386-linux-gnu/libudev.so.1
lrwxrwxrwx 1 root root 16 нояб. 18 17:37 /lib/i386-linux-gnu/libudev.so.1 -> libudev.so.1.3.5

исправляем этот недостаток методом симлинка

stas@stas-ThinkPad-Edge-E540:~$ sudo ln -s /lib/i386-linux-gnu/libudev.so.1 /lib/i386-linux-gnu/libudev.so.0
Всё, теперь все должно запуститься и установиться как надо

Определение отладчика
в директории, в которую я установил, ~/ti/ccsv6/ccs_base/common/uscif есть файл xds100serial
~/ti/ccsv6/ccs_base/common/uscif/xds100serial
Запустив его, должно быть определение платы с дебаггером
stas@stas-ThinkPad-Edge-E540:~/ti/ccsv6/ccs_base/common/uscif$ ./xds100serial
Scanning for XDS100 emulators...
No XDS100 emulators were found on the system.

Тут нужно заметить, что по какой-то причине определяется лишь в случае если делать с правами рута

stas@stas-ThinkPad-Edge-E540:~/ti/ccsv6/ccs_base/common/uscif$ sudo ./xds100serial
Scanning for XDS100 emulators...
VID/PID    Type            Serial #    Description
0403/a6d0  XDS100v1/v2     TIWN30N7    Texas Instruments Inc.XDS100 Ver 2.
stas@stas-ThinkPad-Edge-E540:~/ti/ccsv6/ccs_base/common/uscif$

Теперь видно, что это XDS100v1/v2 — а точнее — XDS100 Ver 2.

Работа в CCS и Debug кода в Linux
Для запуска нужно запустить команду

sudo ./ti/ccsv6/eclipse/eclipse

Итак, тут самый основной момент, который мне удалось выяснить и который похоже что принципиальный.
Возможно это написано гдето на Wiki TI, но я пока не нашел.
— Дебаг, категарически не работает без запуска с рутовыми правами (sudo …). Если запустить с sudo, то работает нормально

Установка примеров кода для С2000
— скачать по ссылке http://www.ti.com/tool/controlsuite CONTROLSUITE-ZIP: Offline (ZIP) Installer
— при помощи wine установить, я себе ставлю в директорию — /home/stas/ti/controlSUITE/
— Если есть желание запустить и посмотреть оригинальную программу, то нужно скачатьJRE 7 по ссылке http://www.oracle.com/technetwork/java/ … 80261.html и тоже установить, только после этого программа запустится. Для этого нужно запустить explorer, выбрать jre***.exe и установить.
— Если нужно просто работать с исходным кодом на прямую, то нужно сразу идти внутрь и выбирать желаемое

stas@stas-ThinkPad-Edge-E540:~$ ll /home/stas/ti/controlSUITE/device_support/f2802x/v222/
итого 44
drwxrwxr-x  7 stas stas 4096 февр. 22 05:27 ./
drwxrwxr-x 11 stas stas 4096 февр. 22 05:26 ../
drwxrwxr-x  2 stas stas 4096 февр. 22 05:27 doc/
-rw-rw-r--  1 stas stas  807 янв.  15 13:57 DSP28x_Project.h
drwxrwxr-x  8 stas stas 4096 февр. 22 05:26 f2802x_common/
-rw-rw-r--  1 stas stas 9958 янв.  15 13:57 F2802x_Device.h
drwxrwxr-x 38 stas stas 4096 февр. 22 05:26 f2802x_examples_drivers/
drwxrwxr-x 41 stas stas 4096 февр. 22 05:26 f2802x_examples_structs/
drwxrwxr-x  6 stas stas 4096 февр. 22 05:26 f2802x_headers/

Например

stas@stas-ThinkPad-Edge-E540:~$ tree /home/stas/ti/controlSUITE/device_support/f2802x/v222/f2802x_examples_drivers
/home/stas/ti/controlSUITE/device_support/f2802x/v222/f2802x_examples_drivers
├── adc_soc
│   └── Example_2802xAdcSoc.c
├── adc_temp_sensor
│   └── Example_2802xAdcTempSensor.c
├── adc_temp_sensor_conv
│   └── Example_2802xAdc_TempSensorConv.c
├── cpu_timer
│   └── Example_2802xCpuTimer.c
├── ecap_apwm
│   └── Example_2802xECap_apwm.c
├── ecap_capture_pwm
│   └── Example_2802xECap_Capture_Pwm.c
├── epwm_blanking_window
│   └── Example_2802xEPwmBlanking.c
├── epwm_dcevent_trip
│   └── Example_2802xEPwmDCEventTrip.c
├── epwm_dcevent_trip_comp
│   └── Example_2802xEPwmDCEventTripComp.c
├── epwm_deadband
│   └── Example_2802xEPwmDeadBand.c
├── epwm_timer_interrupts
│   └── Example_2802xEPwmTimerInt.c
├── epwm_trip_zone
│   └── Example_2802xEPwmTripZone.c
├── epwm_up_aq
│   └── Example_2802xEPwmUpAQ.c
├── epwm_updown_aq
│   └── Example_2802xEPwmUpDownAQ.c
├── external_interrupt
│   └── Example_2802xExternalInterrupt.c
├── flash_f2802x
│   └── Example_2802xFlash.c
├── gpio_setup
│   └── Example_2802xGpioSetup.c
├── gpio_toggle
│   └── Example_2802xGpioToggle.c
├── hrpwm
│   └── Example_2802xHRPWM.c
├── hrpwm_duty_sfo_v6
│   └── Example_2802xHRPWM_Duty_SFO_V6.c
├── hrpwm_mult_ch_prdupdown_sfo_v6
│   └── Example_2802xHRPWM_MultiCh_PrdUpDown_SFO_V6.c
├── hrpwm_prdupdown_sfo_v6
│   └── Example_2802xHRPWM_PrdUpDown_SFO_V6.c
├── hrpwm_prdup_sfo_v6
│   └── Example_2802xHRPWM_PrdUp_SFO_V6.c
├── hrpwm_slider
│   ├── Example_2802xHRPWM_slider.c
│   └── Example_2802xHRPWM_slider.gel
├── lpm_haltwake
│   └── Example_2802xHaltWake.c
├── lpm_idlewake
│   └── Example_2802xIdleWake.c
├── lpm_standbywake
│   └── Example_2802xStandbyWake.c
├── osc_comp
│   └── Example_2802xOscComp.c
├── scia_loopback
│   └── Example_2802xScia_FFDLB.c
├── scia_loopback_interrupts
│   └── Example_2802xSci_FFDLB_int.c
├── sci_echoback
│   ├── Example_2802xSci_Echoback.c
│   └── SCI_96.ht
├── spi_loopback
│   └── Example_2802xSpi_FFDLB.c
├── spi_loopback_interrupts
│   └── Example_2802xSpi_FFDLB_int.c
├── sw_prioritized_interrupts
│   ├── Example_2802xSWPrioritizedDefaultIsr.c
│   └── Example_2802xSWPrioritizedInterrupts.c
├── timed_led_blink
│   └── Example_2802xLEDBlink.c
└── watchdog
    └── Example_2802xWatchdog.c
36 directories, 39 files