Инструменты пользователя

Инструменты сайта



// OpenOCD, ThreadX и ваш процессор

TODO: нужно перетянуть статью в т.ч. сюда. Пока ссылка:

https://habrahabr.ru/post/249991/

// OpenOCD, GDB и (сильно)удалённая отладка

Статью изначально опубликовал на Хабре: http://habrahabr.ru/post/274179/

Дано:

  1. устройство с ARM926E-JS (Cypress FX3) на борту;
  2. находится на другом континенте;
  3. подключено (JTAG+USB+COM) к Linux компу;
  4. на комп есть SSH доступ (и больше ничего, только SSH порт).

Проблема: устройство нужно отлаживать и писать под него код. И делать это, желательно, удобно.

Решение с использованием OpenOCD, GDB и Qt Creator, а так же описание пути к нему, под катом.

// Predeclared ARM Register Names

Бывает нужно, часто забываю:

  • R0–R15 and r0–r15
  • c0–c15 coprocessor registers
  • p0–p15 coprocessor registers
  • a1-a4 scratch registers, synonymous with r0-r3
  • v1-v8 variable registers, synonymous with r4-r11
  • sb and SB stack base, synonymous with r9
  • sl and SL stack base, synonymous with r10
  • fp and FP frame pointer, synonymous with r11
  • ip and IP intra-procedure call scratch register, synonymous with r12
  • sp and SP stack pointer, synonymous with r13
  • lr and LR link register, synonymous with r14
  • pc and PC program counter, synonymous with r15
  • s0-s32 VFP single precision registers
  • d0-d16 VFP double precision registers
  • fpsid VFP system ID register
  • fpscr VFP status and control register
  • fpexc VFP exception register
  • wr0-wr16 WMMX SIMD data registers
  • wc0-wc16 WMMX status and control registers
  • wcid WMMX coprocessor ID register, synonymous with wc0
  • wcon WMMX control register, synonymous with wc1
  • wcssf WMMX saturation SIMD flags, synonymous with wc2
  • wcasf WMMX arithmetic SIMD flags, synonymous with wc3
  • wcgr0-wcgr3 WMMX control general purpose registers, synonymous with wc8-wc11

В дополнение - хороший справочник (armv7tdmi):

// Набор для кросс-компиляции для Linux на ARM

Потребовалось сделать окружение для отстройки приложений для системы Linux, запущенной на платформе с процессором ARM.

Внутри есть eglibc, поэтому решено было попробовать сделать окружение с этой библиотекой Си, а не повсеместно используемой newlib.

Процесс чтения манов, проб, нервов занял около двух дней. Помогли разобраться следующие документы:

Особо поразило мозг решение проблемы «кто первый: курица или яйцо?»

В результате получился набор правил для сборки окружение под ArchLinux (пакеты идут в порядке сборки):

Ну и несколько библиотек сразу в придачу: