目錄
本文檔中利用交叉編譯工具編譯一個app程序用於測試RS485通信,需利用nfs掛載的形式該app下載至開發板中。
一、虛擬機測試環境搭建
- 安裝NFS組件
sudo apt-get install nfs-kernel-server
- 建立共享文件夾
mkdir /nfs
- 設置共享目錄
修改虛擬機的/etc/exports文件,添加如下代碼
/nfs *(rw,sync,no_root_squash)
- 重啓nfs服務器
sudo /etc/init.d/nfs-kernel-server restart
二、開發板掛載網絡文件系統
啓動開發板進行操作
如果開發板與主機都連接在路由器或者交換機上,即有dhcp主機功能,在/etc/init.d文件夾中的rcS文件末尾添加如下代碼自動獲取IP。如果採用自動獲取IP的形式,最後採用手動的方式掛載網絡文件系統。
/sbin/udhcpc &
當然也可以在該文件中添加以下代碼是開發板具有一個固定的ip:
sudo ifconfig eth0 XXX.XXX.XXX.XXX
mount -t nfs -o nolock yyy.yyy.yyy.yyy:/nfs /mnt
此處的XXX代表arm開發板的ip,yyy代表主機IP(虛擬機IP)。第二句代碼的意思是將主機的/nfs文件夾掛載到開發板的/mnt目錄下。
三、RS485測試
在虛擬機上,利用交叉編譯工具編譯app源碼,將RS485測試的app源碼、腳本,拷貝至虛擬機內,並編譯:
arm-histbv320-linux-gcc uart_app.c -o uart_app
將生成的uart_app、腳本文件拷貝至/nfs文件夾下:
sudo cp uart_app uart_r.sh uart_w.sh /nfs/
開發板中運行./uart_w.sh以便測試485發送,可得到以下結果:
運行./uart_r.sh測試485接收,可得到以下結果:
至此485測試完畢!
附錄
uart_r.sh的源代碼
#############################################################
# Hi3798 RS485 Test #
#author : TanZhenwen #
#date : 2018.12.07 #
#ver : 1.0 #
#############################################################
########## Baseaddr 0xf8a21000 #########
#############################################################
#Function GPIO IO Offset Value #
#485 TX/RX EN GPIO3_0 24 0x060 0x00002134 #
#485 RX GPIO2_5 21 0x054 0x00000132 #
#485 TX GPIO2_6 22 0x058 0x00000132 #
#############################################################
devmem 0xf8a21060 w 0x00002134
devmem 0xf8a21054 w 0x00000132
devmem 0xf8a21058 w 0x00000132
rm /var/lock/* -r
echo 24 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio24/direction
echo 0 > /sys/class/gpio/gpio24/value
./uart_app /dev/ttyAMA2 -b 19200 -l -r -hex
uart_w.sh的源代碼
#############################################################
# Hi3798 RS485 Test #
#author : TanZhenwen #
#date : 2018.12.07 #
#ver : 1.0 #
#############################################################
########## Baseaddr 0xf8a21000 #########
#############################################################
#Function GPIO IO Offset Value #
#485 TX/RX EN GPIO3_0 24 0x060 0x00002134 #
#485 RX GPIO2_5 21 0x054 0x00000132 #
#485 TX GPIO2_6 22 0x058 0x00000132 #
#############################################################
devmem 0xf8a21060 w 0x00002134
devmem 0xf8a21054 w 0x00000132
devmem 0xf8a21058 w 0x00000132
rm /var/lock/* -r
echo 24 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio24/direction
echo 1 > /sys/class/gpio/gpio24/value
./uart_app /dev/ttyAMA2 -b 19200 -l -w "123456" -asc