GUI 图片显示(SDL 多媒体开发库)——基于 rt-smart 微内核操作系统
目录
SDL 跨平台多媒体开发库简介
快速体验 rt-smart:GUI SDL
SDL GUI 开发环境搭建及演示
硬件环境搭建
软件环境搭建
1、下载 AR-Pi Smart SDK
2、下载和安装工具链
3、Linux 开发环境准备
4、设置环境变量
5.编译用户 APP:sdl
用户 APP 示例:SDL Demo 演示
SDL 跨平台多媒体开发库简介
SDL(Simple DirectMedia Layer)是一套开放源代码的跨平台多媒体开发库,使用 C 语言写成。SDL 提供了数种控制图像、声音、输出入的函数,让开发者只要用相同或是相似的代码就可以开发出跨多个平台(Linux、Windows、Mac OS 等)的应用软件。目前, SDL 多用于开发游戏、模拟器、媒体播放器等多媒体应用领域。
在 ART-Pi Smart SDK 里面提供了一个 gnu-app 示例:SDL GUI 示例,即移植 SDL 官方软件代码(2.0.14 版本)交叉编译成目标系统平台可以运行的库或二进制文件,作为 rt-smart 的一个用户 APP,并在 ART-Pi Smart 开发板上运行。
用户也可以根据文档下面的章节 “ 用户 APP(gnu-apps): SDL GUI 开发环境搭建 ” 自行尝试编译此 gnu-app 示例中所用的固件。
快速体验 rt-smart:GUI SDL
1.在运行 rt-smart 用户应用程序之前,需要先把 rt-smart 内核在开发板上跑起来。
由于开发板的 emmc 已经固化了一版 rt-smart 内核固件,并且开发板上电后,会自动优先启动 rt-smart 内核,故只需要给开发板上电即可(通过将 USB-TypeC 连接到电脑 USB 给开发板供电)。ART-Pi Smart 开发板会通过 u-boot 自动加载 emmc 中的 rt-smart 内核固件文件(/kernel/rtthread.bin)到内存去运行。
2.运行 sdl_test.elf 用户 APP。一般情况下,在 ART-Pi Smart 的 emmc 里面已经存放了 sdl_test.elf 固件文件和 test.bmp 图片,故可以直接运行 sdl_test.elf 用户APP。如果在 emmc 里面未找到提前编译好的 sdl_test.elf 固件的话,用户也可自己编译生成 sdl_test.elf 文件,和要测试的图片一起存放到 sd 卡,并从 sd 卡上运行此 sdl gui 示例。
# 进入到用户 APP 应用程序目录:/root/bin/
msh />cd root/bin
# ls 查看目录下,是否存放
msh /root/bin>ls
sdl_test.elf 1046388
test.bmp 662730
# 运行用户 APP: sdl_test.elf
msh /root/bin>sdl_test.elf -p test.bmp
3.观察 4.3 寸 LCD 是否正常显示 river.bmp 图片,如下图所示。
SDL GUI 开发环境搭建及演示
SDL GUI 示例中的用户 APP 源码不是采用 scons 编译方式,而是采用 automake 编译方式。故仅适用于 Linux 开发环境。
需要了解 automake 和 Makefile 的基本语法及编译过程。
硬件环境搭建
ART-Pi Smart 开发板是 RT-Thread 联合百问科技出品,用于学习和评估 RT-Thread Smart 微内核操作系统
电源输入:5V,500 mA,通过开发板 USB-TypeC(下面)供电。如下图所示,通过测试电脑的 USB 直接对开发板供电
串口连接:下方的 USB-TypeC 接口,既是用作电源供电,同时也是 USB 转 UART 接口,主要用于打印系统的控制台输入和输出
波特率 | 数据位 | 停止位 | 校验位 | 流控 |
---|---|---|---|---|
115200 | 8 | 1 | 无 | 无 |
网络接口:通过路由器和网线(或者通过板载的 rw007 wi-fi 模块),将开发板和测试电脑连接在同一个局域网内
开发板未上电之前,先将 4.3 寸 LCD 显示器的 50 Pin FPC 排线连接到 ART-Pi Smart 开发板背面的 LCD 硬件插槽
软件环境搭建
1、下载 AR-Pi Smart SDK
ART-Pi-Smart SDK 仓库是 RT-Thread 团队对 ART-Pi Smart 开发板所作的支持包,用于学习和评估 RT-Thread Smart 微内核操作系统,让用户可以更简单方便地开发自己的应用程序。
ART-Pi smart 开发板的 SDK 仓库,主要包括 RT-Thread Smart 的源码,BSP 驱动,应用程序 demo 等。
SDK 下载方法:通过 Git 下载 ART-Pi Smart SDK 包:
git clone https://gitee.com/createshare/ART-Pi-smart.git
2、下载和安装工具链
rt-smart 采用的工具链为:arm-linux-musleabi 工具链
需要用户自行通过下面网址下载 Linux 版本或 Windows 版本的工具链
链接: 百度网盘 请输入提取码 提取码: ndxq
将下载的工具链,解压到指定的路径
tools/gnu_gcc
下面
3、Linux 开发环境准备
安装一些必要的软件环境:
$ sudo apt update
$ sudo apt install git bzip2 wget patch
$ sudo apt install gcc
$ sudo apt install g++
$ sudo apt install libncurses-dev
$ sudo apt install libpng-dev
$ sudo apt install libncurses5
$ sudo apt install automake
$ sudo apt install make
4、设置环境变量
# 进入到 rt-smart 目录
$ cd rt-smart# 设置对应的环境变量(rt-smart 工具链、编译器等)
$ source smart-env.sh
5.编译用户 APP:sdl
sdl 软件库采用 automake 作为构建工具。automake 基本原理为:将 Makefile.am 中定义的结构建立 Makefile.in,然后 configure 脚本将生成的 Makefile.in 文件转换为 Makefile。
# 进入到 rt-smart/userapps/gnu-apps/sdl 目录
$ cd rt-smart/userapps/gnu-apps/sdl# 编译 sdl 软件库
$ ./build_sdl.sh# 编译测试代码
$ ./build_test.sh
编译成功之后,就可以在 rt-smart/userapps/root/bin/ 路径下,找到编译好的 sd_test.elf 用户 APP 固件文件和用于测试的图片 test.bmp。
然后复制 sd_test.elf 和 test.bmp(480 x 272)文件到 sd 卡,并插到 ART-Pi Smart 开板板的 sd 卡槽。
用户 APP 示例:SDL Demo 演示
在运行 rt-smart 用户应用程序之前,需要先把 rt-smart 内核在开发板上跑起来。由于开发板上的 emmc 已经固化了一版 rt-smart 内核固件,并且开发板上电后,会自动优先启动 rt-smart 内核,故只需要给开发板上电即可。
# 进入到用户 APP 应用程序目录:/root/bin/
msh />cd root/bin# 运行用户 APP: sdl_test.elf
msh /root/bin>sdl_test.elf -p bear.bmp
先贴出我的配置文件代码 android:layout_width="fill_parent" android:layout_height="fill_parent&quo ... BMP图片的前54个字节保存图片信息,不保存像素点 确认图片是不是BMP类型,读取整个图片大 #pragma pack (1)typedef struct tagBITMAPFILEHEADER{ u ... 1)实验平台:alientek 阿波罗 STM32F767 开发板2)摘自<STM32F7 开发指南(HAL 库版)>关注官方微信号公众号,获取更多资料:正点原子 第四十九章 图片显示实验 ... 1)实验平台:正点原子MiniPro H750开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=677017430560 3)全套实验源码+手册+视频 ... 本教程为一个长系列,旨在于从零开始边学习SDL边开发游戏. 一.什么是SDL? SDL(Simple DirectMedia Layer)是一套开放源代码的跨平台多媒体开发库,使用C语言写成.SDL提 ... 各位读者朋友大家好,我是秦元培,欢迎大家关注我的博客,我的博客地址是http://qinyuanpei.com.从今天起博主将带领大家一起走进SDL游戏开发的世界,如果说此前的Unity3D游戏开 ... 1.PyGame:简单的游戏开发功能库 http://www.pygame.org 提供了基于SDL的简单游戏开发功能及实现引擎 理解游戏对外部输入的响应机制及角色构建和交互机制 Python游戏入门 ... 1业务需求 1.1应用背景 随着计算机多媒体技术的不断快速发展,在教育领域,多媒体信息技术已经开始发挥重要的作用,多媒体课件也开始在课堂上得到应用.在多媒体课件的应用过程中,需要大量的多媒体素材才能够 ... 本文是觅道文档连载教程<使用Kivy构建现代桌面GUI应用> 的第一个实例,如需细致的介绍,可点击此处进行阅读 Kivy 是一个开源的 Python 第三方库,可以用来快速开发应用程序. ...GUI 图片显示(SDL 多媒体开发库)——基于 rt-smart 微内核操作系统相关推荐
最新文章
热门文章