Einführung
Dieser Artikel verwendet ein sehr einfaches Programm, um den gesamten Prozess der Entwicklung eines Hongmeng-Geräts auf dem Entwicklungsboard BearPi-HM_Micro_Small zu zeigen: Quellcode herunterladen, ein Projekt erstellen, Quellprogramm schreiben, Kompilierungsskript schreiben/ändern, kompilieren, brennen, testen.
Tipps: Bitte richten Sie die Entwicklungsumgebung gemäß „Erstellen einer reinen Ubuntu-Entwicklungsumgebung für BearPi-HM_Micro_Small“ ein.
Dieser Artikel bezieht sich auf einige Tutorials des Entwicklungsboards BearPi-HM_Micro_Small.
https://gitee.com/bearpi/bearpi-hm_micro_small
1. Laden Sie den Quellcode herunter
1. Wenn Git nicht installiert ist, lesen Sie zunächst den zweiten Teil von „Schnellstart mit Git und Gitee“, um Git zu installieren.
2. Führen Sie den folgenden Befehl in dem Verzeichnis aus, in dem Sie den Quellcode von Bear Pai Hongmeng ablegen möchten, um den Quellcode herunterzuladen.
git clone https://gitee.com/bearpi/bearpi-hm_micro_small.git
2. Erstellen Sie ein Projekt
1. Öffnen Sie das DevEco Device Tool. (1) Klicken Sie auf das DevEco-Symbol in der linken Symbolleiste. (2) Klicken Sie auf Projekte. (3) Klicken Sie auf die Schaltfläche Projekt importieren. (4) Wählen Sie im Popup-Fenster den Ordner Projekte aus. (5) Wählen Sie das Projekt bearpi aus. hm_micro_small; (6) Klicken Sie auf die Schaltfläche „Importieren“.
2. Klicken Sie im in der Abbildung unten gezeigten Fenster auf Importieren.
3. Wählen Sie im in der Abbildung unten gezeigten Fenster „Aus OpenHarmony-Quelle importieren“ aus.
4. Klicken Sie nach der Einstellung wie in der Abbildung unten gezeigt auf Öffnen.
5. Wählen Sie im in der Abbildung unten gezeigten Fenster Aktuelles Fenster aus, um das Projekt zu öffnen.
3. Schreiben Sie das Quellprogramm
1. applications/BearPi/BearPi-HM_Micro/samples
Erstellen Sie einen neuen Ordner unter dem Pfad: dandelion
.
2. dandelion
Erstellen Sie einen neuen Ordner unter dem Ordner: hello_world
.
3. hello_world
Erstellen Sie eine neue Datei im Ordner: hello_world.c
, schreiben Sie das Quellprogramm in diese Datei:
#include <stdio.h>
int main(int argc, char **argv)
{
printf("\n************************************************\n");
printf("\n\t\tHello BearPi!\n");
printf("\n************************************************\n\n");
return 0;
}
4. Kompilierungsskript schreiben/ändern
hello_world
1. Erstellen Sie eine neue Datei im Ordner : BUILD.gn
und schreiben Sie das Kompilierungsskript des Quellprogramms in diese Datei hello_world.c
:
executable("hello_world_exe") {
output_name = "hello_world"
sources = [ "hello_world.c" ]
include_dirs = []
defines = []
cflags_c = []
ldflags = []
}
executable("hello_world_exe")
hello_world_exe
: Weist das Kompilierungs- und Build-Subsystem an, ein benanntes Kompilierungs- und Build-„Kleinziel“ abzuschließen . executable
Es handelt sich um den Typ „kleines Ziel“. Der spezifische Inhalt dieses „kleinen Ziels“ besteht darin, die sources
Quelldateien (d. h. hello_world.c
) in der Liste in eine ausführbare Datei zu kompilieren, und der Name der generierten ausführbaren Datei wird output_name
durch angegeben, d. h hello_world
.
2. dandelion
Erstellen Sie eine neue Datei im Ordner: BUILD.gn
.
import("//build/lite/config/component/lite_component.gni")
lite_component("dandelion_app") {
features = [
"hello_world:hello_world_exe",
]
}
lite_component("dandelion_app")
: Weist das Compile-Build-Subsystem an, ein Compile-Build-Ziel lite_component
mit dem Namen „Typ“ abzuschließen .dandelion_app
lite_component
Dieser Typ wird lite_component.gni
definiert und verwendet, um das Kompilierungs- und Konstruktionssubsystem anzuweisen, eine Komponente (Komponente) zu kompilieren und zu erstellen.
Derzeit sind nur die „kleinen Build-Ziele“ im Verzeichnis dandelion_app
in diesem Build-Ziel enthalten . Das heißt, die hier zu erstellende Komponente enthält nur ein ausführbares Programm: . Der Name dieser Komponente wird in der nächsten Datei angegeben.hello_world
hello_world_exe
hello_world
applications.json
3. Öffnen Sie die Konfigurationsdatei des build/lite/components
Subsystems unter dem Pfad und fügen Sie die zuvor zu kompilierenden und zu erstellenden Komponenten zur Komponentenliste des Subsystems hinzu.applications
applications.json
applications
{
"component": "bearpi_dandelion_app",
"description": "app written by dandelion",
"optional": "true",
"dirs": [
"applications/BearPi/BearPi-HM_Micro/samples/dandelion"
],
"targets": [
"//applications/BearPi/BearPi-HM_Micro/samples/dandelion:dandelion_app"
],
"rom": "",
"ram": "",
"output": [],
"adapted_kernel": [ "liteos_a" ],
"features": [],
"deps": {
"components": [],
"third_party": []
}
},
4. Öffnen Sie die Konfigurationsdatei des vendor/bearpi/bearpi_hm_micro
Produkts unter dem Pfad und fügen Sie die zuvor zu kompilierenden und zu erstellenden Komponenten zur Komponentenliste des Subsystems hinzu.bearpi_hm_micro
config.json
bearpi_dandelion_app
applications
{
"subsystem": "applications",
"components": [
{ "component": "bearpi_dandelion_app", "features":[] },
{ "component": "bearpi_sample_app", "features":[] },
{ "component": "bearpi_screensaver_app", "features":[] },
{ "component": "bearpi_sample_communication", "features":[] }
]
},
Fünftens, kompilieren
1. Wählen Sie ein Produkt aus. Führen Sie den folgenden Befehl im Stammverzeichnis des Projekts aus:
hb set
Wie in der Abbildung oben gezeigt, gibt es nur eine Produktoption, also drücken Sie einfach die Eingabetaste.
2. Kompilieren. Führen Sie den folgenden Befehl im Stammverzeichnis des Projekts aus:
hb build -t notest --tee -f
Warten Sie, bis build success
die in der folgenden Abbildung gezeigten Wörter im Terminal angezeigt werden, was darauf hinweist, dass die Kompilierung erfolgreich ist.
6. Brennen
1. Kopieren Sie das Bild
Nachdem die Kompilierung abgeschlossen ist, befindet sich die generierte Bilddatei im Verzeichnis:, out/bearpi_hm_micro/bearpi_hm_micro
kopieren Sie die drei Bilddateien: OHOS_Image.stm32
und in das Verzeichnis:.rootfs_vfat.img
userfs_vfat.img
applications/BearPi/BearPi-HM_Micro/tools/download_img/kernel
cp out/bearpi_hm_micro/bearpi_hm_micro/OHOS_Image.stm32 applications/BearPi/BearPi-HM_Micro/tools/download_img/kernel/
cp out/bearpi_hm_micro/bearpi_hm_micro/rootfs_vfat.img applications/BearPi/BearPi-HM_Micro/tools/download_img/kernel/
cp out/bearpi_hm_micro/bearpi_hm_micro/userfs_vfat.img applications/BearPi/BearPi-HM_Micro/tools/download_img/kernel/
2. Verbinden Sie das Entwicklungsboard mit einem USB-Kabel mit der virtuellen Ubuntu-Maschine.
3. Drehen Sie den DIP-Schalter der Entwicklungsplatine auf den Brennmodus „000“ und drücken Sie die RESET-Taste der Entwicklungsplatine.
4. Doppelklicken Sie, um STM32CubeProgrammer zu öffnen; wählen Sie den Schnittstellentyp aus: USB; klicken Sie auf die Schaltfläche „Aktualisieren“; klicken Sie auf „Verbinden“, um eine Verbindung mit der Entwicklungsplatine herzustellen.
5. Klicken Sie nach dem Herstellen der Verbindung auf Datei öffnen, wählen Sie die TVS-Datei für die Brennkonfiguration im Projektverzeichnis aus und klicken Sie auf Öffnen.
6. Klicken Sie auf die Schaltfläche „Durchsuchen“, wählen Sie dann den Brennbildpfad unter dem Quellcode des Projekts aus und klicken Sie auf „Öffnen“.
7. Klicken Sie auf die Schaltfläche „Herunterladen“, um mit dem Brennen des Bildes zu beginnen, und warten Sie, bis der Brennvorgang abgeschlossen ist.
8. Klicken Sie nach der Programmierung im Popup-Fenster auf OK und schließen Sie STM32CubeProgrammer.
9. Klicken Sie auf das DevEco-Symbol in der linken Symbolleiste des DevEco Device Tool. Klicken Sie unter „PROJEKTAUFGABEN“ – Hongmeng-Projekt bearpi-hm_micro_small auf die Schaltfläche „Überwachen“, um das Terminal für die serielle Schnittstelle zu öffnen.
Das Terminalfenster sieht so aus:
10. Drehen Sie den DIP-Schalter der Entwicklungsplatine auf den EMMC-Startmodus „010“ und drücken Sie die Taste „RESET“ der Entwicklungsplatine, um die Entwicklungsplatine zurückzusetzen, und die Entwicklungsplatine beginnt zu starten.
Drucken Sie die Startprotokollinformationen im seriellen Terminal aus.
7. Testen
Geben Sie den Befehl in das serielle Terminal ein: ./bin/hello_world
und drücken Sie dann die Eingabetaste. Das in der Abbildung unten gezeigte Ergebnis wird im seriellen Terminal angezeigt: