6
votes
Accepted
Can't turn on ACT LED on baremetal Pi3
Models A and B
The green activity LED (GPIO 16) may be written.
Models A+ and B+
The green activity LED (GPIO 47) may be written.
The red power LED (GPIO 35) may be written.
The high USB power mode ...
4
votes
Using Hardware PWM in Raspberry Pi 4
The Pi has only two accessible hardware PWM channels. GPIO 12 and 18 share one setting, GPIO 13 and 19 the other. So if you set GPIO 12 to 15% dutycycle at 400Hz that will come out of GPIO 18 as ...
4
votes
How to build my very own device tree (and if I need to)
You only need to think about adding Device Tree support under following conditions:
you know how to write operating systems
you are currently in the process of writing an operating system
your ...
4
votes
Raspberry Pi Baremetal Programming
Well, maybe you forgot to put "break" into your switch block case?
switch (mode)
{
case GPIO_OUTPUT:
*GPFSEL |= (1 << gpio_bit);
break;
case GPIO_INPUT:
...
3
votes
Accepted
bootcode.bin RPi 3
This and the other resources in the Bare metal, Assembly forum are a great start.
3
votes
Accepted
BCM2835 GPIO Pins vs. Physical Pin Numbers
After doing a bit of research, as well as testing things out, I discovered that I was misinterpreting what I was hearing about physical pin numbers. The GPIO Pin numbers listed in official pinouts as ...
3
votes
OS-less raspberry pi 2 debugging of Assembly language
I would recommend taking a look at this site http://www.makeuseof.com/tag/emulate-raspberry-pi-pc/ which describes how to emulate the original raspberry pi on a pc. You then should be able to debug ...
2
votes
How can I find these files?
Do you still have the SD card with the original Raspbian image? ...Great. So you already have a SD card with a boot partition and the required files. If not then download one of the original raspberry ...
2
votes
Booting the raspberry pi and running a bare metal program
Your question includes this
and inserted into my Pi 2
At the very top of the tutorial page, you linked to in red is the following:
This course has not yet been updated to work with the ...
2
votes
BCM2835 datasheet addressing system
If you look at Section 1.2.3 of the same BCM2835 Peripherals Doc, it will tell you all about it.
2
votes
Accepted
Reading files with a custom kernel
In bare metal , file access doesn't work automatically. You need to implement a SD card reader driver and a FAT32 driver before file access works even remotely correctly. This is the whole point of ...
2
votes
Accepted
Where to Find Documentation for GPIO Controller Pins of Pi4?
The BCM2711 peripherals documentation can be found on the Foundation website.
https://datasheets.raspberrypi.org/bcm2711/bcm2711-peripherals.pdf
The GPIO is a superset of the earlier GPIO i.e. it is ...
1
vote
Unable to connect to raspberry pi 3b over minicom
There are many things wrong with your question.
There is NO 64bit raspbian.
There is no point in trying otg on a Pi3 because it lacks the hardware.
The correct serial port is /dev/serial0
You have ...
1
vote
Bare metal LED access on RPi 4
The other answers claiming that the ACT_LED on the pi4 is not connect to the gpio is wrong. However, this was true on a previous version of the pi. One of the 3 series boards. (likely the source of ...
1
vote
Raspberry Pi Mailbox Interface Difficulties
The VideoCore mailbox protocol is downright awful, I've just dredged through it myself. The issue is that you are not forming your requests correctly.
Here's the actual grammar for messages:
[
...
1
vote
Debugging potentially broken uart pins
The fist thing I do with UARTs is a loopback test: connect TX to RX, send something to the serial device and see if you're receiving the same characters back. This should work regardless of baudrate ...
1
vote
Debugging potentially broken uart pins
Run my GPIO test. It needs the pigpio daemon to be running (sudo pigpiod).
See https://elinux.org/R-Pi_Troubleshooting#Testing
gpiotest
#!/bin/bash
skipped=""
tested=""
failed=&...
1
vote
Are the ARM Mailbox and Doorbell interrupts ever triggered?
I found my answer in the QEMU source code, hw/misc/bcm2835_mbox.c. The interrupts have to be enabled in the config register associated with the mailbox, the documentation for which I've not seen or ...
1
vote
How to build my very own device tree (and if I need to)
I've run across your (now old-ish) question during my research on a related subject. Creating your own device tree may be an ambitious undertaking, and beyond the scope of Q&A here. But your ...
1
vote
Rpi3b+ to Rpi3b+ jtag/SWD connection and OpenOCD
Here are the steps to get your code onto a Atmel SAMD21G18, which is often used by Adafruit, by using OpenOCD on a Raspberry Pi 2/3 Model B running an up-to-date Raspbian. You Need to build OpenOCD by ...
1
vote
How does the hardware cause long delays?
The Raspberry Pi 3 has multiple cores that all share the same bus and peripherals.
So when some other core uses the bus or locks things down for exclusive access your code will be blocked for short ...
1
vote
Accepted
Why does adding a nop or constant break my code?
The solution lies in the config.txt.
After reading many forums and the RPi site, there is a config option called disable_commandline_tags.
If it is not set or is set to 0 in config.txt, ATAGS is ...
1
vote
Installing Wi-Fi on bare metal (no terminal)
I don't have much experience from bare metal programming on the Pi, but I do know that is much like working with a MCU. You should think of it as if the Pi is an Arduino and your programming ...
1
vote
Can someone explain what the values are and where they are found?
Basically, those #define statements are assigning human-readable names to the GPIO pins, as documented for the Pi.
See the official documentation, scroll to page 90.
1
vote
Can't turn on ACT LED on baremetal Pi3
Expanding joan's answer:
Raspberry Pi 3 B+ (1 GiB RAM) and A+ (512 MiB RAM)
The green activity LED (GPIO 29) may be written
The red power LED is connected to MXL7704 power management IC and is not ...
1
vote
Is it possible to get the state of the LEDs and GPIOs in a QEMU emulation like the HDMI and audio?
GPIO
I think it is not possible, but I've found the QEMU 2.7.0 callback that gets called when you do GPIO:
hw/gpio/pl061.c:pl061_write
where PL061 is the GPIO controller of -M versatilepb (edit: -M ...
1
vote
Compile .img on OSX
Open the Disk Utility app and create a New Image. This will give you options such as format (Mac Extended, MS-DOS, etc). Once you create it, a disc image will be created and opened where ever you ...
1
vote
How to do QEMU emulation for bare metal Raspberry Pi images
bztsrc/raspi3-tutorial
https://github.com/bztsrc/raspi3-tutorial
# Get QEMU v2.12.0 for -M raspi3
# https://github.com/bztsrc/raspi3-tutorial
git clone git://git.qemu.org/qemu.git
cd qemu
git ...
Only top scored, non community-wiki answers of a minimum length are eligible
Related Tags
bare-metal × 65pi-3 × 11
gpio × 10
assembly × 10
pi-2 × 5
boot × 5
c × 5
arm × 5
debug × 5
pi-4 × 4
sd-card × 4
hardware × 3
kernel × 3
uart × 3
usb × 2
pi-3b+ × 2
image × 2
operating-systems × 2
serial-console × 2
firmware × 2
board-leds × 2
raspbian × 1
networking × 1
wifi × 1
linux × 1