пʼятниця, 18 березня 2016 р.

prudebugger - відлагоджувач програм на PRU BeagleBone

При розробці програм для модуля PRU процесора Am3358 на BeagleBone часом є небхідність використати debugger. Одним з них є prudebug:
https://sourceforge.net/projects/prudebug/

Процедура встановлення:

  • Скачуємо і розпаковуємо архів з вихідними текстами. 
  • Запускаємо make з використанням свого крос компілятора (змінити в Makefile або запустити з параметром CC)
$ make CC=arm-linux-gnueabihf-gcc
  • Копіюємо prudebug до /usr/bin

Використання prudebug (на прикладі PRU_blink.bin)

  • Запуск
$ prudebug
  • Вибір робочого PRU
> pru 0
  • Завантаження програми в PRU_blink.bin до PRU, починаючи з адреси 0x0
> L 0x0 ./PRU_blink.bin
  • Видрук програми (disassmbly)
> dis
  • Видрук стану регістрів
> R
  • Покрокове виконання
> ss
  • Продовдження виконання до точки зупинки (breakopoint)
> gss
  • Керування точками зупинки
> br
  • Безумовне продовження виконання програми 
> g
  • Зупинка
> halt
  • Скидання процесора
> reset 
  • Допомога
> help
  • Вихід
> q

Налаштування gitlab-ci runner для android проекту

Офіційні інструкції:
http://developer.android.com/sdk/index.html#Other
https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/blob/master/docs/install/linux-repository.md

Як я робив на конкретному прикладі:
  • Встановлюємо ant, java runtime та java-jdk (8 або найновіша версія обов'язкова, щоб не було конфліктів при використанні android-sdk-tools з повідомленням "unsupported major.minor...")
sudo apt-get install ant openjdk-8-jre openjdk-8-jdk

  • Встановлюємо gitlab-ci-runner
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-ci-multi-runner/script.deb.sh | sudo bash
sudo apt-get install gitlab-ci-multi-runner
  •  Переходимо в режим користувача gitlab-runner
sudo su gitlab-runner
  •  Встановлюємо android-sdk-tools 
wget http://dl.google.com/android/android-sdk_r24.4.1-linux.tgz
tar -zxf ./android-sdk_r24.4.1-linux.tgz
cd linux-sdk-tools
tools/android update sdk --no-ui 
  •  Реєструємо свій runner 
gitlab-runner register
 
>>Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/ci )
https://gitlab.com/ci
>>Please enter the gitlab-ci token for this runner
xxx_ci-token for project_xxx
>>Please enter the gitlab-ci description for this runner
my-runner
  • В робочому проекті налаштовуємо мінімальний .gitlab-ci.yml
before_script:
    - export ANDROID_HOME=~/android-sdk-linux
    - ~/android-sdk-linux/tools/android update project -p . -t android-23 -n MainActivity -s
build:
  script:
    - ant debug
  tags:
    - android