rt-thread/bsp/raspberry-pi/raspi3-32/README.md

138 lines
5.2 KiB
Markdown
Raw Permalink Normal View History

2020-09-09 18:22:26 +08:00
# Raspberry PI 3B 32 BSP (Board Support Package) Execution Instruction
2020-01-10 10:38:21 +08:00
2020-09-09 18:22:26 +08:00
[中文页](README_zh.md) |
2020-01-10 10:38:21 +08:00
2020-09-09 18:22:26 +08:00
## Introduction
2020-01-10 10:38:21 +08:00
2020-09-09 18:22:26 +08:00
This document records the execution instruction of the BSP (board support package) provided by the RT-Thread development team for the Raspberry PI 3B 32 development board.
2020-01-10 10:38:21 +08:00
2020-09-09 18:22:26 +08:00
[![raspi3_f](https://github.com/RT-Thread/rt-thread/raw/master/bsp/raspberry-pi/raspi3-32/figures/raspi3_f.jpg)](https://github.com/RT-Thread/rt-thread/blob/master/bsp/raspberry-pi/raspi3-32/figures/raspi3_f.jpg)
2020-01-10 10:38:21 +08:00
2020-09-09 18:22:26 +08:00
[![raspi3_b](https://github.com/RT-Thread/rt-thread/raw/master/bsp/raspberry-pi/raspi3-32/figures/raspi3_b.jpg)](https://github.com/RT-Thread/rt-thread/blob/master/bsp/raspberry-pi/raspi3-32/figures/raspi3_b.jpg)
2020-01-10 10:38:21 +08:00
2020-09-09 18:22:26 +08:00
## Hardware Features
2020-01-10 10:38:21 +08:00
2020-09-09 18:22:26 +08:00
| Hardware | Description |
| -------------- | ----------------------------------------- |
| CPU | quad-core ARM Cortex A53(ARMv8) |
| Main Frequency | 1.2 GHz |
| GPU | VideoCore IV |
| GPU Frequency | 400MHz |
| Memory | 1GB (0x0000000 - 0x40000000) |
| | 0x3f000000 - 0x40000000 is for peripheral |
2020-01-10 10:38:21 +08:00
2020-09-09 18:22:26 +08:00
**The description of functional pins is as shown as follow:**
2020-01-10 10:38:21 +08:00
2020-09-09 18:22:26 +08:00
[![GPIO-Pinout-Diagram-2](https://github.com/RT-Thread/rt-thread/raw/master/bsp/raspberry-pi/raspi3-32/figures/GPIO-Pinout-Diagram-2.png)](https://github.com/RT-Thread/rt-thread/blob/master/bsp/raspberry-pi/raspi3-32/figures/GPIO-Pinout-Diagram-2.png)
2020-01-10 10:38:21 +08:00
2020-09-09 18:22:26 +08:00
## **Compilation Instruction**
2020-01-10 10:38:21 +08:00
2020-09-09 18:22:26 +08:00
The [env](https://www.rt-thread.io/download.html?download=Env) tool is recommended for compiling in Windows environments.
2020-01-10 10:38:21 +08:00
2020-09-09 18:22:26 +08:00
The cross-compiler gcc-arm-none-eabi-4_8-2014q1_linux is recommended in Linux environment. If you dont have compiling tool, please uncompress the downloaded package like this:
2020-01-10 10:38:21 +08:00
```
2020-09-09 18:22:26 +08:00
tar vxf gcc-arm-none-eabi-4_8-2014q1_linux.tar.bz2
2020-01-10 10:38:21 +08:00
```
2020-09-09 18:22:26 +08:00
In Linux environment, you need to modify the settings of the compiler directory, and modify the actual directory of the compiling tool in bsp/raspi3-32/rtconfig. py, remember to add the suffix /bin here.
2020-01-10 10:38:21 +08:00
```
2020-09-09 18:22:26 +08:00
EXEC_PATH = r'/opt/gcc-arm-none-eabi-4_8-2014q1_gri/bin'
2020-01-10 10:38:21 +08:00
```
2020-09-09 18:22:26 +08:00
Enter the rt-thread/bsp/raspi3-32 directory and run the following command to compile this BSP:
2020-01-10 10:38:21 +08:00
```
scons
```
2020-09-09 18:22:26 +08:00
If everything goes well, a new 'rtthread.elf' and 'kernel7.img' file will be generated. kernel7.img' is what we need to put into the root directory of the Raspberry PI 3B SD card.
2020-01-10 10:38:21 +08:00
2020-09-09 18:22:26 +08:00
### **Eclipse compiling environment**
2020-01-10 10:38:21 +08:00
2020-09-09 18:22:26 +08:00
- Step 1: Install the eclipse plugin 'cdt'.
- Step 2: Open eclipse cdt and set workspace, and set the workspace to 'rt-thread/bsp/raspberry-pi/raspi3-32'.
- Step 3: Import the project by selecting 'General->Existing Projects into Workspace' and then 'Browse ...'. Noted that the compiling only supports scons now.
2020-01-10 10:38:21 +08:00
2020-09-09 18:22:26 +08:00
## **Running**
2020-01-10 10:38:21 +08:00
2020-09-09 18:22:26 +08:00
### **Prepare the [Raspbian](https://downloads.raspberrypi.org/raspbian_lite_latest) SD card**
2020-01-10 10:38:21 +08:00
2020-09-09 18:22:26 +08:00
Download the raspbian image, for example, "2018-06-27-raspbian-stretch-lite.zip". Unpack it.
2020-01-10 10:38:21 +08:00
2020-09-09 18:22:26 +08:00
**Burn the SD card on Windows**
2020-01-10 10:38:21 +08:00
2020-09-09 18:22:26 +08:00
On Windows, download the burning tool " [etcher.io](https://www.balena.io/etcher/) ", run it and choose the unpacked image "2018-06-27-raspbian-stretch-lite.img".
2020-01-10 10:38:21 +08:00
2020-09-09 18:22:26 +08:00
When the burning process is completed, put "kernel8.img" into the boot partition to replace the file wit the same name.
2020-01-10 10:38:21 +08:00
2020-09-09 18:22:26 +08:00
**Burn the SD card on Linux**
Prepare an empty SD card, plug it in the computer and then execute the command below:
2020-01-10 10:38:21 +08:00
2020-09-09 18:22:26 +08:00
"sudo dd if=2018-06-27-raspbian-stretch-lite.img of=/dev/xxx bs=32M conv=fsync"
2020-01-10 10:38:21 +08:00
2020-09-09 18:22:26 +08:00
Note that the device file "/dev/xxx" should be replaced with the real SD card.
2020-01-10 10:38:21 +08:00
2020-09-09 18:22:26 +08:00
### **Prepare the serial port wire**
2020-01-10 10:38:21 +08:00
2020-09-09 18:22:26 +08:00
The BSP uses GPIO 14 & GPIO 15 of raspi 3 as the communication ports, as shown in the following image:
2020-01-10 10:38:21 +08:00
2020-09-09 18:22:26 +08:00
[![raspberrypi-console](https://github.com/RT-Thread/rt-thread/raw/master/bsp/raspberry-pi/raspi3-32/figures/raspberrypi-console.png)](https://github.com/RT-Thread/rt-thread/blob/master/bsp/raspberry-pi/raspi3-32/figures/raspberrypi-console.png)
2020-01-10 10:38:21 +08:00
2020-09-09 18:22:26 +08:00
The serial port parameters: 115200 8N1, hardware and software flow control is off.
2020-01-10 10:38:21 +08:00
2020-09-09 18:22:26 +08:00
## **Running Result**
2020-01-10 10:38:21 +08:00
2020-09-09 18:22:26 +08:00
Insert the burned SD card into Raspberry Pi, power up, the output information on the serial port should be like this:
2020-01-10 10:38:21 +08:00
2020-09-09 18:22:26 +08:00
```
2020-01-10 10:38:21 +08:00
heap: 0x0005d784 - 0x0045d784
\ | /
- RT - Thread Operating System
/ | \ 4.0.2 build Jan 9 2020
2006 - 2019 Copyright by rt-thread team
[I/I2C] I2C bus [i2c0] registered
[I/I2C] I2C bus [i2c1] registered
[I/SDIO] SD card capacity 15558144 KB.
found part[0], begin: 1048576, size: 63.0MB
found part[1], begin: 67108864, size: 14.793GB
file system initialization done!
boot cpu:3
msh />cpu = 0x00000003
cpu 3 startup.
start OK: CPU 3
boot cpu:2
cpu = 0x00000002
cpu 2 startup.
start OK: CPU 2
boot cpu:1
cpu = 0x00000001
cpu 1 startup.
start OK: CPU 1
Hello RT-Thread!
msh />
```
2020-09-09 18:22:26 +08:00
## **Peripheral Condition**
2020-01-10 10:38:21 +08:00
2020-09-09 18:22:26 +08:00
| Drive | Support | Remark |
| -------------- | ------- | ------ |
| UART | Support | UART0 |
2020-09-11 16:39:54 +08:00
| GPIO | Support | - |
| IIC | Support | - |
| SPI | Support | - |
| CPU Timer | Support | - |
| SD card driver | Support | - |
| RTC | Support | - |
| WDT | Support | - |
| MAILBOX | Support | - |
| SMP | Support | - |
| FRAMEBUFFER | Support | HDMI |