ARM裸机开发-2.开发板、原理图和数据手册

新开发板为X210BV3S
2个开发板的主要差异描述:
第一:LCD显示屏不同。X210V3的LCD分辨率为800 * 480,而X210BV3S分辨率为1024 * 600。
第二:触摸屏芯片不同。虽然芯片不同但是都是I2C接口的,课程理解无差别。
第三:POWER按键不同。X210V3是普通按键,而X210BV3S采用了带彩灯的按键,更漂亮。但是从功能和使用来说完全相同。
第四:触摸屏排线接法不同。X210V3的触摸屏和底板连接使用单独的排线,而X210BV3S将触摸屏连线集成到LCD排线中,因此底板的CTP接口闲置未使用。
第五:拨码开关设计不同。X210V3使用2个5pin的小型拨码开关,而X210BV3S使用一个2针的插头来替代,实现USB启动和SD卡启动的选择。
第六:整个LCD模组使用了整体注塑工艺,更坚固耐用、更漂亮。

1. 开发版光盘资料

目录结构:


├─X210V3S_A
│  │  x210v3裸机开发教程.rar 【九鼎官方推出的开发程序,裸机开发,不推荐学习】
│  │  x210开发板光盘更新说明.txt
│  │  串口调试助手V2.2.exe
│  │
│  ├─android2.3 【开发板本身支持android2.3和android4.0.4】 
│  │  │
│  │  ├─bsp
│  │  │      android2.3_130805.tar.bz2 【android源码,包含Linux kernel】
│  │  │      uboot_1G.7z
│  │  │
│  │  ├─image【事先编译好的镜像】
│  │  │  ├─inand 【inand flash 版本的,我们的开发版用的是4GB的inand】
│  │  │  │  │
│  │  │  │  ├─LCD043 【4.3寸】
│  │  │  │  │
│  │  │  │  ├─LCD070 【7寸】
│  │  │  │  │  │
│  │  │  │  │  └─i210 【i210开发版的,与我们无关】
│  │  │  │  │
│  │  │  │  ├─VGA_1024x768 【VGA输出,烧这几个ROM之后,板子上的VGA接口就可以输出】
│  │  │  │  ├─VGA_1280x1024
│  │  │  │  ├─VGA_1440x900
│  │  │  │  └─VGA_800x600
│  │  │  │
│  │  │  ├─nand  【nand flash 版本的,我们不用】
│  │  │  └─xboot_inand 【九鼎官方自己开发的bootloader,不开源】
│  │  │
│  │  └─x210ii项目实战 【项目】
│  │
│  ├─DataSheet【数据手册,软件工程师大部分数据手册不用去看,只有极少数需要去看】
│  │      K4T1G164QE.pdf【DDR内存】
│  │      S5PV210_UM_REV1.1.pdf 【数据手册】
│  │
│  ├─hardware 【硬件设计相关,软件工程师不太需要关注】
│  │  │
│  │  ├─I210BV3【I210相关】
│  │  ├─I210CV2
│  │  │
│  │  ├─LCD070HD【我们使用的】
│  │  ├─LCD070V1
│  │  ├─LCD070V2
│  │  │
│  │  ├─X210BV2【BV表示底板,连线不出错就可以】
│  │  ├─X210BV3
│  │  ├─X210BV3S【我们使用的】
│  │  │
│  │  ├─X210CV2【CV表示核心板,最难的地方】
│  │  ├─X210CV3【我们使用的】
│  │  │
│  │  └─封装库【对硬件有用,对软件无用】
│  │
│  ├─samsung【三星原厂资料,厂商使用,无用】
│  │
│  ├─toolchain【开发工具链,也就是交叉编译工具链】
│  │      arm-2009q3.tar.bz2【我们使用的工具链,三星官方开发210使用的工具链】
│  │
│  ├─tools【工具】
│  └─UserManual【用户手册】
│
└─X210V3S_B
    ├─android4.0.4【安卓相关的】
    ├─linux【QT移植相关的】
    └─选配模块【开发板可以扩展的模块】

2. 开发板硬件手册

