“1.2 sMonitor s5p6818开发平台”的版本间的差异
(→拓展实践) |
|||
(未显示同一用户的73个中间版本) | |||
第1行: | 第1行: | ||
{| style="width: 100%" | {| style="width: 100%" | ||
| style="align=left width="70%"| | | style="align=left width="70%"| | ||
− | |||
<div class="No_Select"> | <div class="No_Select"> | ||
− | + | ===关于s5p6818=== | |
− | === | + | ------------------------------ |
− | |||
====开发板介绍==== | ====开发板介绍==== | ||
S5P6818采用28nm制作工艺,内置高性能8核A53 ARM架构,在多媒体性能上,它几乎支持全格式视频解码,在 LCD 控制器上,芯片板载 LVDS、 RGB、 MIPI 三路显示控制接口, 显示分辨率可以高达2048*1280@60Hz。 同时,内部集成千兆以太网控制器,能很好地满足更高的网络要求。 | S5P6818采用28nm制作工艺,内置高性能8核A53 ARM架构,在多媒体性能上,它几乎支持全格式视频解码,在 LCD 控制器上,芯片板载 LVDS、 RGB、 MIPI 三路显示控制接口, 显示分辨率可以高达2048*1280@60Hz。 同时,内部集成千兆以太网控制器,能很好地满足更高的网络要求。 | ||
− | [[File:s5p6818_01.png| | + | [[File:s5p6818_01.png|500px|link= ]] |
:::::::::::'''开发板正面''' | :::::::::::'''开发板正面''' | ||
第16行: | 第14行: | ||
− | [[File:s5p6818_02.png| | + | [[File:s5p6818_02.png|500px|link= ]] |
:::::::::::'''开发板侧面''' | :::::::::::'''开发板侧面''' | ||
− | [[File:s5p6818_03.png| | + | [[File:s5p6818_03.png|500px|link= ]] |
:::::::::::'''开发板显示屏''' | :::::::::::'''开发板显示屏''' | ||
第45行: | 第43行: | ||
− | [[File:s5p6818_05.png| | + | [[File:s5p6818_05.png|400px|link= ]] |
:::::::::::'''核心板背面''' | :::::::::::'''核心板背面''' | ||
====底板介绍==== | ====底板介绍==== | ||
[[File:s5p6818_06.png|750px|link= ]] | [[File:s5p6818_06.png|750px|link= ]] | ||
+ | |||
+ | <br> | ||
===s5p6818简单使用=== | ===s5p6818简单使用=== | ||
− | + | ------------------------ | |
− | ==== | + | ====硬件设备配置==== |
<syntaxhighlight lang="cpp" line> | <syntaxhighlight lang="cpp" line> | ||
6818开发板一套(带7寸1024*600电容触摸液晶模组) | 6818开发板一套(带7寸1024*600电容触摸液晶模组) | ||
− | 5V/2A 电源适配器 1 个 | + | 5V/2A 电源适配器 1 个 |
− | + | USB无线网卡 1 个 | |
− | + | USB转串口线 1 根 | |
− | + | USB 数据线 1 根 (本项目暂不用) | |
</syntaxhighlight> | </syntaxhighlight> | ||
− | ==== | + | <br> |
+ | ====串口连接后台==== | ||
'''1.硬件设备连接''' | '''1.硬件设备连接''' | ||
− | <syntaxhighlight lang="cpp" line highlight=" | + | <syntaxhighlight lang="cpp" line highlight="1-3"> |
+ | 使用串口线将开发板与电脑连接起来 | ||
+ | 将USB无线网卡插入6818开发板usb接口 | ||
使用电源线将开发板与电脑连接起来 | 使用电源线将开发板与电脑连接起来 | ||
− | |||
− | |||
− | |||
</syntaxhighlight> | </syntaxhighlight> | ||
第77行: | 第77行: | ||
*打开超级终端软件 | *打开超级终端软件 | ||
− | [[File:termi_001.png| | + | [[File:termi_001.png|600px|link= ]] |
− | [[File:termi_002.png| | + | [[File:termi_002.png|600px|link= ]] |
*新建串口设备 | *新建串口设备 | ||
− | [[File:termi_003.png| | + | [[File:termi_003.png|600px|link= ]] |
*选择串口 | *选择串口 | ||
− | [[File:termi_004.png| | + | [[File:termi_004.png|600px|link= ]] |
如果不能自动识别出串口,则手动查看端口如下: | 如果不能自动识别出串口,则手动查看端口如下: | ||
第95行: | 第95行: | ||
*使用串口线或 USB 转串口模块连接开发板与电脑, 打开 Windows 的设备管理器, 查看串口端口号: | *使用串口线或 USB 转串口模块连接开发板与电脑, 打开 Windows 的设备管理器, 查看串口端口号: | ||
− | [[File:s5p6818_08.png| | + | [[File:s5p6818_08.png|600px|link= ]] |
*配置串口属性 | *配置串口属性 | ||
+ | |||
+ | [[File:termi_005.png|400px|link= ]] | ||
− | + | *重启开发板进入系统 | |
+ | 按下开发板的复位按键,重新启动开发板 | ||
− | * | + | [[File:termi_006.png|600px|link= ]] |
+ | |||
+ | 输入用户名root,密码123456(注意输入密码时是不会显示出来的),回车可以正常进入开发板linux系统中。 | ||
+ | |||
+ | 注意:<br> | ||
+ | 启动完毕后,如果LCD屏幕显示出一个界面程序,后台也有信息输出,为避免干扰可以点击屏幕左下角的红色按钮退出程序。 | ||
+ | |||
+ | <br> | ||
+ | <br> | ||
+ | |||
+ | ====配置网络连接==== | ||
+ | |||
+ | *将无线网卡插入6818开发板其中一个USB口(前面如有插入则跳过) | ||
+ | |||
+ | *按下复位按键,重新启动开发板后通过串口进入后台 | ||
+ | |||
+ | *如下修改配置文件wpa_supplicant.conf | ||
+ | |||
+ | vi /etc/wpa_supplicant.conf | ||
+ | |||
+ | 可以看到如下: | ||
+ | <pre> | ||
+ | network={ | ||
+ | ssid="aw-train" | ||
+ | scan_ssid=1 | ||
+ | key_mgmt=WPA-EAP WPA-PSK IEEE8021X NONE | ||
+ | pairwise=TKIP CCMP | ||
+ | group=CCMP TKIP WEP104 WEP40 | ||
+ | psk="aw2020@aic" | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | 其中: aw-train即你的wifi热点名称,aw2020@aic即你的wifi密码。如果公共热点连不上,可以开自己手机热点来连接。 | ||
+ | |||
+ | *配置开发板为自动获取分配IP地址 | ||
+ | |||
+ | vi /etc/init.d/S70netconfig | ||
+ | |||
+ | 将内容修改如下: | ||
+ | |||
+ | [[File:QNet_termi_001.png|600px|link= ]] | ||
+ | |||
+ | *配置完开发板以上文件后,使用命令方式重启开发板 | ||
+ | # reboot | ||
+ | |||
+ | 如果使用的WIFI热点没有问题,则开发板可以连接上无线网络,如下测试 | ||
+ | # ifconfig | ||
+ | # ping www.baidu.com | ||
+ | |||
+ | 如果可以正常显示IP地址,并Ping通百度网站,则无线网络配置连接成功。 | ||
+ | |||
+ | |||
+ | |||
+ | <br> | ||
+ | |||
+ | ====配置网络挂载==== | ||
+ | |||
+ | 1. 确保6818开发板与ubuntu主机连接同一个网络(同一个无线热点) | ||
+ | |||
+ | 2. 安装启动nfs | ||
+ | *进入ubuntu系统 | ||
+ | #vi /etc/exports | ||
+ | *查看下是否有以下内容: | ||
+ | /nfs *(rw,sync,no_root_squash) | ||
+ | :如果有则输入":wq"退出,如果没有,则输入上面内容,再保存退出。 | ||
− | + | *重启服务 | |
+ | #/etc/init.d/nfs-kernel-server restart | ||
− | + | *查看ubuntu系统的IP地址 | |
+ | #ifconfig | ||
+ | *进入开发板,准备挂载ubuntu下的/nfs目录 | ||
+ | #mkdir /nfs | ||
+ | #ls /nfs | ||
+ | #mount -o nolock 192.168.1.29:/nfs /nfs | ||
+ | #ls /nfs | ||
+ | |||
+ | *再回到ubuntu下面的/nfs | ||
+ | |||
+ | touch hello_2021.3.30 | ||
+ | |||
+ | *又回到开发板的/nfs | ||
+ | #ls /nfs | ||
+ | :可以正常看到在开发板的/nfs目录下有hello_2021.3.30 | ||
+ | |||
+ | |||
+ | 3. 设置开发板自动挂载: | ||
+ | |||
+ | *进入开发板,操作如下: | ||
+ | #vi /etc/profile | ||
+ | |||
+ | *点击"i"按键,通过光标移动,将文件最后面的 | ||
+ | #mount -o nolock 192.168.1.29:/nfs /nfs | ||
+ | |||
+ | :上面的192.168.1.29改成你自己的ubuntu的IP地址 | ||
+ | |||
+ | *先按下"ESC",输入":wq"保存退出。 | ||
+ | |||
+ | *重新启动开发板 | ||
+ | #reboot | ||
+ | :即可。 | ||
<!-- secure软件使用 | <!-- secure软件使用 | ||
第142行: | 第241行: | ||
===s5p6818系统烧写=== | ===s5p6818系统烧写=== | ||
− | + | -------------- | |
− | + | <!-- | |
====烧写工具准备==== | ====烧写工具准备==== | ||
第323行: | 第422行: | ||
save | save | ||
<div class="No_Select"> | <div class="No_Select"> | ||
− | + | --> | |
<!-- | <!-- | ||
第450行: | 第549行: | ||
--> | --> | ||
+ | <!-- | ||
===开发板环境优化=== | ===开发板环境优化=== | ||
第522行: | 第622行: | ||
*重新启动开发板 | *重新启动开发板 | ||
reboot | reboot | ||
+ | --> | ||
+ | |||
+ | ===s5p6818交叉开发=== | ||
+ | ------------------- | ||
+ | ====测试代码开发==== | ||
+ | *工程包准备 | ||
+ | |||
+ | 进入ubuntu,打开终端,执行 | ||
+ | |||
+ | cd /nfs | ||
+ | |||
+ | 从网页中下载demo包[[Media:playDemo.tar.bz2 |playDemo.tar.bz2[下载]]],并放置共享文件目录,返回ubuntu终端,执行: | ||
+ | |||
+ | cp /mnt/hgfs/shareWin/playDemo.tar.bz2 ./ | ||
+ | tar xvfj playDemo.tar.bz2 | ||
+ | cd playDemo | ||
+ | |||
+ | *代码开发 | ||
+ | |||
+ | 打开源文件playCtl.c | ||
+ | vi playCtl.c | ||
+ | |||
+ | 在main函数中,添加 | ||
+ | <!-- | ||
+ | <syntaxhighlight lang="ruby"> | ||
+ | char *argv[]={"mplayer","-slave","-quiet","-input","file=/opt/fifo","-playList", "MediaList",NULL}; | ||
+ | |||
+ | pid = fork(); | ||
+ | if(pid < 0){ perror("fork failed\n");return -1;} | ||
+ | else if(pid == 0){ | ||
+ | execvp("mplayer",argv); | ||
+ | printf("exec failed\n"); | ||
+ | return -1; | ||
+ | }else{ | ||
+ | fd = open("/opt/fifo",O_WRONLY); | ||
+ | if(fd < 0){perror("open fifo fail\n");return -1;} | ||
+ | sleep(1); | ||
+ | do{ | ||
+ | choice = ui_choice(); | ||
+ | switch(choice){ | ||
+ | case 1:write(fd,"pause\n",6);break; | ||
+ | case 2:write(fd,"seek 0 1\n",9);break; | ||
+ | case 3:write(fd,"pt_step 1\n",10);sleep(1);break; | ||
+ | case 6:write(fd,"quit\n",5);break; | ||
+ | default:break; | ||
+ | } | ||
+ | }while(choice != 6); | ||
+ | |||
+ | system("clear"); | ||
+ | wait(NULL); | ||
+ | } | ||
+ | close(fd); | ||
+ | </syntaxhighlight> | ||
+ | --> | ||
+ | [[File:playCtrl_001.png|800px|link= ]] | ||
+ | |||
+ | 注意:将上面的“maplayer”改成“mplayer” | ||
+ | |||
+ | 在ui_choice函数中,添加: | ||
+ | <!-- | ||
+ | <syntaxhighlight lang="ruby"> | ||
+ | |||
+ | system("clear"); | ||
+ | printf("\t 1. pause player.\n"); | ||
+ | printf("\t 2. restart player.\n"); | ||
+ | printf("\t 3. next player.\n"); | ||
+ | printf("\t 6. exit player.\n"); | ||
+ | printf("\t your choice: "); | ||
+ | scanf("%d", &choice); | ||
+ | |||
+ | </syntaxhighlight> | ||
+ | --> | ||
+ | |||
+ | [[File:playCtrl_002.png|800px|link= ]] | ||
+ | |||
+ | ====交叉执行演示==== | ||
+ | |||
+ | *程序编译 | ||
+ | arm-linux-gcc playCtl.c -o playCtl | ||
+ | |||
+ | 可以看到在当前目录下生成了一个名为playCtl的可执行文件 | ||
+ | |||
+ | *程序挂载 | ||
+ | |||
+ | 回到开发板终端,确定网络是接通情况下,执行 | ||
+ | mount -o nolock ubuntuIP:/nfs /nfs | ||
+ | |||
+ | 注意: ubuntuIP是你的ubuntu的IP地址,不要搞错了哦 | ||
+ | |||
+ | *程序执行 | ||
+ | |||
+ | cd /nfs/playDemo | ||
+ | mkfifo /opt/fifo | ||
+ | ./playCtl | ||
+ | |||
+ | 可以看到开发板显示屏幕开始播放视频,而在终端可以看到控制列表,输入对应的数字可以执行相应的功能 | ||
+ | |||
+ | <br> | ||
+ | |||
+ | ===拓展实践=== | ||
+ | -------------- | ||
+ | * 添加播放上一首功能 | ||
+ | :在交叉界面添加多一项,可以在终端中输入选择的序号后,响应并播放上一首音乐。 | ||
+ | |||
+ | * 添加音量调节功能 | ||
+ | :在交叉界面添加多一项,可以在终端中输入选择的序号后,进入二级的音量增加与减少界面,用于选择1 or 2后,播放声音变大or变小。 | ||
+ | <!-- | ||
+ | 参考代码: | ||
+ | 1.添加播放上一首功能 | ||
+ | *在ui_choice函数中,添加 | ||
+ | printf("\t 4. prev player.\n"); | ||
+ | *在main函数中,添加 | ||
+ | case 4:write(fd,"pt_step -1\n",11);sleep(1);break; | ||
+ | 2.添加音量调节功能 | ||
+ | <pre> | ||
+ | int ui_choice(void) | ||
+ | { | ||
+ | int choice; | ||
+ | system("clear"); | ||
+ | printf("\t 1. pause player.\n"); | ||
+ | printf("\t 2. restart player.\n"); | ||
+ | printf("\t 3. next player.\n"); | ||
+ | printf("\t 4. prev player.\n"); | ||
+ | printf("\t 5. set volume.\n"); //新加 | ||
+ | printf("\t 6. exit player.\n"); | ||
+ | printf("\t your choice: "); | ||
+ | scanf("%d", &choice); | ||
− | < | + | return choice; |
+ | } | ||
+ | </pre> | ||
+ | |||
+ | *在main函数相应位置中,添加: | ||
+ | <pre> | ||
+ | case 4:write(fd,"pt_step -1\n",11);sleep(1);break; | ||
+ | case 5: | ||
+ | do{ | ||
+ | printf("enter volume value(0-100):"); | ||
+ | scanf("%d",&num); | ||
+ | }while(num > 100 || num < 0); | ||
+ | memset(volume,0,sizeof(volume)); | ||
+ | sprintf(volume,"volume %d 1\n",num); | ||
+ | write(fd,volume,strlen(volume)); | ||
+ | break; | ||
+ | case 6:write(fd,"quit\n",5);break; | ||
+ | </pre> | ||
+ | --> | ||
+ | |||
+ | ===资源下载=== | ||
+ | --------------- | ||
+ | <div style="font-size: 120%;"></div> | ||
+ | {| class="wikitable" style="width: 100%;text-align: center" | ||
+ | | style="background: PaleTurquoise;width:15%"| | 资源编号 || style="background: PaleTurquoise;width:40%" | 资源名称 || style="background: PaleTurquoise;"|下载链接 | ||
+ | |- | ||
+ | |1 || 超级终端软件,用于串口通信调试 || [[Media:超级终端.zip|超级终端.zip]] | ||
+ | <!-- | ||
+ | |- | ||
+ | |2 || 工程最终完成版本代码 || [[Media:weather_finished.tar.bz2|weather_finished.tar.bz2]] | ||
+ | |- | ||
+ | |3 || 天气数据整合 || [[Media:天气获取显示(内部使用版).docx|天气获取显示(内部使用版).docx]] | ||
+ | --> | ||
+ | |} | ||
+ | <span style="border:1px solid #000; text-align:center; float:right;padding:6px;"><strong>返回:</strong> [[SMonitor 开发基础|上一页]]</span> | ||
|| | || | ||
|} | |} |
2025年6月18日 (三) 10:41的最新版本
目录关于s5p6818开发板介绍S5P6818采用28nm制作工艺,内置高性能8核A53 ARM架构,在多媒体性能上,它几乎支持全格式视频解码,在 LCD 控制器上,芯片板载 LVDS、 RGB、 MIPI 三路显示控制接口, 显示分辨率可以高达2048*1280@60Hz。 同时,内部集成千兆以太网控制器,能很好地满足更高的网络要求。
核心板介绍6818核心板具有以下特性:
底板介绍
s5p6818简单使用硬件设备配置1 6818开发板一套(带7寸1024*600电容触摸液晶模组)
2 5V/2A 电源适配器 1 个
3 USB无线网卡 1 个
4 USB转串口线 1 根
5 USB 数据线 1 根 (本项目暂不用)
串口连接后台1.硬件设备连接 1 使用串口线将开发板与电脑连接起来
2 将USB无线网卡插入6818开发板usb接口
3 使用电源线将开发板与电脑连接起来
如果不能自动识别出串口,则手动查看端口如下:
按下开发板的复位按键,重新启动开发板 输入用户名root,密码123456(注意输入密码时是不会显示出来的),回车可以正常进入开发板linux系统中。 注意:
配置网络连接
vi /etc/wpa_supplicant.conf 可以看到如下: network={ ssid="aw-train" scan_ssid=1 key_mgmt=WPA-EAP WPA-PSK IEEE8021X NONE pairwise=TKIP CCMP group=CCMP TKIP WEP104 WEP40 psk="aw2020@aic" } 其中: aw-train即你的wifi热点名称,aw2020@aic即你的wifi密码。如果公共热点连不上,可以开自己手机热点来连接。
vi /etc/init.d/S70netconfig 将内容修改如下:
# reboot 如果使用的WIFI热点没有问题,则开发板可以连接上无线网络,如下测试 # ifconfig # ping www.baidu.com 如果可以正常显示IP地址,并Ping通百度网站,则无线网络配置连接成功。
配置网络挂载1. 确保6818开发板与ubuntu主机连接同一个网络(同一个无线热点) 2. 安装启动nfs
#vi /etc/exports
/nfs *(rw,sync,no_root_squash)
#/etc/init.d/nfs-kernel-server restart
#ifconfig
#mkdir /nfs #ls /nfs #mount -o nolock 192.168.1.29:/nfs /nfs #ls /nfs
touch hello_2021.3.30
#ls /nfs
#vi /etc/profile
#mount -o nolock 192.168.1.29:/nfs /nfs
#reboot
s5p6818系统烧写
s5p6818交叉开发测试代码开发
进入ubuntu,打开终端,执行 cd /nfs 从网页中下载demo包playDemo.tar.bz2[下载],并放置共享文件目录,返回ubuntu终端,执行: cp /mnt/hgfs/shareWin/playDemo.tar.bz2 ./ tar xvfj playDemo.tar.bz2 cd playDemo
打开源文件playCtl.c vi playCtl.c 在main函数中,添加 注意:将上面的“maplayer”改成“mplayer” 在ui_choice函数中,添加: 交叉执行演示
arm-linux-gcc playCtl.c -o playCtl 可以看到在当前目录下生成了一个名为playCtl的可执行文件
回到开发板终端,确定网络是接通情况下,执行 mount -o nolock ubuntuIP:/nfs /nfs 注意: ubuntuIP是你的ubuntu的IP地址,不要搞错了哦
cd /nfs/playDemo mkfifo /opt/fifo ./playCtl 可以看到开发板显示屏幕开始播放视频,而在终端可以看到控制列表,输入对应的数字可以执行相应的功能
拓展实践
资源下载
|