Difference between revisions of "APITestPage"

From FriendlyELEC WiKi
Jump to: navigation, search
(updated by API)
(updated by API)
 
(217 intermediate revisions by the same user not shown)
Line 1: Line 1:
==函数库(libfriendlyarm-hardware.so)接口说明==
 
在应用层,可透过上一章节中的HardwareControler类来调用libfriendlyarm-hardware.so库中的接口,下面中列出HardwareControler类中的接口的定义,这些接口都是类方法,因此不需要创建HardwareControler对象实例:
 
=== 通用的输入输出接口 ===
 
::{| class="wikitable"
 
|-
 
| style="background: PaleTurquoise; color: black" | '''接口名称'''
 
| style="background: PaleTurquoise; color: black" |'''参数与返回值说明'''
 
| style="background: PaleTurquoise; color: black" |'''功能说明'''
 
|-
 
|
 
<syntaxhighlight lang="java">
 
int open(
 
String devName
 
, int flags)
 
</syntaxhighlight>
 
||
 
参数说明:<br />
 
devName: 要写入数据的<br />
 
flags: 打开文件的方式,例如可读可写还是只读打开,可选值需参考 FileCtlEnum.java<br />
 
<br />
 
返回值说明:<br />
 
成功返回文件描述符,出错返回-1。<br />
 
||
 
打开设备。
 
|-
 
  
|-
+
{{BurnLinuxToExtDrive-Rockchip/zh|NanoPC-T4}}
|
+
{{BurnLinuxToExtDrive-Rockchip|NanoPC-T4}}
<syntaxhighlight lang="java">
+
int ioctlWithIntValue (
+
int fd,
+
int cmd,
+
int value)
+
</syntaxhighlight>
+
||
+
参数说明:<br />
+
fd:设备文件描述符<br />
+
cmd: ioctl命令<br />
+
value:命令参数,限整数<br />
+
<br />
+
返回值说明:<br />
+
成功返回0,出错返回-1。<br />
+
||
+
执行设备的ioctl操作
+
|-
+
 
+
 
+
|-
+
|
+
<syntaxhighlight lang="java">
+
int write(
+
int fd,
+
byte[] data)
+
</syntaxhighlight>
+
||
+
参数说明:<br />
+
fd: 要写入数据的文件描述符<br />
+
data: 要写入的数据<br />
+
<br />
+
返回值说明:<br />
+
成功返回写入的字节数,出错返回-1。<br />
+
||
+
向打开的设备或文件中写数据。
+
|-
+
 
+
 
+
|-
+
|
+
<syntaxhighlight lang="java">
+
int ioctlWithIntValue (
+
int fd,
+
int cmd,
+
int value)
+
</syntaxhighlight>
+
||
+
参数说明:<br />
+
fd:设备文件描述符<br />
+
cmd: ioctl命令<br />
+
value:命令参数,限整数<br />
+
<br />
+
返回值说明:<br />
+
成功返回0,出错返回-1。<br />
+
||
+
执行设备的ioctl操作
+
|-
+
 
+
|-
+
|
+
<syntaxhighlight lang="java">
+
int read(
+
int fd,
+
byte[] buf,
+
int len)
+
</syntaxhighlight>
+
||
+
参数说明:<br />
+
fd: 要读出数据的文件描述符<br />
+
buf: 存储数据的缓冲区<br />
+
len: 要读取的字节数<br />
+
<br />
+
返回值说明:<br />
+
成功返回读取的字节数,出错返回-1,如果在调read之前已到达文件末尾,则这次read返回0。<br />
+
||
+
从打开的设备或文件中读取数据。
+
|-
+
 
+
|-
+
|
+
<syntaxhighlight lang="java">
+
int select(
+
int fd,
+
int sec,
+
int usec)
+
</syntaxhighlight>
+
||
+
参数说明:<br />
+
fd: 要查询的文件描述符<br />
+
sen: 阻塞等待数据多长时间(单位:秒)<br />
+
usec: 阻塞等待数据多长时间 (单位:纳秒,1毫秒=1000纳秒)<br />
+
<br />
+
返回值说明:<br />
+
如果fd有数据可读,返回1, 如果没有数据可读,返回0,出错时返回-1。<br />
+
||
+
查询打开的设备或文件是否有数据可读。
+
|-
+
 
+
|-
+
|
+
<syntaxhighlight lang="java">
+
void close(int fd)
+
</syntaxhighlight>
+
||
+
参数说明:<br />
+
fd: 要关闭的文件描述符<br />
+
<br />
+
返回值说明:<br />
+
无<br />
+
||
+
关闭指定的文件描述符
+
|-
+
 
+
 
+
|}
+
=== 串口通讯的接口说明 ===
+
::{| class="wikitable"
+
|-
+
| style="background: PaleTurquoise; color: black" | '''接口名称'''
+
| style="background: PaleTurquoise; color: black" |'''参数与返回值说明'''
+
| style="background: PaleTurquoise; color: black" |'''功能说明'''
+
|-
+
|
+
<syntaxhighlight lang="java">
+
int openSerialPortEx(
+
String devName,
+
long baud,
+
int dataBits,
+
int stopBits,
+
String parityBit,
+
String flowCtrl
+
)
+
</syntaxhighlight>
+
||
+
参数说明:<br />
+
devName: 串口设备文件名,可选的值有:<br />
+
/dev/ttyS4<br />
+
baud:    波特率 <br />
+
dataBits: 数据位 (取值 5~8,一般用8 )<br />
+
stopBits: 停止位 (取值 1~2,一般用1 )<br />
+
parityBit: 奇偶校验位(取值为单个字母,O表示奇校验,E表示偶校验,N表示无校验)<br />
+
flowCtrl: 数据流控制(取值为单个字母,H表示硬件流控制,S表示软件流控制,N表示不使用数据流控制)<br />
+
返回值说明:<br />
+
成功打开串口时,将返回串口的文件描述符,用该描述符可进行 read、write和select等操作,如果打开失败,则返回 -1<br />
+
||
+
打开指定的串口设备,并返回文件描述符。
+
|-
+
|}
+
接口的使用说明:<br />
+
<br />
+
先通过调用openSerialPortEx 打开串口设备,然后可以在线程中、或者用 timer 通过调用 select 接口轮询串口设备是否有数据到来,如果有,则调用 read 接口读取数据。<br />
+
<br />
+
要往串口中写入数据,调用 write 接口即可。<br />
+
串口使用完毕后,需要调用 close 关闭串口。<br />
+
<br />
+
 
