目录

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

GUI 图片显示(SDL 多媒体开发库)——基于 rt-smart 微内核操作系统相关推荐

  1. android+背景图片不显示,背景图片显示问题 图片显示错误 android开发

    先贴出我的配置文件代码 android:layout_width="fill_parent" android:layout_height="fill_parent&quo ...

  2. 开发板BMP图片显示(6818开发板)

    BMP图片的前54个字节保存图片信息,不保存像素点 确认图片是不是BMP类型,读取整个图片大 #pragma pack (1)typedef struct tagBITMAPFILEHEADER{ u ...

  3. c语言头文件格式图片_阿波罗 STM32F767 开发板资料连载第四十九章 图片显示实验...

    1)实验平台:alientek 阿波罗 STM32F767 开发板2)摘自<STM32F7 开发指南(HAL 库版)>关注官方微信号公众号,获取更多资料:正点原子 第四十九章 图片显示实验 ...

  4. 【正点原子STM32连载】第四十八章 图片显示实验 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1

    1)实验平台:正点原子MiniPro H750开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=677017430560 3)全套实验源码+手册+视频 ...

  5. SDL游戏开发之一-SDL的简介

    本教程为一个长系列,旨在于从零开始边学习SDL边开发游戏. 一.什么是SDL? SDL(Simple DirectMedia Layer)是一套开放源代码的跨平台多媒体开发库,使用C语言写成.SDL提 ...

  6. SDL游戏开发系列第一话:Hello SDL

      各位读者朋友大家好,我是秦元培,欢迎大家关注我的博客,我的博客地址是http://qinyuanpei.com.从今天起博主将带领大家一起走进SDL游戏开发的世界,如果说此前的Unity3D游戏开 ...

  7. python游戏开发库_Python库之游戏开发及虚拟现实

    1.PyGame:简单的游戏开发功能库 http://www.pygame.org 提供了基于SDL的简单游戏开发功能及实现引擎 理解游戏对外部输入的响应机制及角色构建和交互机制 Python游戏入门 ...

  8. 基于web多媒体素材库的开发与实现前景和范围文档

    1业务需求 1.1应用背景 随着计算机多媒体技术的不断快速发展,在教育领域,多媒体信息技术已经开始发挥重要的作用,多媒体课件也开始在课堂上得到应用.在多媒体课件的应用过程中,需要大量的多媒体素材才能够 ...

  9. python kivy显示图片_Kivy 图形界面开发初体验

    本文是觅道文档连载教程<使用Kivy构建现代桌面GUI应用> 的第一个实例,如需细致的介绍,可点击此处进行阅读 Kivy 是一个开源的 Python 第三方库,可以用来快速开发应用程序. ...

最新文章

  1. vs2005添加live555工程
  2. mysql 基础sql
  3. 从数学到密码学(八)
  4. FOR JENNIFER MORRISON
  5. win10文件显示后缀名_win10系统,如何去除“此电脑” 里的6个多余文件夹
  6. 前端:CSS/11/CSS浮动和清除,CSS继承性,CSS优先级
  7. [转载]allowTransparency属性
  8. Python 科学计算基础 (整理)
  9. jtopo 实现一键布局
  10. [匈牙利算法] 洛谷 P1640 连续攻击
  11. linux aria2 多线程,Mac/Linux 多线程下载解决方案(Aria2 YAAW是什么)
  12. ansys时间步长怎么设置_ANSYS瞬态动力学分析中的时间步长的选择
  13. excel表格内怎么换行的教程
  14. 1-8代酷睿全部中招,英特尔处理器再曝漏洞
  15. YOLOV5 Detetct.py 流程分析
  16. python心形曲线和马鞍面_心形线与马鞍面
  17. 标准应用促边缘云成熟度提升
  18. 【亲测】登录界面,拖动滑块验证
  19. Latex报错Missing $ inserted.inserted text
  20. 教你集成Nearby Service实现一键Wi-Fi分享功能

热门文章

  1. 《脱颖而出——成功网店经营之道》一1.3 两个人的战争:二东之争
  2. R语言25-Prosper 贷款数据分析1
  3. RK G87机械键盘使用指南
  4. SpringBoot导出word模板并动态渲染数据
  5. Lens5 指南:专为Kubernetes人员设计的IDE
  6. 使用吉特哈布Codespaces和Visual Studio Code进行C++开发
  7. 【NEUQ】PJ的情书 【哈夫曼树 】
  8. 计算几何03_三次参数样条曲线与Cardinal曲线
  9. 设计模式----装饰模式(JAVA)
  10. Double 保留至小数点后两位