aston@ubuntu:/开发版光盘资料/X210V3S_A/UserManual$ tree
.
├── I210CV20核心板简介.pdf
├── I210开发板硬件手册.pdf
├── readme.txt
├── WinCE6.0安装指导手册.pdf
├── X210CV3核心板简介.pdf
├── x210v3 android4.0平台用户手册.pdf
├── x210v3 android平台用户手册.pdf
├── x210v3 linux平台用户手册.pdf
├── X210V3S硬件手册.pdf
├── X210V3 WinCE平台用户手册.pdf
├── x210v3开发板SD卡烧写教程.pdf
└── x210v3开发板裸机教程.pdf

3. 开发板刷系统

刷系统就是利用刷机工具,向开发板中烧录预先编译好的系统镜像,使之在开发板上运行起来。

3.1刷机准备工作

串口是一种硬件通信口,很早之前串口是CPU之间进行通信的主要接口,但速度很低,所以现在串口主要用来做程序监控、调试。
常用的串口监视软件:超级终端、SecureCRT、MobaXterm_Personal,Linux的minicom等
对笔记本来说需要安装USB转串口工具,右键“我的电脑”-“属性”-“设备管理器”

注意:如果电脑是win11,单板启动后,直接连接串口线,驱动自动安装,官方出厂默认烧录的镜像使用串口2,所以需要将串口线接到串口2上,即靠近电源的那个串口

在这里插入图片描述
下载 绿联USB转串口驱动.rar,解压并安装 PL2303_Prolific_DriverInstaller_v1.9.0.zip
在这里插入图片描述在这里插入图片描述
COM口强制占用:右键COM口-“属性”-“端口设置”-“高级”-“COM 端口号”-“确定”

MobaXterm连接串口:
在这里插入图片描述

SecureCRT链接串口:
在这里插入图片描述

3.2 开发板刷系统

S5PV210_iROM_初级应用说明见 S5PV210_iROM_ApplicationNote_Preliminary_20091126.pdf
SoC通过OMpin来识别外部启动介质,目前有下面三种方式启动:

  • 使用板载的eMMC启动,接在SD0,启动设置为101100
    (收到的开发版本默认就是从eMMC启动,内部预先烧录了Android)
  • 使用外置SD卡从SD2通道启动,OMpin设置和SD0启动一样,但这需要先破坏板载的eMMC中的android镜像
    (不管OMpin如何设置,Second启动一定时从通道2上启动)
  • USB调试模式设置为1xxxx1

只有最后一位有差异,所以单板往靠近电源拨支持eMMC/SD开启动,往远离电源拨支持UART/USB调试

3.2.1 从 SD2 启动开发板

如果我们想从外置SD卡启动,也就是从SSD2上启动,我们必须要破坏SSD0连接的eMMC中的bootloader:

  • 破坏开发板 android 平台下的 bootloader,从 SD2 启动开发板
    进入 android 系统控制台,执行如下指令:

    busybox dd if=/dev/zero of=/dev/block/mmcblk0 bs=512 seek=1 count=1 conv=sync
    

    为了确保执行数据有效,再执行 sync 同步一下,即可破坏掉前一个块的数据。

  • 破坏开发板 linux 平台下的 bootloader,从 SD2 启动开发板
    进入 linux 系统控制台,执行如下指令:

    busybox dd if=/dev/zero of=/dev/mmcblk0 bs=512 seek=1 count=1 conv=sync
    

    为了确保执行数据有效,再执行 sync 同步一下,即可破坏掉前一个块的数据。

这里操作意思是将mmcblk0设备的BLOCK1(BLOCK从0开始)的512B被设置为0,此时再重新启动,加载BL1(最大16KB),校验和会计算失败,从2nd启动,也就是会从SD2(外置SD卡)启动。