+
=== 开关LED的接口说明 ===
+
::{| class="wikitable"
+
|-
+
| style="background: PaleTurquoise; color: black" | '''接口名称'''
+
| style="background: PaleTurquoise; color: black" |'''参数与返回值说明'''
+
| style="background: PaleTurquoise; color: black" |'''功能说明'''
+
|-
+
|
+
<syntaxhighlight lang="java">
+
int setLedState(
+
int ledID,
+
int ledState )
+
</syntaxhighlight>
+
||
+
参数说明:<br />
+
ledID: 指定要开关哪一个LED (取值0~3)<br />
+
ledState: 1表示亮,0表示灭<br />
+
<br />
+
返回值说明:<br />
+
成功返回0,失败返回-1<br />
+
||
+
该接口用于开关LED灯。
+
|-
+
|}
+
 
+
=== 让PWM蜂鸣器发声和停止发声的接口说明 ===
+
::{| class="wikitable"
+
|-
+
| style="background: PaleTurquoise; color: black" | '''接口名称'''
+
| style="background: PaleTurquoise; color: black" |'''参数与返回值说明'''
+
| style="background: PaleTurquoise; color: black" |'''功能说明'''
+
|-
+
|
+
<syntaxhighlight lang="java">
+
int PWMPlay(int frequency);
+
</syntaxhighlight>
+
||
+
参数说明:<br />
+
frequency: 要发声的频率<br />
+
<br />
+
返回值说明:<br />
+
成功返回0,失败返回-1<br />
+
||
+
按指定的频率让蜂鸣器发声
+
|-
+
 
+
|-
+
|
+
<syntaxhighlight lang="java">
+
int PWMStop();
+
</syntaxhighlight>
+
||
+
参数说明:<br />
+
无<br />
+
<br />
+
返回值说明:<br />
+
成功返回0,失败返回-1<br />
+
||
+
让蜂鸣器停止发声
+
|-
+
|}
+
 
