查看“1.2 sMonitor s5p6818开发平台”的源代码
←
1.2 sMonitor s5p6818开发平台
跳转至:
导航
、
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
{| style="width: 100%" | style="align=left width="70%"| <div class="No_Select"> ===关于s5p6818=== ====开发板介绍==== S5P6818采用28nm制作工艺,内置高性能8核A53 ARM架构,在多媒体性能上,它几乎支持全格式视频解码,在 LCD 控制器上,芯片板载 LVDS、 RGB、 MIPI 三路显示控制接口, 显示分辨率可以高达2048*1280@60Hz。 同时,内部集成千兆以太网控制器,能很好地满足更高的网络要求。 [[File:s5p6818_01.png|500px|link= ]] :::::::::::'''开发板正面''' [[File:s5p6818_02.png|500px|link= ]] :::::::::::'''开发板侧面''' [[File:s5p6818_03.png|500px|link= ]] :::::::::::'''开发板显示屏''' ====核心板介绍==== 6818核心板具有以下特性: *最佳尺寸,即保证精悍的体积又保证足够的 GPIO 口, 仅 68mm*48mm; *使用 x-powers 的 AXP228 PMU 电源管理设计, 在保证工作稳定可靠的同时,成本足够低廉; *支持多种品牌,多种容量的 emmc,默认使用东芝 8GB emmc(19nm MLC 工艺); *使用单通道 DDR3 设计, 默认支持 1GB 容量, 可定制 2GB 容量; *支持电源休眠唤醒; *支持 android5.1 操作系统; *板载千兆有线以太网; *拒绝掉程序, 远离使用 nand flash 批量掉程序的烦恼; *产品稳定可靠, 拷机 7 天 7 夜不死机; [[File:s5p6818_04.png|600px|link= ]] :::::::::::'''核心板正面''' [[File:s5p6818_05.png|400px|link= ]] :::::::::::'''核心板背面''' ====底板介绍==== [[File:s5p6818_06.png|750px|link= ]] <br> ===s5p6818简单使用=== ====硬件设备配置==== <syntaxhighlight lang="cpp" line> 6818开发板一套(带7寸1024*600电容触摸液晶模组) 5V/2A 电源适配器 1 个 USB无线网卡 1 个 USB转串口线 1 根 USB 数据线 1 根 (本项目暂不用) </syntaxhighlight> <br> ====串口连接后台==== '''1.硬件设备连接''' <syntaxhighlight lang="cpp" line highlight="1-3"> 使用串口线将开发板与电脑连接起来 将USB无线网卡插入6818开发板usb接口 使用电源线将开发板与电脑连接起来 </syntaxhighlight> '''2. 超级终端安装使用''' *打开超级终端软件 [[File:termi_001.png|600px|link= ]] [[File:termi_002.png|600px|link= ]] *新建串口设备 [[File:termi_003.png|600px|link= ]] *选择串口 [[File:termi_004.png|600px|link= ]] 如果不能自动识别出串口,则手动查看端口如下: *使用串口线或 USB 转串口模块连接开发板与电脑, 打开 Windows 的设备管理器, 查看串口端口号: [[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软件使用 首先要先安装secureCRT软件 :打开secureCRT软件,点击左上角“快速链接” 按钮: [[File:s5p6818_07.png|700px|link= ]] :使用串口线或 USB 转串口模块连接开发板与电脑, 打开 Windows 的设备管理器, 查看串口端口号: [[File:s5p6818_08.png|700px|link= ]] :可以看到串口端口号为 COM4。 :回到 secureCRT 工具界面, 设置“快速链接” 的配置。 选择协议为 Serial,端口为 COM4, 波特率为 115200, 取消勾选流控 RTS/CTS: [[File:s5p6818_09.png|600px|link= ]] :点击连接后,可以进入串口连接界面,此时没有信息输出。 5 启动开发板 :打开开发板电源, secureCRT 终端输出开发板启动信息, 说明secureCRT 配置完成: [[File:s5p6818_10.png|700px|link= ]] :此时,已经进入开发板android系统的后台,可以在命令行中能过输入命令来控制系统。 --> <!-- ===s5p6818系统烧写=== ====烧写工具准备==== '''1.miniUsb驱动安装''' *首先,在windows系统上安装“'''驱动精灵'''”软件。 *接下来,将miniUsb线插入电脑的USB接口中,并打开windows设备管理器,如下图示 [[File:s5p6818_15.png|700px|link= ]] 此时,并没有发现有“android Device”存在,说明miniUsb还没有安装驱动。 *打开secureCRT或者超级终端,并正常进入Teg6818开发板的bootloader交互界面 [[File:s5p6818_16.png|700px|link= ]] *在3秒钟减到0之前,按下回车 [[File:s5p6818_17.png|700px|link= ]] *在命令行中,输入fastboot命令进行系统更新模式,同时LCD屏会显示下载图标 [[File:s5p6818_18.png|700px|link= ]] *这时会发现“驱动精灵”软件会帮我们自动安装miniUsb设备的驱动 [[File:s5p6818_19.png|700px|link= ]] *安装完毕后,可以在设备管理器中发现“Android Device”,说明驱动安装完毕。 [[File:s5p6818_20.png|700px|link= ]] '''2.fastboot工具安装''' *从共享给大家的资料中找到fastboot工具 [[File:fastboot.png|700px|link= ]] *选择目录里面所有文件 [[File:fastboot2.png|700px|link= ]] *拷贝到以下目录即可完成安装 C:\Windows\System32 C:\Windows\SysWOW64(如果您的系统有此目录) *打开windows的“运行”测试 [[File:s5p6818_21.png|link= ]] *在运行中输入“cmd” [[File:s5p6818_22.png|600px|link= ]] *打开“dos终端” [[File:s5p6818_23.png|700px|link= ]] *在终端中输入“fastboot” [[File:s5p6818_24.png|700px|link= ]] 如上图所示则说明可以找到刚刚安装到windows系统下的fastboot.exe工具,至此fastboot工具安装结束。 <br> ====android系统安装==== *硬件连接准备,如果前面已经连接好则可以忽略此步 使用串口线连接开发板与电脑 使用miniUSB线连接开发板与电脑 *打开secureCRT或超级终端,上电开发板,并在bootloader延时时间减到0之前,按下回车进入交互界面,输入 #fastboot *此时,开发板进入“系统更新模式” [[File:s5p6818_11.png|700px|link= ]] *将共享给大家资料中的android_Image目录拷贝到windows系统的D盘 *打开dos终端,进入系统D盘的android_Image目录 [[File:s5p6818_12.png|700px|link=]] 可以看到当前目录有三个文件,分别为 <pre> ubootpak.bin: bootloader引导程序镜像 boot.img: linux内核镜像 system.img: 主文件系统镜像 cache.img: 缓冲文件系统镜像 userdata.img: 用户文件系统镜像 </pre> '''更新开发板android系统镜像''' *安装引导程序 fastboot flash ubootpak ubootpak.bin *安装系统内核 fastboot flash boot boot.img *安装文件系统 fastboot flash system system.img *可选烧写其他分区(建议不用烧写) fastboot flash userdata userdata.img fastboot flash cache cache.img fastboot flash recovery recovery.img 至此,android系统更新完毕。 '''更新启动参数''' *设置启动命令 </div class="No_Select"> env set bootcmd "ext4load mmc 2:1 0x48000000 uImage;ext4load mmc 2:1 0x49000000 root.img.gz;bootm 0x48000000" *设置启动参数 env set bootargs "lcd=vs070cxn tp=gslx680" 如果出现屏幕闪烁,则将启动参数改成如下设置 env set bootargs "lcd=wy070ml tp=gslx680" *最后保存退出 save <div class="No_Select"> <br> ====linux系统安装==== *前面步骤同android烧写一样,此处略 *将共享给大家资料中的linux_Image目录拷贝到windows系统的D盘 *打开dos终端,进入系统D盘的linux_Image目录 [[File:s5p6818_122.png|700px|link=]] 可以看到当前目录有三个文件,分别为 <pre> ubootpak_rootlogo.bin: bootloader引导程序镜像 boot.img: linux内核镜像 qt-rootfs-512.img: 主文件系统镜像 </pre> '''更新开发板linux系统镜像''' *安装引导程序 fastboot flash ubootpak ubootpak_rootlogo.bin *安装系统内核 fastboot flash boot boot.img *安装文件系统 fastboot flash system qt-rootfs-512.img 至此,linux系统更新完毕。 *修改系统参数 重启开发板,3秒钟到达之前按下回车,进入uboot交互界面 </div class="No_Select"> env set bootcmd "ext4load mmc 2:1 0x48000000 uImage;bootm 0x48000000" env set bootargs "lcd=vs070cxn tp=gslx680-linux root=/dev/mmcblk0p2 rw rootfstype=ext4" 如果用的是MIPI接口,则设置如下: setenv bootargs "lcd=wy070ml tp=gslx680-linux root=/dev/mmcblk0p2 rw rootfstype=ext4" 最后保存退出 save <div class="No_Select"> --> <!-- ====linux系统体验==== *使用QT_demo测试LED 进入QT5.4系统后(登录账户root,123456),默认会运行我们自主编写的测试 demo, 进入LED测试界面,可以测试开发板的四盏LED灯。 界面如下: ::[[Image:linuxSys_test01.png|600px]] 点击图中任意指示灯, 暗色对应开发板上 LED 灯灭, 红色对应开发板上 LED 灯亮 *使用 QT_demo 测试蜂鸣器 测试界面如下: ::[[Image:linuxSys_test02.png|600px]] 按住 Beep 键时, 蜂鸣器鸣叫, 松开时, 蜂鸣器停止鸣叫。 *使用 QT_demo 调节背光 测试界面如下: ::[[Image:linuxSys_test03.png|600px]] 滑动圆形滑轮, 可对开发板背光进行亮暗调节。 *使用 QT_demo 测试按键 测试界面如下: ::[[Image:linuxSys_test04.png|600px]] 按下开发板任一独立按键, 图中界面即会显示相应键值, 同时, 按下时提示[keydown], 抬起时提示[keyup]。 目前该功能仅支持音量“ +”、“ -” 键, 待调。 *使用 QT_demo 测试 ADC 电压 测试界面如下: ::[[Image:linuxSys_test05.png|600px]] 使用一字螺丝刀旋转精密电位器上面的旋转按钮,可以看到界面上的 Battery Vol 的值会 相应变化, 说明这里对电位器上 ADC 电压采样有效。 目前该功能异常, 待调。 *使用 QT_demo 测试音频 将喇叭或耳机接到开发板的对应接口, 点击下图中的 Play Sound 按钮, 会播放测试歌曲: ::[[Image:linuxSys_test06.png|600px]] *使用 QT_demo 测试触摸屏 进入如下界面: ::[[Image:linuxSys_test07.png|600px]] 单击绿色矩形框, 界面会进入全屏模式, 这时我们可以任意书写来测试触摸屏了, 测试 示例图片如下: ::[[Image:linuxSys_test08.png|600px]] *使用 QT_demo 测试串口 ::[[Image:linuxSys_test09.png|600px]] 将需要测试的串口的 TXD 和 RXD 短路, 再点击开始测试, 界面上会提示对应串口会自发自收 0123456789。 如果不能自发自收, 说明对应的串口硬件有问题。 *使用 QT_demo 测试网络 将网线连接开发板的有线以太网接口, 点击界面中的 Network Test 按钮, 如果网络已经连通, 则会添加 DNS, 如果没有连通, 则会提示相应错误, 如下图所示: ::[[Image:linuxSys_test10.png|600px]] 连接网线后测试时, 会有如下提示: ::[[Image:linuxSys_test11.png|600px]] *使用 QT_demo 测试 TF 卡 将 SD 卡插入开发板的 SD 卡槽, 点击 Tfcard Test, 界面上会列出 SD 卡中的内容。 ::[[Image:linuxSys_test12.png|600px]] *使用 QT_demo 测试 U 盘 将 U 盘接到开发板的任何一个 USB HOST 接口, 点击 Udisk Test, 数据框中会列出 U盘中的数据, 如果找不到, 则会提示无法 mount U 盘, 如图: ::[[Image:linuxSys_test13.png|600px]] *使用 QT_demo 测试休眠唤 点击 Deep Sleep, 开发板会进入深度睡眠状态, 这时屏幕会全黑, 串口终端也将没有任何信息提示, 只有按下 POWER 键, 方可唤醒开发板。 ::[[Image:linuxSys_test14.png|600px]] *使用 QT_demo 测试重启 点击 Reboot 按钮, 开发板将重启。 ::[[Image:linuxSys_test15.png|600px]] *使用 QT_demo 测试关机 点击 Poweroff 按钮, 开发板将会关机。 ::[[Image:linuxSys_test16.png|600px]] --> <!-- ===开发板环境优化=== 经过上面步骤,我们可能正常进入开发板的后台控制终端,接下来进行开发板的个性化环境配置 ====关闭自启动==== *打开配置脚本 vi /etc/init.d/S99qttest *找到以下内容,将“/usr/local/bin/smartpic2 -qws &”注释 <pre> start) echo "Starting qttest..." #/usr/share/demo/qttest & #/usr/local/bin/smartpic2 -qws & ;; </pre> 保存退出. ====配置有线网络==== *手动更新开发板的IP地址 vi /etc/init.d/S70netconfig 修改IP地址: #networkd config ifconfig eth0 192.168.0.101 netmask 255.255.255.0 echo nameserver 192.168.0.1 > /etc/resolv.conf 保存退出(记住这个IP地址,后面开发中需要用到) *重启系统 reboot *重启系统后,ping下百度 # ping www.baidu.com 如果能连上,说明成功了。 ====配置无线网络==== *将usb-wifi节点插入开发板的USB *重启进入开发板终端,执行如下操作: vi /etc/init.d/S70netconfig :如下修改内容: <pre> #ifconfig eth0 down #insmod /lib/modules/wifidrv/rt3070sta.ko #wpa_supplicant -B -ira0 -c /etc/wpa_supplicant.conf -Dwext #ifconfig ra0 192.168.0.8 netmask 255.255.255.0 #route add default gw 192.168.0.1 将上面的语句前面的#去掉 </pre> 注意: 192.168.0.x表示开发板的ip地址,2<x<254 注意根据无线路由器实际情况修改“网关” 如果想要ping外网,还要配置好域名服务器IP *修改接入点用户名及密码 vi /etc/wpa_supplicant.conf *修改下面两个参数: <pre> ssid="407" psk="12345678" </pre> *重新启动开发板 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.添加播放上一首功能 *在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: 90%;text-align: center" | style="width="30%" | '''资源编号''' || style=width="20%" | '''资源名称''' || style=width="10%" | '''资源介绍''' |- |1 || [[Media:分阶开发文档.txt|分阶开发文档.txt]] || align=left | 实操开发的详细过程 |- |2 || [[Media:ui.zip|ui.zip]] || align=left | 项目实现过程中所需要的界面图片 |- |3 || [[Media:AicPhoto_train_module.tar.bz2|AicPhoto_train_module.tar.bz2]] || align=left | 为项目开发调试准备的基本源码模板包 |} --> <span style="border:1px solid #000; text-align:center; float:right;padding:6px;"><strong>返回:</strong> [[SMonitor 开发基础|上一页]]</span> || |}
返回至
1.2 sMonitor s5p6818开发平台
。
导航菜单
个人工具
命名空间
小蚁工场,专注嵌入式、物联网与人工智能技术。
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
●项目主页
●动态信息
●帮助文档
工具
链入页面
相关更改
特殊页面
页面信息