什么是BusyBox?
bBusyBox是很多标准 Linux 工具的一个单个可执行实现,主要应用于嵌入式linux系统,是一个开源的“万能工具”。
为什么在嵌入式系统中使用 BusyBox

  1. 在嵌入式系统中,做为文件系统保存的辅助记忆装置,考虑到信赖性和成本问题,Flash ROM被经常使用(数Mbytes~数十Mbytes)。这一来就限制了辅助记忆装置的容量大小。通常,linux系统中导入了很多的命令。这些命令中也许有许多你不需要的,或者命令中不需要的参数,又或者虽是不同命令却拥有相同的处理函数,对于嵌入式系统来说,这些都是没用的资源浪费。另外在这之上,每个命令若要执行,系统还需要一个管理信息(2~4kbytes),随着命令的增多,这个尺寸也是非常可观的。正是由于这些原因,BusyBox将没用的功能彻底的去处,管理信息也做到只有一个,这样最大限度的节省了文件的尺寸。
  2. 在嵌入式系统上,由于硬件,和其用途多种多样,是不会有二进文件的,所以,为了使用不同的应用程序,必须从不同的源代码来编译。并且,根据不同应用程序的需要,编译的方法也可能不同,使编译工作变得更加繁琐。BusyBox自己就集成了各种应用程序的功能,所以说只要编译了BusyBox,就解决了很多的编译问题。

busybox的用法
#busybox ls功能就相当运行ls命令

dd命令:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。
参数注释:

  1. if=文件名:输入文件名,指定源文件。

  2. of=文件名:输出文件名,指定目的文件。

  3. ibs=bytes:一次读入bytes个字节,即指定一个块大小为bytes个字节。
    obs=bytes:一次输出bytes个字节,即指定一个块大小为bytes个字节。
    bs=bytes:同时设置读入/输出的块大小为bytes个字节。

  4. seek=blocks:从输出文件开头跳过blocks个块后再开始复制。
    注意:通常只用当输出文件是磁盘或磁带时才有效,即备份到磁盘或磁带时才有效。

  5. count=blocks:仅拷贝blocks个块,块大小等于ibs指定的字节数。

  6. conv=sync:将每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐。
    (若读取的输入块不足512B,那么不足的部分填充NUL)

Linux系统中有关/dev/null和/dev/zero文件说明

在类Unix操作系统中,设备节点并不一定要对应物理设备。没有这种对应关系的设备被称之为伪设备。操作系统运用了它们实现多种多样的功能,/dev/null和/dev/zero就是这样的设备,类似的还有/dev/urandom、/dev/tty等。

[root@oldboy ~]# ls -l /dev/null /dev/zero
crw-rw-rw-. 1 root root 1, 3Jul 15 00:11 /dev/null
crw-rw-rw-. 1 root root 1, 5Jul 15 00:11 /dev/zero
提示:从文件属性可以看出这两个文件都是字符设备文件。

1、/dev/null

(1)/dev/null介绍
大家都知道宇宙中“太阳黑洞”吧,所有的天体(含地球)一旦进入了太阳黑洞都会消失的无影无踪。这里的/dev/null就是Linux系统中的"黑洞"。
在类Unix系统中,/dev/null(空设备文件或黑洞文件)是一个特殊的设备文件,所有写入其中的数据,都会被丢弃的无影无踪,/dev/null通常被用于丢弃不需要的数据输出,或作为用于输入流的空文件。这些操作通常由重定向完成。
(2)/dev/null实践
范例1-1:清空文件。

[root@oldboy ~]# cp /etc/hosts{,.ori}     #<==备份。
[root@oldboy ~]# cat /dev/null>/etc/hosts  #<==将读取黑洞设备写入到/etc/hosts,表示清空hosts文件。
[root@oldboy ~]# cat /etc/hosts           #<==果然没了。使用上述备份恢复回来。

范例1-2:将无用的输出流写入到黑洞丢弃。
当取一个地址响应头的第一行时,加上管道就会出现下面的特殊结果:

[root@oldboy ~]# curl -I www.oldboyedu.com|head -1
% Total   % Received % Xferd  AverageSpeed   Time    Time    Time  Current
 Dload  Upload  Total   Spent    Left Speed
 0    0    0     0   0     0      0     0 --:--:-- --:--:-- --:--:--     0
 HTTP/1.1 200 OK

执行上述命令时,会凭空多出来的几行无用信息,此时就可以使用将错误信息定向到黑洞(2>/dev/null)的方式丢弃无用信息

[root@oldboy ~]# curl -I www.oldboyedu.com 2>/dev/null|head -1 #<==将错误信息定向到黑洞。
HTTP/1.1 200 OK