+
=== 读取ADC的转换结果的接口说明 ===
+
::{| class="wikitable"
+
|-
+
| style="background: PaleTurquoise; color: black" | '''接口名称'''
+
| style="background: PaleTurquoise; color: black" |'''参数与返回值说明'''
+
| style="background: PaleTurquoise; color: black" |'''功能说明'''
+
|-
+
|
+
<syntaxhighlight lang="java">
+
int readADC()
+
</syntaxhighlight>
+
||
+
参数说明:<br />
+
无<br />
+
<br />
+
返回值说明:<br />
+
成功返回ADC转换的结果,失败返回-1<br />
+
||
+
读取第一个通道的ADC转换结果
+
|-
+
 
+
|-
+
|
+
<syntaxhighlight lang="java">
+
int readADCWithChannel(int channel)
+
</syntaxhighlight>
+
||
+
参数说明:<br />
+
channel: 读取指定通道的ADC的值<br />
+
<br />
+
返回值说明:<br />
+
成功返回ADC转换的结果,失败返回-1<br />
+
||
+
读取指定通道的ADC转换的结果
+
|-
+
 
+
|-
+
|
+
<syntaxhighlight lang="java">
+
int[] readADCWithChannels(int[] channels);
+
</syntaxhighlight>
+
||
+
参数说明:<br />
+
channels: 要读取通道的ADC频道数组<br />
+
<br />
+
返回值说明:<br />
+
成功返回多个ADC结果(数组),错误返回空<br />
+
||
+
一次性读取多个频道的结果,性能好
+
|-
+
|}
+

Latest revision as of 09:58, 29 October 2024

1 安装系统到M.2或USB硬盘

可以通过使用TF卡启动eFlasher系统,将引导和系统分别安装到不同存储设备,但是由于CPU不支持直接从M.2和USB设备引导,所以虽然系统可以安装到M.2和USB设备,但是引导仍然需要安装到eMMC或者TF卡。
操作步骤如下:

  • 准备一张32G或以上容量的TF卡;
  • 访问此处的下载地址下载文件名为XXXX-eflasher-multiple-os-YYYYMMDD-30g.img.gz的固件(位于"01_系统固件/02_SD卡刷机固件(SD-to-eMMC)"目录);
  • 将固件写入TF卡,在NanoPC-T4上连接好存储设备,插入TF卡上电开机,接下来要在界面上操作,如果没有显示设备,可以使用VNC代替,请参考使用VNC操作eFlasher;
  • 在eFlasher界面上,首先选择要安装的OS,然后选择引导安装的目的地 (通常选eMMC),以及选择系统安装的目的地(可以选eMMC,M.2硬盘,USB存储设备等),如下图所示:

Eflasher-select-boot-and-system-device.png

  • 没有eMMC时可使用TF卡作为引导,方法是将另一个TF卡通过USB读卡器插入USB端口,然后选择USB设备作为引导安装目的地,从而实现从TF卡引导,但系统存放在M.2或USB硬盘的目的;
  • 烧写完成后,从NanoPC-T4弹出SD卡,引导在eMMC的情况下,NanoPC-T4会自动重启至你刚刚烧写的系统,如果引导安装在TF卡,则需要拨掉电源,插入TF引导卡再上电开机;
  • 更详细的安装指南请参考此处;

2 Installing the System to M.2 or USB Drive

You can use a TF card to boot the eFlasher system, allowing the boot and system to be installed on different storage devices. However, since the CPU doesn’t support booting directly from M.2 and USB devices, the system can be installed on M.2 and USB devices, but the boot must still be installed on eMMC or a TF card.
Steps are as follows:

  • Prepare a TF card with a capacity of 32GB or larger.
  • Visit [the download link here](http://download.friendlyelec.com/APITestPage) to download the firmware file named XXXX-eflasher-multiple-os-YYYYMMDD-30g.img.gz (located in the “01_Official images/02_SD-to-eMMC images” directory).
  • Flash the firmware to the TF card, connect the storage device you intend to use on NanoPC-T4, insert the TF card and power on, we need to perform the operations in the eFlasher GUI. If your NanoPC-T4 does not have a display interface, you can use VNC; refer to Using VNC to Operate eFlasher.
  • In the eFlasher GUI, select the OS to install, and in the OS settings interface, choose the destination for boot installation (typically eMMC), then choose the destination for system installation (options include eMMC, M.2 hard drive, USB storage, etc.), as shown below:

Eflasher-select-boot-and-system-device.png

  • If no eMMC is available, the TF card can serve as the boot by inserting another TF card into the USB port via a USB card reader and selecting it as the boot destination, enabling booting from the TF card with the system stored on the M.2 or USB drive.
  • After flashing, eject the SD card from NanoPC-T4. If booting from eMMC, NanoPC-T4 will automatically restart into the newly flashed system. If boot installation is on a TF card, power off, insert the boot TF card, and power on again.
  • For a more detailed installation guide, please refer to this link.