This message will disappear after all relevant tasks have been resolved.
Semantic MediaWiki
There are 1 incomplete or pending task to finish installation of Semantic MediaWiki. An administrator or user with sufficient rights can complete it. This should be done before adding new data to avoid inconsistencies.Registered User mNo edit summary |
Registered User mNo edit summary |
||
(29 intermediate revisions by 6 users not shown) | |||
Line 4: | Line 4: | ||
==Code== | ==Code== | ||
* Create a directory that will host your source codes | * Create a directory that will host your source codes | ||
{{PC$}} mkdir $HOME/STM32MPU_workspace/STM32MP1-Ecosystem-v4.1.0/Developer-Package/stm32mp1-openstlinux-22.11.23 | |||
{{PC$}} mkdir $HOME/STM32MPU_workspace/ | {{PC$}} mkdir $HOME/STM32MPU_workspace/STM32MP1-Ecosystem-v4.1.0/Developer-Package/stm32mp1-openstlinux-22.11.23/sources | ||
{{PC$}} mkdir $HOME/STM32MPU_workspace/ | |||
* Create a directory for your user space example | * Create a directory for your user space example | ||
{{PC$}} mkdir $HOME/STM32MPU_workspace/ | {{PC$}} mkdir $HOME/STM32MPU_workspace/STM32MP1-Ecosystem-v4.1.0/Developer-Package/stm32mp1-openstlinux-22.11.23/sources/gtk_hello_world_example | ||
{{PC$}} cd $HOME/STM32MPU_workspace/ | {{PC$}} cd $HOME/STM32MPU_workspace/STM32MP1-Ecosystem-v4.1.0/Developer-Package/stm32mp1-openstlinux-22.11.23/sources/gtk_hello_world_example | ||
* Create the source code file for your user space example: ''gtk_hello_world.c'' | * Create the source code file for your user space example: ''gtk_hello_world.c'' | ||
<pre> | <pre> | ||
Line 97: | Line 88: | ||
==Deploy and execute== | ==Deploy and execute== | ||
* Push this binary | * Push this binary onto the board (Ethernet connection needed) | ||
{{PC$}} scp gtk_hello_world root@<board ip address>:/usr/local | {{PC$}} scp gtk_hello_world root@<board ip address>:/usr/local | ||
* Execute your user space example | * Execute your user space example by using the user "weston" | ||
{{Board$}} cd /usr/local/ | {{Board$}} cd /usr/local/ | ||
{{Board$}} | {{Board$}} su -l weston -c "/usr/local/gtk_hello_world" | ||
* A GTK | * A GTK window is displayed | ||
[[File: STM32MP1_gtk_hello_world.png|thumb|upright=2|center|link=|GTK Hello world window]] | [[File: STM32MP1_gtk_hello_world.png|thumb|upright=2|center|link=|GTK Hello world window]] | ||
* Click | * Click the "Hello world" button to close the window. ''Hello world'' is displayed on the console: | ||
Hello world | Hello world | ||
<noinclude> | <noinclude> | ||
{{NoIndex}} | |||
__NOTOC__ | |||
[[Category:Sub-articles]] | [[Category:Sub-articles]] | ||
{{PublicationRequestId | 19654 |2021-04-19}} | |||
{{PublicationRequestId | | |||
</noinclude> | </noinclude> |
Latest revision as of 11:14, 15 November 2022
1. Overview
This stage explains how to create, build and execute a simple C code application using the freshly installed SDK.
2. Code
- Create a directory that will host your source codes
mkdir $HOME/STM32MPU_workspace/STM32MP1-Ecosystem-v4.1.0/Developer-Package/stm32mp1-openstlinux-22.11.23
mkdir $HOME/STM32MPU_workspace/STM32MP1-Ecosystem-v4.1.0/Developer-Package/stm32mp1-openstlinux-22.11.23/sources
- Create a directory for your user space example
mkdir $HOME/STM32MPU_workspace/STM32MP1-Ecosystem-v4.1.0/Developer-Package/stm32mp1-openstlinux-22.11.23/sources/gtk_hello_world_example
cd $HOME/STM32MPU_workspace/STM32MP1-Ecosystem-v4.1.0/Developer-Package/stm32mp1-openstlinux-22.11.23/sources/gtk_hello_world_example
- Create the source code file for your user space example: gtk_hello_world.c
#include <gtk/gtk.h>
static void
print_hello (GtkWidget *widget,
gpointer data)
{
g_print ("Hello World\n");
}
static void
activate (GtkApplication *app,
gpointer user_data)
{
GtkWidget *window;
GtkWidget *button;
GtkWidget *button_box;
window = gtk_application_window_new (app);
gtk_window_set_title (GTK_WINDOW (window), "Window");
gtk_window_set_default_size (GTK_WINDOW (window), 200, 200);
button_box = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL);
gtk_container_add (GTK_CONTAINER (window), button_box);
button = gtk_button_new_with_label ("Hello World");
g_signal_connect (button, "clicked", G_CALLBACK (print_hello), NULL);
g_signal_connect_swapped (button, "clicked", G_CALLBACK (gtk_widget_destroy), window);
gtk_container_add (GTK_CONTAINER (button_box), button);
gtk_widget_show_all (window);
}
int
main (int argc,
char **argv)
{
GtkApplication *app;
int status;
app = gtk_application_new ("org.gtk.example", G_APPLICATION_FLAGS_NONE);
g_signal_connect (app, "activate", G_CALLBACK (activate), NULL);
status = g_application_run (G_APPLICATION (app), argc, argv);
g_object_unref (app);
return status;
}
3. Build
- Create the makefile for your user space example: Makefile
PROG = gtk_hello_world
SRCS = gtk_hello_world.c
CLEANFILES = $(PROG)
# Add / change option in CFLAGS and LDFLAGS
CFLAGS += -Wall $(shell pkg-config --cflags gtk+-3.0)
LDFLAGS += $(shell pkg-config --libs gtk+-3.0)
all: $(PROG)
$(PROG): $(SRCS)
$(CC) -o $@ $^ $(CFLAGS) $(LDFLAGS)
clean:
rm -f $(CLEANFILES) $(patsubst %.c,%.o, $(SRCS))
- Cross-compile the project
make
4. Deploy and execute
- Push this binary onto the board (Ethernet connection needed)
scp gtk_hello_world root@<board ip address>:/usr/local
- Execute your user space example by using the user "weston"
cd /usr/local/
su -l weston -c "/usr/local/gtk_hello_world"
- A GTK window is displayed
- Click the "Hello world" button to close the window. Hello world is displayed on the console:
Hello world