范例1-3:将定时任务脚本结尾加上>/dev/null 2>&1
在书写定时任务总,规范的写法就是将所有定时任务脚本结尾加上>/dev/null 2>&1,让所有的输出流(包括错误的和正确的)都定向到空设备丢弃。

[root@oldboy ~]# crontab -l
#time sync by oldboy at2010-2-1
*/5 * * * * /usr/sbin/ntpdatetime.windows.com >/dev/null 2>&1
#bak all db
00 01 * * * /bin/sh/server/scripts/mysqlbak.sh >/dev/null 2>&1

重定向命令列表如下:

命令说明
command > file将输出重定向到 file。
command < file将输入重定向到 file。
command >> file将输出以追加的方式重定向到 file。
n > file将文件描述符为 n 的文件重定向到 file。
n >> file将文件描述符为 n 的文件以追加的方式重定向到 file。
n >& m将输出文件 m 和 n 合并。
n <& m将输入文件 m 和 n 合并。
<< tag将开始标记 tag 和结束标记 tag 之间的内容作为输入。

在Linux系统中0 1 2是一个文件描述符

名称代码操作符Java中表示Linux 下文件描述符(Debian 为例)
标准输入(stdin)0< 或 <<System.in/dev/stdin -> /proc/self/fd/0 -> /dev/pts/0
标准输出(stdout)1>, >>, 1> 或 1>>System.out/dev/stdout -> /proc/self/fd/1 -> /dev/pts/0
标准错误输出(stderr)22> 或 2>>System.err/dev/stderr -> /proc/self/fd/2 -> /dev/pts/0
2>&1的含义:将标准错误输出重定向到标准输出,2>&1要放在后面。
例如:nohup java -jar app.jar >log 2>&1 &
理解:为什么2>&1一定要写到>log后面,才表示标准错误输出和标准输出都定向到log中?

我们不妨把1和2都理解是一个指针,然后来看上面的语句就是这样的:

  • 本来1----->屏幕 (1指向屏幕)
  • 执行>log后, 1----->log (1指向log)
  • 执行2>&1后, 2----->1 (2指向1,而1指向log,因此2也指向了log)

2、/dev/zero

(1) /dev/zero介绍
和/dev/null类似,/dev/zero也是一个特殊的字符设备文件,当我们使用或读取它的时候,它会提供无限连续不断的空的数据流(特殊的数据格式流)。
/dev/zero文件的常见应用场景有二:

  1. /dev/zero文件覆盖其他文件信息。
  2. 产生指定大小的空文件,例如:交换文件、模拟虚拟文件系统等。
    (2)/dev/zero实践
    范例1-5:产生指定大小的空文件。
[root@oldboy ~]# dd if=/dev/zero of=test.data bs=1M count=2  #<==生成块大小1M,含有2个块的文件。
2+0 records in
2+0 records out
2097152 bytes (2.1 MB) copied,0.00279345 s, 751 MB/s
[root@oldboy ~]# ls -lhtest.data
-rw-r--r--. 1 root root 2.0MJul 15 20:20 test.data  #<==一共2M大小。
[root@oldboy ~]# file test.data
test.data: data  #<==特殊的数据文件格式。
提示:在使用dd命令产生空文件时常用/dev/zero作为字符流的源。

范例1-4:利用/dev/zero文件覆盖其他文件信息

[root@oldboy ~]# echo oldboy>new.txt  #<==生成一个新文件写入oldboy字符串。
[root@oldboy ~]# dd if=/dev/zero of=new.txt bs=1M count=10  #<==用空的字符流覆盖存在的new.txt文件。
10+0 records in
10+0 records out
10485760 bytes (10 MB) copied,0.0475368 s, 221 MB/s
[root@oldboy ~]# cat new.txt  #<==数据丢失了。

3.2.2 制作启动SD卡(就是烧录uboot到SD卡中)

