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

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



// О качестве документации и понимании сути

Есть такой чип: Cypress FX3. Это чип для построения USB 3.0 устройств. Внутри железная реализация протокола, 512кБ памяти и ядро ARM926E-JS. Cypress предоставляет SDK, в котором поставляется RTOS ThreadX и необходимый код для работы с их железом.

Как и классических встраеваемых SDK есть возможность ставить пользовательские колбеки и, по сути, управлять и строить логику конкретного приложения, ну и реализовать нужное вам USB 3.0 (2.0 тоже) устройство.

// CMake для Cypress FX3

Слишком много параметров сборки появилось. Поэтому на досуге да под эгидой нового продукта наваял правила для сборки кода при помощи CMake: https://github.com/h4tr3d/fx3-cmake

Под виндой нужно обязательно указывать генератор: при использовании `cs-make` поставляемого вместе с SDK это «MinGW Makefiles».

// 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):

// Practical Guide to Bare Metal C++

Недавно наткнулся на эту книжку на GitBook: http://arobenko.gitbooks.io/bare_metal_cpp/

Доступна для онлайн-чтения, в виде форматов ePUB, MOBI и PDF. Рассматриваются вопросы уменьшения размера приложений, написания своих реализаций ABI функций, что позволяет более детально понимать, а что там вообще внутри происходит, что бывает полезно и обычных приложениях. Вместе с ней обязательно ознакомиться с Scott Meyers. Effective C++ in an Embedded Environment.

Книга больше ориентирована на ARM, в частности Raspberry PI, но идеи адаптировать к другим платформам труда не составит.

// Scott Meyers. Effective C++ in an Embedded Environment

This PDF document contains the presentation materials from Scott Meyers' two-day training course Effective C++ in an Embedded Environment. It provides an in-depth examination of how C++ can be applied in embedded systems, including costs of language features, ROMing, ISRs, memory management, safety-critical and real-time considerations, and more.

Формат: презентация в PDF, чётко и по делу.

Для желающих получить без оплаты: effectcppemb.pdf