LINUX.ORG.RU

BeagleBone Black GPIO Arm Assembly

 ,


0

2

Всем привет. Подскажите пожалуйста, как управлять портами GPIO в BBB используя Ассемблер ARM?

Компилирую код as -o blink_leds.o blink_leds.s && ld -o blink_leds blink_leds.o , но получаю ошибку segmentation fault. Компилирую вот эти примеры (https://github.com/ejanjoh/BeagleBone-Black/blob/master/source/asm/gpio.s и https://github.com/danghai/bbb_wireless/blob/master/bbb-arm/leds.S)

Скажите пожалуйста, как на BBB можно управлять GPIO используя Ассемблер?

Там, похоже, baremetal проект. Если пытаться запускать кусочки кода из под линукса, надо убедиться, что нет конфликта ресурсов. Самое простое, найти подходящий пример для линукса. Или, в крайнем случае, попробовать запустить то, что есть, из под root.

Disclaimer: за повреждение железа отвечает исключительно тот, кто с ним непосредственно работает.

gag ★★★★★
()
Ответ на: комментарий от hateyoufeel

Да вот я как раз и хотел узнать, как управлять портами именно через aсм. А здеь я так понимаю другим способом…

BONKooff
() автор топика
Ответ на: комментарий от hateyoufeel

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

BONKooff
() автор топика
Ответ на: комментарий от BONKooff

Через ARM assembler

Это язык программирования. В каком окружении ты хочешь запускать твою программу?

Окей, давай спрошу попроще: ты хочешь просто лампочками помигать или тебе дали какое-то задание?

hateyoufeel ★★★★★
()
Ответ на: комментарий от hateyoufeel

Просто лампочками помигать через асемблер. У меня есть биглбон и просто стало интересно поизучать для себя ассемблер и поуправлять портами с помошью него

BONKooff
() автор топика
Ответ на: комментарий от BONKooff

Ну, я тебе честно скажу, твой код будет выглядеть как сишный код, только гораздо более всратый. Т.е. тебе придётся импортировать сишные константы в твой ассемблерный код, дёргать системные вызовы, и вот это всё.

Начни отсюда: https://elinux.org/GPIO

Возьми сишные примеры, скомпилируй их в ассемблер (флаг -S) и развлекайся.

hateyoufeel ★★★★★
()
Ответ на: комментарий от BONKooff

Если решишь, что тебе этого мало, попробуй запустить код без ОС вообще.

На wiki.osdev.org есть отличные доки с примерами, как это делать. Возможно, даже под твою плату найдётся. Тогда как раз сможешь напрямую в замапленные регистры писать.

hateyoufeel ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.