Написання коду складання АРМ


20

Отримавши свій Raspberry Pi, я вирішив, що хочу навчитися писати код складання ARM. Моє запитання: що мені потрібно для початку? Я припускаю, що вже встановлений компілятор, але я не знаю, що це таке (можливо, gcc?). Будь-яка допомога вдячна!


Ось ще одна (безкоштовна) книга про збірку ARM: yurichev.com/writings/RE_for_beginners-en.pdf
Денніс Юрічев

Відповіді:


19

Залежить від того, який ассемблер ви хочете написати. Якщо ви хочете написати лише невеликі фрагменти, вбудовані в код C, тоді gccце дійсно те, що ви шукаєте. Приклади використання asmдирективи в C див. Посилання на вбудовану asm за адресою: ARM GCC Inline Assembler Cookbook

Якщо ви, з іншого боку, хочете написати більше, ніж просто невеликі фрагменти, ніж вам буде краще використовувати повний асемблер. Це буде доступно як або as, gasабо як (псевдонім).

І нарешті, вам потрібно буде трохи дізнатися про набір інструкцій ARM. Є зручна довідка за посиланням: ARM1176JZF-S Технічне довідник з експлуатації .

Примітка. Будь ласка, пам’ятайте, що RPi підтримують лише інструкції armv6 - тому не намагайтеся використовувати нічого з armv7

Удачі!! :)


4

Я почав свою пригоду з коду складання ARM не надто давно сам, і ось мої ресурси:

  • Кембриджський університет опублікував тут дуже пристойний набір навчальних посібників: Baking Pi . Він включає шаблон для власної ОС, повні приклади коду для кожного підручника та всі інструкції щодо створення та запуску коду.
  • Крім того, ця здоровенна книга повинна охоплювати всі основи: Посібник для розробників системи ARM .

3

Хоча мені досить комфортно з інтерфейсом командного рядка, я не зміг протистояти зручності GUI. Деякий час тому я виявив, що можу використовувати ID ID CodeBlocks для розробки програм мовної збірки ARM в Raspberry Pi. Тому я написав підручник і додав його до навчального посібника з програмування збірки Raspberry Pi, який я написав на веб-сайті книги Mazidi ARM Assembly:

http://www.microdigitaled.com/ARM/ARM_ASM_books.htm

На веб-сайті натисніть на посилання "Програмування складання ARM з використанням графічного інтерфейсу Raspberry Pi".

Сподіваюсь, це допомагає.


1

GCC встановлений за замовчуванням. Якщо ви новачок в Raspberry Pi, я рекомендую вам ознайомитися з легшою мовою програмування, ніж збірка ARM. Для складання немає IDE, тому вам доведеться використовувати текстовий редактор і зібрати його через термінал. Я рекомендую Gedit для зручності використання. Хоча, щоб отримати підсвічування синтаксису для складання, мені довелося перейти на github, зокрема на сторінку shinyquagsire23. Це дуже красиво. Щодо допомоги. Найкращий ресурс, який я знайшов, - це "мова Raspberry Pi Assembly Assembly: Raspbian початківці" від Брюса Сміта. Ви можете знайти його на Amazon. Він пояснює складання одним із найясніших і найпростіших способів, які я знайшов.


1

Вивчіть приклади, які можна виконати

Я працюю над: https://github.com/cirosantilli/arm-assembly-cheat

Особливості:

  • точно таку ж збірку можна запустити на хості Linux у користувальницькому режимі QEMU, тож ви можете випробувати речі швидше на своєму хості перед тим, як перейти на рідну версію Pi
  • охоплює як ARMv7, так і ARMv8
  • гарне налаштування GDB поза коробкою, як на хості, так і на рідному
  • має твердження, що показують номер збірної лінії там, де справи не вдалися
  • використовує стандартну бібліотеку C для IO, що робить її теоретично портативною операційною системою і дозволяє легко повторно використовувати смаколики, як printfіmemcpy
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.