有两种烧录方式:

  1. windows总用刷开工具制作启动SD卡
    刷卡工具参见【开发版光盘资料\X210V3S_A\tools\x210_Fusing_Tool.rar】
    (1)右击-以管理员权限-打开工具,选择SD/MMC Drive ,选中插入的SD卡之后会自动计算SD卡的扇区数,显示在Drive Size,SD卡格式化与否均可;
    (2)选择合适的bootloader,可选择【开发版光盘资料\X210V3S_B\android4.0.4\image\inand\uboot.bin】或者选择【开发版光盘资料\X210V3S_B\linux\QT4.8\image\uboot.bin】

  2. Linux中使用dd命令

SD卡制作完成后,进入系统控制台,输入”busybox dd if=/dev/zero of=/dev/mmcblk0 bs=512 seek=1 count=1 conv=sync“和”sync“
在这里插入图片描述
重启单板,串口会显示:
在这里插入图片描述
此时将SD卡插入通道2,可以看到
在这里插入图片描述
在”Hit any key to stop autoboot:“ 3s倒计时结束前按"Enter"键可以进入到uboot,如果不按,会自动进入到机子中原来的Android系统。

3.3.3 fastboot

fastboot是uboot中用来快速下载镜像的一个命令,另外fastboot还是一个windows上的软件。

注意:

  1. fastboot是使用USB线进行数据传输的,所以fastboot执行之前要先连接开发板和主机之间的usb线。
  2. 使用fastboot前需先安装驱动,驱动文件位于【开发版光盘资料\X210V3S_A\tools\USB驱动\x210_android_driver.rar】
3.3.3.1 fastboot驱动安装方法:
  1. 在boot下输入fastboot
    在这里插入图片描述
    此时在windows设备管理器中会出现一个未知设备;
  2. 右键更新驱动,驱动见【开发版光盘资料\X210V3S_A\tools\USB驱动\x210_android_driver.rar】,安装完成后:
    在这里插入图片描述
    【注意】如果是win10系统,那么安装更新驱动时会发现如下报错:
    在这里插入图片描述
    cmd下输入fastboot devices查看不到任何设备:
    在这里插入图片描述

【解决方案】
在这里插入图片描述
在这里插入图片描述
重启后选择“疑难解答” =》 “高级选项” =》“启动设置” =》点击“重启” =》按提示输入“7”禁用驱动程序强制签名
此时重启后再更新驱动即可正常:
在这里插入图片描述
在这里插入图片描述

3.3.3.2 如何使用fastboot

windows中fastboot工具见【开发版光盘资料\X210V3S_A\tools\fastboot.rar】,将其解压后在windows命令行下调用:
在这里插入图片描述
fastboot常用命令:

fastboot devices #查看当前连接的设备
fastboot flash xxx1 xxx2 #烧录,可烧录uboot\kernel\system,其中xxx1代表分区,xxx2代表文件相对路径
fastboot reboot #重启系统

eg1:使用fastboot烧录android4.0.4

  1. 在fastboot目录下创建目录android4.0.4
  2. 将【开发版光盘资料\X210V3S_B\android4.0.4\image\inand\】下的uboot.bin、x210.img、zImage-android拷贝到fastboot\android4.0.4目录下
  3. cmd下可使用如下命令完成烧录:
fastboot flash bootloader android4.0.4/uboot.bin #烧录uboot
fastboot flash kernel android4.0.4/zImage-android #烧录linux kernel
fastboot flash system android4.0.4/x210.img #烧录android rom

在这里插入图片描述
此时之前比破坏的bootloader被修复,单板可正常启动

eg2:使用fastboot烧录QT4.8

  1. 在fastboot目录下创建目录QT4.8
  2. 将【开发版光盘资料\X210V3S_B\linux\QT4.8\image】下的uboot.bin、rootfs_qt4.ext3、zImage-qt拷贝到fastboot\android4.0.4目录下
  3. cmd下可使用如下命令完成烧录:
fastboot flash bootloader QT4.8/uboot.bin #烧录uboot
fastboot flash kernel QT4.8/zImage-qt #烧录linux kernel
fastboot flash system QT4.8/rootfs_qt4.ext3 #烧录 rom

在这里插入图片描述

4.核心板、底板、数据手册简介

核心板和地板的原理图:

