教学平台
教学平台简介
SylixOS-EVB-i.MX6Q 验证平台是翼辉信息技术有限公司为方便 SylixOS 用户充分评估 SylixOS 功能和性能推出的高端 ARM-SMP 验证平台。该验证平台基于 i.MX6Q 工业级 CPU 设计,可以直接进行多种软硬件的性能评估和测试。
SylixOS-EVB-i.MX6Q 是翼辉信息技术有限公司推出的第一代 ARM-SMP 验证平台,采用 i.MX6Q Cortex-A9 处理器,可以测试常见的嵌入式通信接口如 RS232、CAN、USB、PCIE、SATA、SDIO、以太网、I2C、LVDS、LCD、HDMI 等。SylixOS-EVB-i.MX6Q 还包含 3 个扩展接口,可以测试自定义的 I2C、SPI、UART 模块或外扩设备。
i.MX6Q 是一款适用于消费电子、工业以及汽车车载娱乐系统等众多领域的新一代应用处理器。i.MX6Q 基于 ARMCortex-A9 架构,40nm 工艺制程,最高运行频率可达 1.2GHz,支持 ARMv7TM、Neon、VFPV3 和 Trustzone。处理器内部为 64/32 位总线结构,32/32KB 一级缓存,1MB 二级缓存,具有 12000DMIPS(每秒运算 12 亿条指令集)的高性能运算能力,并自带 3D 图形加速引擎,2D 图形加速,最大支持 4096x4096pixels 分辨率,视频编码支持 MPEG-4/H.263/H.264 达到 1080p@30fps,解码 MPEG2/VC1/Xvid 视频达到 1080p@30fps,支持高清 HDMI-TV 输出。
i.MX6Q 芯片性能高功耗低,适用于做手持电子设备、通讯设备以及医疗应用设备,涵盖上网本、学习机、监控视频设备和各种人机界面,可应用于高清游戏、无线 GPS 导航、移动视频播放、智能控制、仪器仪表、导航设备、PDA 设备、远程监控、游戏开发等。
i.MX6 的汽车级版本,可广泛用于汽车、工业以及各种高可靠要求的行业。i.MX6Q 核心系统体积小,性能高的特性,有效地提升了系统效率、降低了设备体积、功耗和成本。
SylixOS-EVB-i.MX6Q 可以根据不同的应用场合选择四核处理器或双核处理器,如面向教育培训市场可以选择使用双核处理器,面向科研和项目评估建议选择四核处理。双核和四核处理器的验证平台外设、软件资源完全相同,只是在处理器能力上四核要高于双核。
验证平台实物图
序号 | 接口名称 | 其他说明 |
---|---|---|
1 | 电路板电源开关 | 无 |
2 | 电源输入接口 | DC-12V |
3 | 调试串口 | DB9 母头 |
4 | MiniUSB | i.MX6Q 处理器的 USB OTG 接口,可用于系统更新 |
5 | RJ45 | i.MX6Q 处理器原生千兆以太网接口 |
6 | HDMI | i.MX6Q 处理器原生数字高清接口 |
7 | USB HOST | USB 主接口 |
8 | 应用串口 | DB9 公头,可以进行串口应用编程 |
9 | 音频接口 | 实现音频的输入输出(左边:麦克风、右边:耳机) |
10 | Mini-PCIE | PCIEx1 接口 |
11 | CAN | 分别是 CAN1 CAN2 |
12 | RTC 电池 | CR2032 |
13 | 摄像头接口 | 连接摄像头模块 |
14 | SATA 接口 | SATA2.0 接口,可以连接硬盘 |
15 | SATA 电源接口 | 向 SATA 硬盘供电接口(使用电源转接线) |
16 | SPI 扩展模块接口 | 无 |
17 | I2C 扩展模块接口 | 无 |
18 | UART 扩展模块接口 | 无 |
19 | SD 卡 | 无 |
20 | JTAG 接口 | 可以用于 JTAG 调试 |
21 | i.MX6Q 核心板 | 4 核处理器 |
22 | LCD 显示 | LVDS 接口 |
23 | 键盘 | 键盘输入 |
24 | 数码管 | 4 位 8 段数码管 |
25 | 阵列按键 | 4x4 阵列按键 |
26 | GPIO 按键 | 用来进行 GPIO 实验 |
27 | 复位 | 无 |
验证平台硬件配置
SylixOS-EVB-i.MX6Q 电路板包含的资源如下:
核心板
- MX6Q 工业级 4 核处理器。
- 1 GB DDR3 内存
- 2 MB SPI Nor Flash,系统默认从 SPI Flash 启动
- 4 GB eMMC
底板
- 1 个电源开关。
- 1 个 DC-12V 电源接口。
- 3 路 RS232 接口,其中 1 路为 DB9 母头做 Debug 接口,另外 2 路为 DB9 公头。
- 1 路 USBOTG 接口。
- 1 路千兆以太网接口。
- 1 路 HDMI 接口、1 路 LCD 接口、2 路 LVDS 接口,其中 1 路 LVDS 连接 LCD 液晶屏。
- 5 路 USB HOST 接口,其中 1 路连接键盘。
- 1 对音频输入输出接口。
- 1 路 mini-PCIE 接口。
- 1 个摄像头接口。
- 1 个 RTC 芯片 ISL1208。
- 1 路 SATA 接口,配合 IDE 大 4P 电源接口。
- 3 个 TTL 电平扩展模块接口,分别有 UART、SPI、I2C。
- 1 路 SD 卡接口。
- 7 路 GPIO 按键。
- 8 路 GPIO 控制的 LED。
- zlg7290 芯片扩展 4 位数码管和 4x4 阵列按键。
- 1 路 PWM 接口。
验证平台快速体验
验证平台上电及启动项选择
拨码开关出厂默认位置全部在 “非 ON” 位置。在后续的全部配置过程中,拨码开关都不需要改动。
正确连接 DC-12V 电源、USB 转串口等线缆。在对系统上电之前需要首先开启串口终端程序。当前默认使用 putty(该工具在 SylixOS_CD 中的 tools 目录下有提供),初次打开后步骤如下:
拷贝 tools 目录下的 putty.zip 和 sscom32.exe 文件到本地某磁盘目录下,如 D:/toolOfWorks 目录下。
解压 putty.zip 到当前文件,并进入解压后的 putty 目录,双击 PUTTY.EXE 可以启动 putty 软件,也可以通过”右键”→”发送到(N)” →”桌面快捷方式”以方便后续使用。
在 PuTTY Configuration 对话框中先选择”Serial”通信方式,随后设置串口参数,通常为 115200、8data、1Stop、None Parity、None Flow control,Serial Line 根据自己的 COM 口进行设置,如下图所示。
常用的 PuTTY 可以在”Saved Sessions”框中将当前的串口配置保存下来,后面使用只需要双击相应名称就可以了。
启动后,连接好电源、DB9 母头连接 USB 转串口线并连接到 PC 端,网络直接或通过交换机与 PC 主机建立连接,然后对电路板上电。
上电后会首先输出 u-boot 的信息,在启动时敲击任意键中断 u-boot 的自动启动,进入 u-boot 的命令行模式:
U-Boot 2015.04-g5464d26-dirty (Nov 09 2016 - 21:58:24) CPU: Freescale i.MX6Q rev1.5 at 792 MHz CPU: Temperature 44 C Reset cause: POR Board: SylixOS i.MX6 Evaluation Kit Model: SYLIXOS-IMX6-6Q-1G I2C: ready DRAM: 1 GiB MMC: FSL_SDHC: 0, FSL_SDHC: 1 SF: Detected SST25VF016B with page size 256 Bytes, erase size 4 KiB, total 2 MiB No panel detected: default to Hannstar-XGA Display: Hannstar-XGA (1024x600) In: serial Out: serial Err: serial Net: using phy at 5 FEC [PRIME] Normal Boot Hit any key to stop autoboot: 0 => =>
输入命令 boot 可重新启动内核,如果不中断 u-boot 的启动会自动加载 SylixOS 镜像并运行。
[[ (R)
[[[[ [[[[ [[ [[[[ [[[[
[[ [[ [[ [[ [[ [[ [[
[[ [[ [[ [[ [[[[ [[ [[ [[ [[ [[
[[ [[ [[ [[ [[ [[ [[ [[ [[ [[
[[ [[ [[ [[ [[ [[[[ [[ [[ [[
[[ [[ [[ [[ [[ [[ [[ [[ [[
[[ [[ [[ [[ [[ [[[[ [[ [[ [[
[[ [[ [[ [[ [[ [[ [[ [[ [[ [[ [[ [[
[[[[ [[[[ [[[[[[ [[[[[[ [[ [[ [[[[ [[[[
[[
[[ KERNEL: LongWing(C) 2.5.1
[[[[ COPYRIGHT ACOINFO Co. Ltd. 2006 - 2022
SylixOS license: Commercial & GPL.
SylixOS kernel version: 2.5.1 Code name: Enterprise
CPU : Freescale i.MX6Q (Cortex-A9 Max@1.2GHz NEON VFPv3)
CACHE : 64KBytes L1-Cache(D-32K/I-32K), 1MBytes L2-Cache
PACKET : SylixOS EVM
ROM SIZE: 0x00002000 Bytes (0x00000000 - 0x00001fff)
RAM SIZE: 0x40000000 Bytes (0x10000000 - 0x4fffffff)
BSP : BSP version 1.2.0
[root@sylixos:/root]#
在系统启动后,就可以使用 shell 命令进行各种信息的查看。对刚刚接触嵌入式相关内容的用户来讲,建议直接使用出厂默认部署的系统进行应用方面的学习。读者在熟悉操作系统应用开发后,在进入驱动或 BSP 的学习。
修改系统 IP 地址
接上网线后若要保证验证平台与主机之间能够进行网络通信,需配置验证平台的 IP 地址与主机 IP 地址在一个网段内。
启动系统后通过串口终端进入 etc 目录下用内置的 vi 编辑器修改 ifparam.ini 文件。
[root@sylixos:/root]# cd /etc/
[root@sylixos:/root]# vi ifparam.ini
进入编辑界面后按下键盘上的”i”键,设置 vi 编辑器为编辑模式,根据读者主机的 IP 地址信息修改验证平台上的网络配置信息(主要修改 ipaddr、netmask、gateway 信息)后按下键盘上的”Esc”键设置 vi 编辑器到命令模式,然后输入”:wq”(保存退出)。退出 vi 编辑器后输入 sync 命令然后按回车,确保数据写回存储器。重启后即为新的 IP 地址。
[imx6q_0]
ipaddr = 10.4.120.66
netmask = 255.255.0.0
gateway = 10.4.0.1
txqueue = 512
default=1
重新启动验证平台后,可以使用 ifconfig 命令查看当前验证平台的 ip 地址信息,输入 ifconfig 命令后,系统会有如下响应:
[root@sylixos:/root]# ifconfig
en1 Link encap: Ethernet HWaddr: 00:08:ee:03:a6:cc
Dev: imx6q_0 Ifidx: 2 DHCP: D4 D6 Spd: 1000 Mbps
inet addr: 10.4.120.66 netmask: 255.255.0.0
gateway: 10.4.0.1 broadcast: 10.4.255.255
inet6 addr: fe80::208:eeff:fe03:a6cc Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
collisions:0 txqueue:512 tcpaf:2 tcpwnd:65535
RX ucast packets:0 nucast packets:1439 dropped:0
TX ucast packets:0 nucast packets:8 dropped:0
RX Bytes:96981 (94.7 KB) TX Bytes:588 (588.0 B)
lo0 Link encap: Local Loopback
Dev: N/A Ifidx: 1 DHCP: D4 D6 Spd: N/A
inet addr: 127.0.0.1 netmask: 255.0.0.0
P-to-P: 127.0.0.1 broadcast: N/A
inet6 addr: ::1 Scope:Loopback
UP LOOPBACK RUNNING MTU:0 Metric:1
collisions:0 txqueue:0 tcpaf:2 tcpwnd:262140
RX ucast packets:3 nucast packets:0 dropped:0
TX ucast packets:3 nucast packets:0 dropped:0
RX Bytes:168 (168.0 B) TX Bytes:168 (168.0 B)
dns0: 0.0.0.0
dns1: 0.0.0.0
dns2: 0.0.0.0
dns3: 0.0.0.0
default device is: en1
list net interface: 2
[root@sylixos:/root]#
使用 ping 命令,测试与 PC 主机的网络链接是否正常,正常后就可通过网络上传应用程序,进行程序调试等工作。
[root@sylixos:/root]# ping 10.4.0.105
Pinging 10.4.0.105
Reply from 10.4.0.105: Bytes=32 time=0.575ms TTL=64
Reply from 10.4.0.105: Bytes=32 time=0.230ms TTL=64
Reply from 10.4.0.105: Bytes=32 time=0.236ms TTL=64
Reply from 10.4.0.105: Bytes=32 time=0.392ms TTL=64
Ping statistics for 10.4.0.105:
Packets: Send = 4, Received = 4, Lost = 0(0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0.230ms, Maximum = 0.575ms, Average = 0.358ms
[root@sylixos:/root]#
升级系统
若需要对验证平台进行系统升级,可在系统启动后进入”/boot”目录删除旧的 bspimx6.bin 文件,通过 tftp 命令,或 FileZilla 把新的镜像文件上传到”/boot”目录下,也可通过 U 盘进行拷贝。
通过 TFTP 更新
将光盘中的 Tools 中的 tftpd32.exe 拷贝到拥有新镜像的文件夹下并双击运行,开发板接通网线启动后上传新的 bspimx6.bin 文件即可,如下所示:
[root@sylixos:/root]# cd /boot
[root@sylixos:/root]# tftp -i 10.4.0.105 get bspimx6.bin bspimx6.bin
重新启动运行的就为更新后的内核。
使用 FileZilla 更新
安装光盘 Tools 目录下的 FileZilla 应用程序并运行,主机(H):填写自己修改后的 ip 地址,用户名和密码都为”root”,单击”快速连接”,如下图所示。链接成功后在”窗口 1”处会显示验证平台上的文件夹,找到 boot 文件夹后,把新的 bspimx6.bin 文件拖到”窗口 2”处。覆盖旧的文件,完成新的 bspimx6.bin 镜像的传输。在串口终端输入”sync”指令。重启验证平台后运行的为新升级的内核。
调试及 u-boot 配置
SylixOS 开发套件在出厂时已经部署 SylixOS 操作系统及其 BSP 固件,能满足一般的应用开发需求。如果用户需要学习底层驱动程序,可以使用套件里面的 BSP 工程源代码进行编译和调试。
当对 BSP 进行修改和调试时,如果每次都把编译好的镜像文件上传到/boot 目录下再重新启动不仅不方便,而且如果修改的 BSP 工程有问题可能导致系统无法启动,需再次烧写,极其费时。因此,可以借助强大的 u-boot 实现镜像的网络传输,每次重新启动后把镜像加载到一段 RAM 中,然后”go”到这段 RAM 的起始地址运行,非常的高效快捷。
基于 u-boot 的文件传输
将”Tools”目录下的”tftpd32.exe”软件拷贝到与”bspimx6.bin”文件同一目录下,双击打开,”tftpd32”会自动设置当前目录。此工具的作用是在当前主机上建立一个 TFTP 服务器,用来传输系统镜像文件(bspimx6.bin)。设置的“当前目录”是需要传输的系统镜像文件所在目录,“服务器地址”是本机与验证平台相连的网口对应 IP 地址,如果主机有多个网口,需要注意选择正确的 IP 地址。
将”Tools”目录下的”putty.zip”文件拷贝到本机磁盘的任意一个目录下,解压文件,双击其中的”PUTTY.EXE”文件,打开 putty 软件。
在左侧”Category”栏里面选择”Serial”,切换到”PuTTY Configuration”配置界面,如下图所示,串口号需要根据本机情况填写。
单击”Session”选项,在 putty 切换后的界面中选择”Serial”复选框,单击”Open”打开 putty 控制台界面(文章后续简称控制台)。
将主机的串口与验证平台的调试串口(与 VGA 相临的 DB9)相连。随后给验证平台上电或复位,控制台会输出 bootloader 启动信息,在启动时敲击键盘的任意按键,会进入 u-boot 的命令行界面。
U-Boot 2015.04-g5464d26-dirty (Nov 09 2016 - 21:58:24)
CPU: Freescale i.MX6Q rev1.5 at 792 MHz
CPU: Temperature 44 C
Reset cause: POR
Board: SylixOS i.MX6 Evaluation Kit
Model: SYLIXOS-IMX6-6Q-1G
I2C: ready
DRAM: 1 GiB
MMC: FSL_SDHC: 0, FSL_SDHC: 1
SF: Detected SST25VF016B with page size 256 Bytes, erase size 4 KiB, total 2 MiB
No panel detected: default to Hannstar-XGA
Display: Hannstar-XGA (1024x600)
In: serial
Out: serial
Err: serial
Net: using phy at 5
FEC [PRIME]
Normal Boot
Hit any key to stop autoboot: 0
=>
=>
- 在控制台中输入”printenv”命令,会显示当前 u-boot 中的相关变量配置,这里对我们有用的是网络配置相关内容,输出如下:
ipaddr=192.168.1.58
serverip=192.168.1.70
不同的 PC 主机的 IP 地址会不相同,这里需要根据读者主机的 IP 地址变化进行更改,更改命令如下:
setenv bootdelay 1 /* 设置启动延时 */
setenv loadaddr 0x10000000 /* 设置加载地址 */
setenv ipaddr 10.4.120.66 /* 设置目标板 IP 地址 */
setenv serverip 10.4.0.105 /* 设置主机的 IP 地址 */
setenv bootfile bspimx6.bin /* 设置 tftp 下载的镜像名 */
setenv bootcmd 'tftp; dcache flush; dcache off; icache flush; icache off; go 0x10000000'
saveenv /* 保存环境变量 */
说明:
执行 saveenv 后每次重启都会重新加载镜像,方便调试。如果不执行 saveenv 命令,每次加载镜像需重新输入以上命令。
- 输入 boot 命令,进行镜像的下载并启动。
- 若上述参数配置无误,网线连接正常,镜像会下载到验证平台中。下载过程中会输出一串”#”提示下载进度,最后系统直接启动。
=> boot
Using FEC device
TFTP from server 10.4.0.105; our IP address is 10.4.120.66
Filename 'bspimx6.bin'.
Load address: 0x10000000
Loading: #################################################################
#################################################################
#################################################################
##############################################################
1.3 MiB/s
done
Bytes transferred = 3771144 (398b08 hex)
u-boot 下存储介质操作和系统固化
重新修改并编译的 BSP 镜像没有问题后,即可更新新的镜像并修改 u-boot 从 emmc 启动内核。
- 进入系统后把 bspimx6.bin 镜像拷贝到/boot 目录。
- 重启验证平台进 u-boot,配置环境变量输入以下指令修改启动方式从 emmc 启动。
=> setenv bootcmd run sylixos_mmc;
=> saveenv
Saving Environment to SPI Flash...
Erasing SPI flash...Writing to SPI flash...done
=> boot
switch to partitions #0, OK
mmc1(part 0) is current device
reading bspimx6.bin
## Starting application at 0x10000000 ...