本篇讲述开发环境搭建与点灯。
一.开发环境准备
1.Linux安装虚拟机
用VMware或VirtualBox安装Ubuntu,我这里已经用VMware安装好Ubuntu24.04,搭建好samba服务器与windows共享文件夹等。
2.安装瑞芯微USB驱动。此项安装包Windows安装即可。
3.nfs服务搭建与挂载
(1)安装nfs服务器
sudo apt install nfs-kernel-server
(2)配置nfs分区
在路径创建共享目录nfsroot
mkdir nfsroot

(3)打开nfs服务器配置文件
sudo vim /etc/exports
进入配置文件,按i进行编辑,拷贝/home/pengsir/nfsroot *(rw,sync,no_root_squash)到配置文件里,然后保存退出

(4)重启nfs服务器
sudo /etc/init.d/nfs-kernel-server reload
sudo /etc/init.d/nfs-kernel-server restart
(5)查看共享成功的nfs分区
showmount -e
如下可看到创建共享nfs分区成功。

(6)查询IP,可以看到IP为192.168.3.208

4.设备端配置在第二部分第1步硬件准备好后上电,记得插上接路由器的网线。
(1)进入Windows控制台,输入如下命令进入开发板开发环境
adb shell
(2)在开发板/home/orin-nano/Desktop/路径创建目录nfs
cd /home/orin-nano/Desktop/
mkdir nfs
(3)在挂载目录前查看网络是否连接上。可以观察网口座绿灯常亮或者如下命令查看设备网络是都连接
ip addr

(4)执行在客户端挂载服务器共享目录命令
sudo mount -t nfs 192.168.3.208:/home/pengsir/nfsroot /home/orin-nano/Desktop/nfs -o nolock
如下可看到nfs服务器共享文件夹已经成功挂载到开发板。
二.点灯
1.硬件准备
GPIO资源在扩展接口上很方便通过排针引出。资源分布如下,绿色部分无需修改内核,可直接应用层使用。

这里使用GPIO0_A0口作为LED模块控制口,再接上开发板上3V3和GND,硬件电路准备好如下

2.代码准备
vscode ssh连接ubuntu,打开代码文件路径。这里想实现LED灯闪烁,修改后代码如下
#include <stdio.h>
#include <unistd.h>
#include "gpio.h"
#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
static const GPIOCfg_t gpioCfg_tab[] = {
{
.pinName = "GPIO0_A0",
.direction = DIR_OUTPUT,
.val = 0,
}, {
.pinName = "GPIO0_A5",
.direction = DIR_INPUT,
.val = 0,
}, {
.pinName = "GPIO1_C4",
.direction = DIR_OUTPUT,
.val = 0,
}, {
.pinName = "GPIO1_C5",
.direction = DIR_INPUT,
.val = 0,
}
};
int main(int argc, char **argv)
{
gpio_init(gpioCfg_tab, ARRAY_SIZE(gpioCfg_tab));
int led_level;
pin_out_val("GPIO0_A0", 0);
led_level=0;
pin_out_val("GPIO1_C4", 0);
int val = read_pin_val("GPIO0_A5");
printf("GPIO0_A5 val : %d\\n", val);
val = read_pin_val("GPIO1_C5");
printf("GPIO1_C5 val : %d\\n", val);
while(1)
{
led_level=!led_level;
pin_out_val("GPIO0_A0", led_level);
sleep(1);
}
return 0;
}
3.编译
cd /home/orin-nano/Desktop/nfs/peripheral/09_GPIO
./build.sh

4.运行
ls ./Release/ -l
sudo ./Release/test-gpio

5.程序代码附件如下
*附件:09_GPIO.rar
6.运行效果,可以看到LED灯1s间隔亮灭,如下视频,达到预期。