├─X210V3S_A
│  ├─hardware 【硬件设计相关,软件工程师不太需要关注】
│  │  │
│  │  ├─I210BV3【I210相关】
│  │  ├─I210CV2
│  │  │
│  │  ├─LCD070HD【显示屏我们使用的】
│  │  ├─LCD070V1
│  │  ├─LCD070V2
│  │  │
│  │  ├─X210BV2【BV表示底板,连线不出错就可以】
│  │  ├─X210BV3
│  │  ├─X210BV3S【我们使用的】
│  │  │
│  │  ├─X210CV2【CV表示核心板,最难的地方】
│  │  ├─X210CV3【我们使用的】
│  │  │  ├─x210cv3.pdf

写代码时需要查阅和参考的资料有:核心板原理图、底板原理图、相应硬件的数据手册、S5PV210数据手册。

  • 原理图
    电路原理设计图,各个电路中的部件的逻辑连接图。原理图可能会影响软件编写。
  • PCB图
    是我们用来制作电路板,并且用电路板进行原件焊接,做成最终产品的生产性图纸。先有原理图设计,然后根据原理图设计PCB图,PCB图是对原理图的一种实现。原理图和PCB图一般都由硬件工程师来负责,但是原理图设计时软件工程师会一定程度参与。PCB图的设计就完全是硬件工程师的事情了,与软件工程师无任何关系。
  • 丝印图
    是PCB图设计中,所有原件的外框的框图。丝印图其实就是整个电路板的实体的位置图纸,与软件和功能无关,与生产制作有关。对软件工程师来说,丝印图可以不理会。

【datasheet(数据手册)的作用】
数据手册就是产品(一般是芯片)厂家编写的,对这个产品的所有功能和用法的描述统一说明的文档。

数据手册的正确读法:先通读概览,然后根据需要去查阅。

5. dnw刷机

dnw是一个软件,是三星公司编写的,这个软件的功能是通过USB线连接开发板和电脑主机,然后从主机下载文件镜像到开发板中去烧录系统。

【注意】
(1)dnw需要装usb驱动
(2)dnw使用时通过usb线下载,所以一定要插USB线
(3)dnw下载时需要设置dnw下载内存地址。在dnw软件的菜单“Configuration”中设置
Download Address为0xd0020010,确认即可。

5.1 驱动安装

位置:开发版光盘资料\X210V3S_A\tools\USB驱动\dnw_driver\dnw_driver_win7-64
安装之前需要解决此驱动的数字签名 .最好的办法就是通deseo13b.exe破解
在这里插入图片描述

破解过程如下:
1 .打开 deseo13b.exe
2 .select “enable text mode” > next > ok
2.选择"Sign a System File", 点击Next,弹出的对话框内输入无签名的驱动程序文件全路径,如我的是D:\9tripodDownlods\DNWforwin7\win7-64 dnw usb driver\inf64 点击"OK".提示成功后确定,退出软件,重启Windows.
4. 重启电脑
5. 打开设备管理器 更新SEC S5PC110 Test B/D.的驱动程序
在这里插入图片描述

  1. 选择D:\9tripodDownlods\DNWforwin7\win7-64 dnw usb driver\inf64 目录下的.inf文件

win7安装完成后,按住电源键可以在设备管理器和DNW工具中看到前后差异:
在这里插入图片描述

5.2 刷机步骤

  1. 设置开发板启动方式为usb启动:将OM5打到VCC,拨码OM5拨上去如 [OM0:OM5]=[101101]。后面两位不管,即将开关往远离电源拨就能从usb启动

  2. 准备两个刷机文件:将x210_usb.bin 和 uboot.bin拷贝到dnw目录
    (1)X210V3S_A\android2.3\image\inand\x210_usb.bin
    (2)X210V3S_B\android4.0.4\image\inand\uboot.bin

  3. 按住开机键,DNW配置下载地址0xd0020010,USB下x210_usb.bin
    在这里插入图片描述

  4. DNW配置下载地址0x23e00000,USB下载uboot.bin

  5. 这时串口终端有信息打印出来,回车进入命令行,这时可以松开 开机键,
    输入fdisk -c 0
    输入fastboot
    接下来即可进入fastoot刷机,参见“3.3.3 fastboot”
    https://www.freesion.com/article/5965870229/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值