版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、DCP-5000L單元類別內(nèi)容i.MX6,Linux,CAN,Ethernet,Serial,USB,4G,ESAM摘要DCP-5000L 充電機(jī)軟件開(kāi)發(fā)指南UM01707121V1.20Date: 2019/06/24用戶手冊(cè)User ManualDCP-5000L單元修訂歷史用戶手冊(cè)©2019 Guangzhou ZHIYUAN ElectronicsCo.,.i版本日期V0.902016/08/12創(chuàng)建文檔V1.002017/07/12正式發(fā)布V1.102019/03/20更新文檔頁(yè)眉頁(yè)腳、“銷售與服務(wù)網(wǎng)絡(luò)”內(nèi)容和新增“免責(zé)內(nèi)容V1.202019/06/24更新 4.7 節(jié) 4
2、G 模塊使用DCP-5000L單元目錄1. DCP-5000L 介紹11.1DCP-5000L 簡(jiǎn)介.2外觀概覽1接口簡(jiǎn)介21.21.3硬件參數(shù)3軟件參數(shù)31.3.1系統(tǒng)和驅(qū)動(dòng)32.系統(tǒng)基本操作52.1開(kāi)機(jī)和登錄..4啟動(dòng)選擇5串口連接5串口登錄6SSH登錄關(guān)機(jī)7查看系統(tǒng)信息8系統(tǒng)設(shè)置.2網(wǎng)絡(luò)設(shè)置9時(shí)鐘設(shè)置102.5文件傳輸102.5.1 SSH 文件傳輸102.5.2 NFS 文件傳輸12U 盤使用12SD 卡使用12U-Boot 命令13串口測(cè)試2.93.文件系統(tǒng)143.13.
3、23.3支持的文件系統(tǒng)14安裝第軟件14程序開(kāi)機(jī)自啟動(dòng)154.應(yīng)用程序開(kāi)發(fā)164.1應(yīng)用程序開(kāi)發(fā)環(huán)境構(gòu)建..4Linux 開(kāi)發(fā)一般方法16安裝操作系統(tǒng)17構(gòu)建交叉開(kāi)發(fā)環(huán)境17NFS 服務(wù)器配置Hello 程序19蜂鳴器使用20串口編程.24.4.3串口設(shè)備20配置串口接口屬性21獲得和設(shè)置串口信號(hào)線狀態(tài)30用戶手冊(cè)©2019 Guangzhou ZHIYUAN ElectronicsCo.,.1DCP-5000L單元4.5Socket CAN 編程3.24.5.3初始化 CAN 網(wǎng)絡(luò)接口
4、31socket can 編程31示例程序354.6看門狗使用3.2概述39范例404.74.84G 模塊使用41北斗/GPS 使用4.24.8.3獲取北斗/GPS 數(shù)據(jù)43設(shè)置北斗/GPS 模塊45GPS 數(shù)據(jù)轉(zhuǎn)換464.9DCP-5000-QC-IO 使用說(shuō)明4..44.9.5IO 模式切換47DI 的使用47DO 的使用48ESAM 的使用48掉電檢測(cè)505.系統(tǒng)恢復(fù)和更新525.15.2免責(zé)制作 SD 卡52燒寫 Linux 固件54. 556.用戶手冊(cè)©2019 Guangzhou ZHIYUAN El
5、ectronicsCo.,.2DCP-5000L單元1. DCP-5000L 介紹1.1DCP-5000L 簡(jiǎn)介DCP-5000L 是廣州致遠(yuǎn)電子開(kāi)發(fā)的基于NXP i.MX6 系列處理器的單元,處理器內(nèi)核為 800MHz 主頻的Cortex-A9。DCP-5000L 采用“件,完成人機(jī)顯示、數(shù)據(jù)加板+主板+IO 板”的結(jié)構(gòu),通過(guò)軟硬件接口連接相應(yīng)輸入/輸出組等功能。DCP-5000L 提供了以太網(wǎng)、CAN、USB Host、SD卡、ESAM、RS-232、RS-485、接口、LVDS 接口、DI、DO、音頻等多種功能接口。支持北斗、全網(wǎng)通等無(wú)線通信。注:DCP-5000L 是由 DCP-500
6、0L-CORE、DCP-5000L-MAIN 和 DCP-5000L-IO 三塊板組成,為了描述方便,下文將“DCP-5000L-CORE”簡(jiǎn)稱“稱為“IO 板”。板”,將“DCP-5000L-MAIN”簡(jiǎn)稱“主板”,將“DCP-5000L-IO”簡(jiǎn)1.1.1 外觀概覽DCP-5000L 正面外觀如圖 1.1 所示,側(cè)面接口外觀如圖 1.2 和圖 1.3 所示。圖 1.1 DCP-5000L 正面外觀圖圖 1.2 DCP-5000L 側(cè)面接口圖 1用戶手冊(cè)©2019 Guangzhou ZHIYUAN ElectronicsCo.,.1DCP-5000L單元圖 1.3 DCP-500
7、0L 側(cè)面接口圖 2注:圖片參考,以實(shí)際銷售為主。1.1.2 接口簡(jiǎn)介DCP-5000L 主板各接口簡(jiǎn)要描述見(jiàn)表 1.1。表 1.1 主板接口描述DCP-5000L IO 板接口簡(jiǎn)要描述見(jiàn)表 1.2。表 1.2 IO 板接口描述用戶手冊(cè)©2019 Guangzhou ZHIYUAN ElectronicsCo.,.2標(biāo)號(hào)功能備注DIDI 接口共 6 路DODO 接口共 6 路BDGPS模塊有源天線,阻抗需為 50 歐,連接到主板的 ttymxc4RS485RS485 接口連接到主板的 ttymxc2 和 ttymxc3RS232RS232 接口連接到主板的 ttymxc0LVDSLV
8、DS 接口接口UART_M0單片機(jī)預(yù)留串口SWD單片機(jī)調(diào)試接口標(biāo)號(hào)功能備注POWER電源接口24V 供電DEBUG調(diào)試串口DB9 接口USBUSB HostSDSD 卡NET100M/1000M 以太網(wǎng)SD0、SD1BOOT 跳線區(qū)SIM1接口CAN雙路 CAN 口側(cè)面板標(biāo)有 CAN1 和 CAN2AUDIO音頻輸出接口BT1RTC 電池插座J9IO 板接口DCP-5000L單元1.2硬件參數(shù)DCP-5000L 硬件參數(shù)見(jiàn)表 1.3。表 1.3 DCP-5000L 硬件參數(shù)1.3軟件參數(shù)DCP-5000L 是基于Linux 系統(tǒng)單元。Linux 內(nèi)核版本為 3.14.28,支持 Qt-5.3.
9、2,支持 tslib-1.4 等。1.3.1 系統(tǒng)和驅(qū)動(dòng)系統(tǒng)包含的基礎(chǔ)驅(qū)動(dòng)見(jiàn)表 1.4。表 1.4 系統(tǒng)驅(qū)動(dòng)用戶手冊(cè)©2019 Guangzhou ZHIYUAN ElectronicsCo.,.3系統(tǒng)驅(qū)動(dòng)說(shuō)明SD/MMC 卡驅(qū)動(dòng)USB Host 驅(qū)動(dòng)CAN-Bus 驅(qū)動(dòng)Socket CAN 接口千兆以太網(wǎng)驅(qū)動(dòng)100M/1000M 自適應(yīng)4G 全網(wǎng)通通信模塊驅(qū)動(dòng)支持 U9501 模塊UART 驅(qū)動(dòng)含 RS232 和 RS485RTC 驅(qū)動(dòng)液晶驅(qū)動(dòng)支持 1080P項(xiàng)目描述說(shuō)明處理器i.MX6DL/Q(Cortex-A9 內(nèi)核),800MHz內(nèi)存512MB DDR3電子硬盤4GBeMMC
10、接口1 路串口5 路(包含 1 路調(diào)試串口)USB Host2 路,USB 2.0 高速其中 1 路用于 4G 模塊,1 路向外提供接口MiniPCIE 插槽1 路插槽1 路支持全網(wǎng)通 4GCAN 接口2 路以太網(wǎng)1 路(1 路 100/1000M 自適應(yīng)以太網(wǎng))SD 卡接口1 路音頻輸出接口1 路RTC1 路蜂鳴器1 個(gè)DI6 路DO6 路GPS 模塊1 個(gè)ESAM1 路DCP-5000L單元用戶手冊(cè)©2019 Guangzhou ZHIYUAN ElectronicsCo.,.4系統(tǒng)驅(qū)動(dòng)說(shuō)明看門狗驅(qū)動(dòng)音頻驅(qū)動(dòng)LED 驅(qū)動(dòng)交流蜂鳴器驅(qū)動(dòng)GPIO 驅(qū)動(dòng)ESAM 驅(qū)動(dòng)北斗 GPS模塊驅(qū)
11、動(dòng)DI/DO 驅(qū)動(dòng)掉電檢測(cè)驅(qū)動(dòng)DCP-5000L單元2. 系統(tǒng)基本操作2.1開(kāi)機(jī)和登錄系統(tǒng)默認(rèn) IP:41SSH 登錄用戶名和2.1.1 啟動(dòng)選擇均為:rootDCP-5000L 支持從eMMC 或者SD 卡啟動(dòng),通過(guò)主板上的SD1 和 SD2 跳線進(jìn)行選擇。斷開(kāi) SD1 和SD2 選擇從eMMC 啟動(dòng),短接后從 SD 卡啟動(dòng)。2.1.2 串口連接DCP-5000L 的調(diào)試串口為UART1,將調(diào)試串口與電腦串口相連,設(shè)置串口115200-8N1,無(wú)流。在 Windows 環(huán)境下,可以使用超級(jí)終端或者其它串口軟件,下面 putty 為例進(jìn)行介紹。打開(kāi) putty,如圖 2.
12、1 所示。Connection type 項(xiàng)選擇“Serial”,Speed 項(xiàng)設(shè)置為“115200”,Serial line 項(xiàng)輸入 PC 當(dāng)前所使用的串口編號(hào)。圖 2.1 新建串口連接確認(rèn)設(shè)置無(wú)誤后點(diǎn)擊“Open”,將得到如圖 2.2 所示的 putty 串口終端界面。用戶手冊(cè)©2019 Guangzhou ZHIYUAN ElectronicsCo.,.5DCP-5000L單元圖 2.2 putty 串口終端界面2.1.3 串口登錄接好串口,打開(kāi)串口軟件,給 DCP-5000L 上電,在U-Boot 階段不要按任何按鍵,系統(tǒng)將啟動(dòng)并進(jìn)入Linux 系統(tǒng),在超級(jí)終端可以看到啟動(dòng)信
13、息。系統(tǒng)啟動(dòng)完畢,進(jìn)入 Linux Shell界面,如圖 2.3 所示。圖 2.3 通過(guò)串口登錄 Linux 系統(tǒng)2.1.4 SSH登錄DCP-5000L 系統(tǒng)支持 SSH登錄,可以使用任何 SSH 軟件進(jìn)行登錄。下面以 Putty軟件通過(guò) SSH 協(xié)議進(jìn)行登錄為例進(jìn)行介紹。打開(kāi)Putty,在“Host Name”欄填入工控板的 IP 地址,以 41 為例,選中 SSH協(xié)議,如圖 2.4 所示。用戶手冊(cè)©2019 Guangzhou ZHIYUAN ElectronicsCo.,.6DCP-5000L單元圖 2.4 putty SSH 配置界面點(diǎn)擊“Open”,
14、在登錄界面輸入用戶名和“root”,登錄 Linux 系統(tǒng),如圖 2.5 所示。圖 2.5 通過(guò) SSH 登錄 Linux 系統(tǒng)2.2關(guān)機(jī)一般情況下直接關(guān)閉電源即可。如果有數(shù)據(jù)操作,為了確保數(shù)完全寫入,可輸 sync命令,完成數(shù)據(jù)同步后關(guān)閉電源;或者輸入 poweroff 命令,等串口端出現(xiàn)“reboot: Systemhalted”提示后再關(guān)閉電源。用戶手冊(cè)©2019 Guangzhou ZHIYUAN ElectronicsCo.,.7rootDCP-5000L:# poweroffINIT: Sending processes the TERM signalC (ttymxc1
15、) (Thu Dec 31 09:28:39 2015) rootDCP-5000L:# Stopping Dropbear SSH server: stopped /usr/sbin/dropbear (pid 559) dropbear.* Stopping Avahi mDNS/DNS-SD Daemon: avahi-daemon* (oprofile-server:607): WARNING *: Avahi error: Daemon connection fail ok Stopping advanced power management daemon: no /usr/sbin
16、/apmd found; none killed apmd.DCP-5000L單元2.3查看系統(tǒng)信息查看系統(tǒng)內(nèi)核版本,使用uname 命令。查看系統(tǒng)內(nèi)存使用情況,使用 free 命令。查看系統(tǒng)磁盤使用情況,使用 df 命令。查看CPU 等其它信息。用戶手冊(cè)©2019 Guangzhou ZHIYUAN ElectronicsCo.,.8rootDCP-5000L:# cat /prouinfoprocessor: 0rootDCP-5000L:# df -hFilesystemSizeUsedAvailUse%Mounted on/dev/root3.6G918M2.5G27%/ d
17、evtmpfs87M087M0%/dev tmpfs247M236K247M1%/runtmpfs247M96K247M1%/var/volatilerootDCP-5000L:# freetotalusedfreesharedbufferscached Mem:5046721752363294360276412252-/+ buffers/cache:160220344452Swap:000rootDCP-5000L:# uname-aLinux DCP-5000L 3.14.28+g91cf351 #12 SMP PREEMPT Sun Aug 7 14:06:48 CST 2016 ar
18、mv7l GNU/LinuxStopping system message bus: dbus. stopping mountd: donestopping nfsd: done Stopping OProfileUI serverStopping syslogd/klogd: stopped syslogd (pid 580) stopped klogd (pid 583)donestopping statd: done Stopping Telephony daemonALSA: Storing mixer settings. Stopping rpcbind daemon. done.S
19、topping Linux NFC daemon Deconfiguring network interfaces. done. Sending all processes the TERM signal. logoutSending all processes the KILL signal. Unmounting remote filesystems.Deactivating swap. Unmounting local filesystems.EXT4-fs (mmcblk3p2): re-mounted. Opts: (null)reboot: System haltedDCP-500
20、0L單元的系統(tǒng)信息,請(qǐng)使用相應(yīng)令進(jìn)行查看。2.4 系統(tǒng)設(shè)置2.4.1 網(wǎng)絡(luò)設(shè)置1.IP 地址臨時(shí)改變 IP 可以使用 ifconfig 命令進(jìn)行,如下所示。更詳細(xì)的網(wǎng)絡(luò)設(shè)置請(qǐng)參考其它資料。2.MAC 地址DCP-5000L更改 MAC 地址,出廠為 MAC 分配了廣州致遠(yuǎn)通過(guò) IEEE 標(biāo)準(zhǔn)購(gòu)買的合法的MAC 地址(致遠(yuǎn)的 MAC 地址以 00-14-97 開(kāi)頭),貼在板的上。MAC地址范例:00-14-97 開(kāi)頭的 MAC 地址所屬?gòu)S商:。用戶手冊(cè)©2019 Guangzhou ZHIYUAN ElectronicsCo.,.9rootDCP-5000L:#ifconfig eth
21、0 41mname: ARMv7 Processor rev 10 (v7l)Features: swp half thumb fastmult vfp edsp neon vfpv3 tls vfpd32 CPU implementer: 0x41Crchitecture: 7 CPU variant: 0x2CPU part: 0xc09 CPU revision10Processor: 1mname: ARMv7 Processor rev 10 (v7l)Features: swp half thumb fastmult vfp edsp neon vfpv3 t
22、ls vfpd32 CPU implementer: 0x41Crchitecture: 7 CPU variant: 0x2CPU part: 0xc09 CPU revision10Hardware: Freescale i.MX6 Quad/DualLite (Device Tree) Revision0000Serial0000000000000000DCP-5000L單元結(jié)果如下:2.4.2 時(shí)鐘設(shè)置查看系統(tǒng)時(shí)鐘,使用 date 命令。設(shè)置系統(tǒng)時(shí)鐘,先使用 date 命令設(shè)置好時(shí)間,然后使用 hwclock-w 命令將時(shí)間寫入硬件RTC。例如:設(shè)置硬件RTC 時(shí)間為 2016-08-
23、08,11:28:00,則可以使用如下命令。使用以下命令可以從硬件RTC時(shí)間。2.5 文件傳輸2.5.1 SSH 文件傳輸DCP-5000L 支持 SSH登錄且支持 SFTP 文件傳輸協(xié)議,可使用帶有文件傳輸功能的 SSH 軟件與DCP-5000L 進(jìn)行文件傳輸。下面以SshClient 為例進(jìn)行介紹。打開(kāi) SshClient,界面如圖 2.6 所示。圖 2.6 SshClient 主界面點(diǎn)擊左上角的“Quick Connect”按鈕,在連接界面相應(yīng)欄中填入DCP-5000L 的 IP地址和登錄所使用的用戶名,如圖 2.7 所示。用戶手冊(cè)©2019 Guangzhou ZHIYUAN
24、 ElectronicsCo.,.10rootDCP-5000L:# hwclock -rMon Aug 8 11:29:21 2016 0.000000 secondsrootDCP-5000L:# date -s "2016-8-8 11:28:00"Mon Aug 8 11:28:00 UTC 2016rootDCP-5000L:# hwclock -wrootDCP-5000L:# dateMon Aug 8 11:59:02 UTC 2016DCP-5000L單元圖 2.7 SSH 登錄設(shè)置然后點(diǎn)擊“Connect”按鈕,輸入后登錄系統(tǒng),登錄后,如圖 2.8 所示
25、。圖 2.8 SSH 登錄然后,點(diǎn)擊圖 2.8 中菜單欄上的“文件夾圖案”的按鈕,從而打開(kāi) SSH Secure File Transfer的運(yùn)行界面,如圖 2.9 所示為切換到系統(tǒng)/opt 目錄下的視圖。用戶手冊(cè)©2019 Guangzhou ZHIYUAN ElectronicsCo.,.11DCP-5000L單元圖 2.9 SSH Secure File Transfer 運(yùn)行界面然后可使用鼠標(biāo)拖拽文件,與DCP-5000L 之間進(jìn)行文件傳輸操作。2.5.2 NFS 文件傳輸DCP-5000L 只能作為 NFS 客戶端,可以通過(guò) NFS 方式掛載 NFS 服務(wù)器目錄,進(jìn)行文件傳
26、輸。使用mount 命令,格式如下。例如:NFS 掛載后,可操作掛載目錄下的文件,從而對(duì)服務(wù)器上的文件進(jìn)行讀、寫U 盤使用。2.6DCP-5000L 帶 1 路USB Host,USB Host 可支持U 盤、USB或者USB 接口的硬盤等移動(dòng)設(shè)備??捎玫?U 盤后,系統(tǒng)通常會(huì)自動(dòng)掛載到/media 目錄下,具體目錄取決于U 盤的分區(qū)情況,U 盤通常被識(shí)別為SCSI 設(shè)備,設(shè)備名為/dev/sdaX 或者/dev/sdbX, 掛載為/media/sdaX 或者/media/sdbX。操作完畢,建議使用先 sync 命令完成同步,或者使用 umount 命令卸載 U 盤,確保數(shù)據(jù)完全寫入,再拔取
27、U 盤。2.7SD 卡使用SD 卡,系統(tǒng)會(huì)進(jìn)行 SD 卡自動(dòng)掛載。一般會(huì)掛載在/media/mmcX 目錄下。X 數(shù)值取決于卡的分區(qū)情況,如果只有一個(gè)分區(qū),則需要手工掛載,比如:操作完畢,需要使用 umount 命令先卸載 SD 卡后才能將卡拔出。用戶手冊(cè)©2019 Guangzhou ZHIYUAN ElectronicsCo.,.12rootDCP-5000L:# mount -t vfat /dev/mmcblk2 /mntrootDCP-5000L:# mount -t nfs 40:/nfs/dcp5k_dir/mnt -o nolockrootDCP
28、-5000L:#mount -t nfs nfs-server-ip:nfs-share-directorymountpoint -o nolockDCP-5000L單元2.8U-Boot 命令DCP-5000L 采用 U-Boot 做為系統(tǒng)引導(dǎo)程序,在必要的情況下,可以進(jìn)入 U-Boot,進(jìn)行一些高級(jí)設(shè)置。DCP-5000L 為了防止某些意外中止U-Boot 引導(dǎo)進(jìn)程,設(shè)置了保護(hù)機(jī)制,需要在特定時(shí)間段輸入特定字符串才能進(jìn)入U(xiǎn)-Boot 命令行。U-Boot 啟動(dòng)后,出現(xiàn)“Autobooting in 1seconds.Enter "zlg" to interrupt Au
29、toboot.”提示后的 1 秒鐘內(nèi)輸入“zlg”如圖 2.10 所示。U-Boot 命令行,圖 2.10 輸入“zlg”進(jìn)入 U-Boot 命令行2.9串口測(cè)試DCP-5000L 系統(tǒng)自帶一個(gè)串口測(cè)試軟件 microcom,可以很簡(jiǎn)便快捷的測(cè)試串口。microcom 的用法如下。例如,需要測(cè)試串口 ttymxc0,波特率為 115200。將 DCP-5000L 的 ttymxc0 的 TX 和RX 引腳短接,然后執(zhí)行如下命令進(jìn)試。然后在終端輸入字符,如果能回顯所的字符說(shuō)明串口功能正常,反之亦然。如果想結(jié)束測(cè)試,則可輸入 ctrl+x 來(lái)microcom 程序。用戶手冊(cè)©2019 G
30、uangzhou ZHIYUAN ElectronicsCo.,.13rootDCP-5000L:#microcoms115200 /dev/ttymxc0Usage: microcom -d DELAY-t TIMEOUT -s SPEED -X TTYDCP-5000L單元3. 文件系統(tǒng)3.1支持的文件系統(tǒng)系統(tǒng)支持多種常見(jiàn)文件系統(tǒng),如ext2、fat等,具體支持哪些文件系統(tǒng),可通過(guò)查看/proc/filesystem 文件。3.2安裝第軟件建議用戶程序安裝在/opt目錄下,在/opt 目錄下建立合理的程序目錄結(jié)構(gòu),如:用戶手冊(cè)©2019 Guangzhou ZHIYUAN Ele
31、ctronicsCo.,.14/opt/myapp/|- bin#存放用戶程序可執(zhí)行文件|- data#存放數(shù)據(jù)文件|- doc#存放文檔文件|- etc#存放配置等文件|- lib#存放程序所需要的額外的庫(kù)文件- share#存放共享文件rootDCP-5000L:#cat /proc/filesystemsnodevsysfsnodevrootfsnodevramfsnodevbdevnodevprocnodevcgroupnodevtmpfs nodevdevtmpfs nodevdebugfs nodevsecurityfs nodevsockfsnodevpipefs nodevrp
32、c_pipefs nodevdevpts ext3ext2 ext4 vfatnodev nfsnodevnfs4nodevjffs2nodevautofs fuseblknodevfusenodevfusectl nodevmtd_inodefs nodevubifsDCP-5000L單元/opt 在物理上是一個(gè)單獨(dú)的 MTD 分區(qū),專門用于安裝用戶程序和存放用戶數(shù)據(jù)。程序開(kāi)機(jī)自啟動(dòng)3.3系統(tǒng)啟動(dòng)過(guò)程中會(huì)掃描/etc/rc5.d/目錄下所有以“S”開(kāi)頭的文件并啟動(dòng)。所以只需在/etc/rc5.d/目錄下編寫一個(gè)文件名為:“S+編號(hào)+名稱”的可執(zhí)行即可,在中增加啟動(dòng)某個(gè)具體程序的語(yǔ)句即可。文件
33、名必須以“S”開(kāi)頭,編號(hào)代表了啟動(dòng)級(jí)別,越大越晚運(yùn)行,取值建議在 9099 之間。例如,需要開(kāi)機(jī)啟自動(dòng)的應(yīng)用程序?yàn)?opt/myapp/bin/myapp,可編寫 S90myapp加可執(zhí)行權(quán)限,放到/etc/rc5.d/目錄下,文件內(nèi)容可簡(jiǎn)單的寫為如下內(nèi)容。并增實(shí)際應(yīng)用中,如果程序啟動(dòng)之前需要設(shè)置一些環(huán)境變量,或者進(jìn)行其他初始化,或者加載某些外設(shè)驅(qū)動(dòng)或者庫(kù)等等,最好編寫一個(gè)的程序啟動(dòng)來(lái)完成以上工作,如啟動(dòng)程序的為startmyapp,內(nèi)容如下(注意,需要可執(zhí)行權(quán)限)。實(shí)現(xiàn)開(kāi)機(jī)自啟動(dòng),只需在/etc/rc5.d/S90myapp 中,調(diào)用這個(gè)即可。例如,要實(shí)現(xiàn)開(kāi)機(jī)啟動(dòng) QT 演示程序,可在/et
34、c/rc5.d/目錄下增加一個(gè)S90qt 文件,其中內(nèi)容如下。用戶手冊(cè)©2019 Guangzhou ZHIYUAN ElectronicsCo.,.15#!/bin/sh/usr/share/zhiyuan/zylauncher/start_zylauncher &#!/bin/sh/opt/myapp/startmyapp &#!/bin/sh insmod.koexport= export YYY=/opt/myapp/bin/myapp&#!/bin/sh/opt/myapp/bin/myapp &DCP-5000L單元4. 應(yīng)用程序開(kāi)發(fā)4.1
35、應(yīng)用程序開(kāi)發(fā)環(huán)境構(gòu)建4.1.1Linux 開(kāi)發(fā)一般方法Linux 系統(tǒng),由于系統(tǒng)的匱乏,通常無(wú)法安裝本地編譯器進(jìn)行本地開(kāi)發(fā),而需要在借助一臺(tái)主機(jī)進(jìn)行交叉開(kāi)發(fā)。一般情況下,主機(jī)運(yùn)行 Linux 操作系統(tǒng),在主機(jī)安裝相應(yīng)的交叉編譯器,將在主機(jī)編輯好的程序交叉編譯后,通過(guò)一定方式如以太網(wǎng)或者串口將程序到目標(biāo)系統(tǒng)運(yùn)行,或者進(jìn)行調(diào)試。一般的交叉開(kāi)發(fā)流程如圖 4.1 所示。圖 4.1Linu叉開(kāi)發(fā)一般流程Linux 開(kāi)發(fā)的一般模型如圖 4.2 所示。通常需要一臺(tái) PC 主機(jī),在其中安裝好各種進(jìn)行交叉編譯所需要的軟件,通過(guò)串口和以太網(wǎng)和目標(biāo)板相連。在主機(jī)上進(jìn)行程序編輯和編譯,得到的可執(zhí)行文件通過(guò)串口或者以太
36、網(wǎng)到目標(biāo)板中運(yùn)行或者進(jìn)行調(diào)試。圖 4.2Linux 開(kāi)發(fā)模型進(jìn)行Linux 開(kāi)發(fā),NFS(Network FileSystem)方式應(yīng)該是最用的開(kāi)發(fā)方式了。主機(jī)開(kāi)啟 NFS 服務(wù),作為 NFS 服務(wù)器,目標(biāo)板作為NFS 客戶端,目板通過(guò)NFS 方式,將主機(jī) NFS 服務(wù)器目錄掛載到本地系統(tǒng),像操作本地文件一樣操作的文件。對(duì)主機(jī)的要求,硬件方面,要求有串口和網(wǎng)口;軟方面,操作系統(tǒng)推薦使用主流如 ubuntu 等,還需要安裝開(kāi)發(fā)相關(guān)的軟件,同時(shí)還需要其它的軟件如交叉編譯器等。版,用戶手冊(cè)©2019 Guangzhou ZHIYUAN ElectronicsCo.,.16DCP-5000L
37、單元4.1.2 安裝操作系統(tǒng)按照一般方法安裝即可。4.1.3 構(gòu)建交叉開(kāi)發(fā)環(huán)境1.工具鏈和安裝工具鏈安裝包:poky-glibc-x86_64-meta-toolchain-qt5-cortexa9hf-vfp-neon-toolchain-1.7.sh 使用 sudo 方式運(yùn)行工具鏈安裝包,安裝完成后會(huì)在系統(tǒng) opt 目錄下生成 poky 目錄,目錄結(jié)構(gòu)如下所示。其中 environment-setup-cortexa9hf-vfp-neon-poky-linux-gnueabi 是編譯器相關(guān)環(huán)境變量設(shè)置;sysroots 目錄下是編譯器工具及庫(kù)。修改/.bashrc 文件,在此文件中添加如
38、下行。然后運(yùn)行/.bashrc 文件,或者重新打開(kāi)終端,使設(shè)置生效。運(yùn)行.bashrc 文件的方法,進(jìn)入用戶主目錄,輸入. .bashrc 命令(點(diǎn)+空格.bashrc)。在終端輸入 arm-poky 并按 TAB 鍵,如果能夠看到很多 arm-poky-linux-gnueabi-前綴的命令,則基本可以確定交叉編譯器安裝正確。此編譯器在使用時(shí)需要添加一些參數(shù),否則會(huì)因找不到某些庫(kù)或頭文件而報(bào)錯(cuò),具體參數(shù)可通過(guò)查看 CC 環(huán)境變量,此外,我們可以直接使用它已經(jīng)配置好的$CC 來(lái)編譯程序。2.測(cè)試工具鏈編寫一個(gè)簡(jiǎn)單的應(yīng)用程序文件如 hello.c,然后通過(guò)以下方式編譯 hello.c,得到 he
39、llo 程序后,使用file 命令查看其格式。用戶手冊(cè)©2019 Guangzhou ZHIYUAN ElectronicsCo.,.17LinuxUserlinux-compiler:$ $CC hello.c -o helloLinuxUserlinux-compiler:$ file hellohello: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked (uses shared libs), forLinuxUserlinux-compiler:$ echo $CCarm-p
40、oky-linux-gnueabi-gcc -march=armv7-a -mthumb-interwork -mfloat-abi=hard -mfpu=neon-mtune=cortex-a9 -sysroot=/opt/poky/1.7/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabiLinuxUserlinux-compiler:$ arm-poky-linux-gnueabi-arm-poky-linux-gnueabi-addr2line arm-poky-linux-gnueabi-g+ arm-poky-linux-gnueabi-
41、gdb arm-poky-linux-gnueabi-objdumparm-poky-linux-gnueabi-ararm-poky-linux-gnueabi-gcc arm-poky-linux-gnueabi-gprofarm-poky-linux-gnueabi-ranlib arm-poky-linux-gnueabi-asarm-poky-linux-gnueabi-gcc-ararm-poky-linux-gnueabi-ldarm-poky-linux-gnueabi-readelf arm-poky-linux-gnueabi-c+filtarm-poky-linux-gn
42、ueabi-gcc-nm arm-poky-linux-gnueabi-ld.bfd arm-poky-linux-gnueabi-sizearm-poky-linux-gnueabi-cpparm-poky-linux-gnueabi-gcc-ranlib arm-poky-linux-gnueabi-nmarm-poky-linux-gnueabi-stringsarm-poky-linux-gnueabi-elfeditarm-poky-linux-gnueabi-gcovarm-poky-linux-gnueabi-objcopy arm-poky-linux-gnueabi-stri
43、psource /opt/poky/1.7/environment-setup-cortexa9hf-vfp-neon-poky-linux-gnueabiopt poky 1.7 environment-setup-cortexa9hf-vfp-neon-poky-linux-gnueabi site-config-cortexa9hf-vfp-neon-poky-linux-gnueabi sysroots version-cortexa9hf-vfp-neon-poky-linux-gnueabiDCP-5000L單元如果得到如上信息,可知 hello 程序是 ARM 格式的文件,arm
44、-linux-gnueabihf-工具鏈已經(jīng)可以正常使用了。4.1.4 NFS 服務(wù)器配置NFS 即網(wǎng)絡(luò)文件系統(tǒng)(Network File-System),可以通過(guò)網(wǎng)絡(luò),讓不同、不同系統(tǒng)之間可以實(shí)現(xiàn)文件共享。通過(guò)NFS,可以共享目錄,就像本地磁盤一樣。NFS只是一種文件系統(tǒng),本身并沒(méi)有傳輸功能,是基于 RPC(用 C/S 架構(gòu)。過(guò)程調(diào)用)協(xié)議實(shí)現(xiàn)的,采Linux 開(kāi)發(fā)中,通常需要在主機(jī)上配置 NFS 服務(wù)器,將某系統(tǒng)特定目錄共享給和使用。通過(guò) NFS,目標(biāo)系統(tǒng)可以直接運(yùn)行存放于主機(jī)上的程序,可以減少目標(biāo)系統(tǒng)對(duì)目標(biāo)系統(tǒng)FLASH 的燒寫,既減少了對(duì) FLASH 損害,同時(shí)也節(jié)省了燒寫 FLASH
45、 所花費(fèi)的時(shí)間。1.添加NFS 目錄修改/etc/exports 文件,在其中增加NFS 目錄(需要 root 權(quán)限,請(qǐng)使用 sudo 命令)并指定主機(jī)的 IP 以及權(quán)限。如增加/home/LinuxUser/nfs 目錄,并增加內(nèi)容如下:IP 為 192.168.1.*的任何系統(tǒng)進(jìn)行 NFS,2.啟動(dòng)NFS 服務(wù)同樣需要 root 權(quán)限,執(zhí)行sudo /etc/init.d/nfs-kernel-server start 或者 restart 命令,可以啟動(dòng)或者重新啟動(dòng)NFS 服務(wù):在 NFS 服務(wù)已經(jīng)啟動(dòng)的情況下,如果修改/etc/exports 了文件,可以重啟NFS 服務(wù),刷新 NFS
46、 共享目錄,或者輸入 exports -rv 命令重新導(dǎo)出 NFS 共享目錄。3.測(cè)試NFS 服務(wù)器首先可以在主機(jī)上進(jìn)行自測(cè),將已經(jīng)設(shè)定好的 NFS 共享目錄 mount 到另外一個(gè)目錄下,看能否。假定主機(jī) IP 為 40,NFS 共享目錄為/home/LinuxUser/nfs 可使用如下命令進(jìn)試:如果指令運(yùn)行沒(méi)有出出錯(cuò),則 NFS 掛載/home/LinuxUser/nfs 目錄下的內(nèi)容。,在/mnt 目錄下應(yīng)該可以看到啟動(dòng)工控板并進(jìn)入Linux。將目標(biāo)板接入局域網(wǎng)或者通過(guò)交叉網(wǎng)線與機(jī)直連,設(shè)定目標(biāo)板的 IP,使之與主機(jī)在同一網(wǎng)段,然后進(jìn)行mount 操作。在進(jìn)行掛載
47、之前,最好先用 ping 命令檢查網(wǎng)絡(luò)通信是否正常,只有在能 ping 通的用戶手冊(cè)©2019 Guangzhou ZHIYUAN ElectronicsCo.,.18rootDCP-5000L:#ifconfigeth041 rootDCP-5000L:#ping 40rootDCP-5000L:#mount -t nfs 40:/home/LinuxUser/nfs /mnt -o nolockLinuxUserlinux-compiler: $ sudomounttnfs40:/home/L
48、inuxUser/nfs/mntLinuxUserlinux-compiler: $ sudo exportfs-rvLinuxUserlinux-compiler: $ sudo /etc/init.d/nfs-kernel-server start/home/LinuxUser/nfs192.168.1.*(rw,sync,no_root_squash)LinuxUserlinux-compiler: $ sudo vi /etc/exportssudo password for LinuxUser:GNU/Linux 2.6.32, BuildIDsha1=388b9bdfaa06960
49、4f274226d38d2797c71f486dd, not strippedDCP-5000L單元情況下,才能進(jìn)行正常掛載,否則請(qǐng)檢查網(wǎng)絡(luò)。如果在已經(jīng) ping 通的情況下, 現(xiàn)錯(cuò)誤,請(qǐng)檢查主機(jī)和目標(biāo)機(jī)的其它設(shè)置。NFS 基于RPC 協(xié)議,進(jìn)行NFS 掛載,客戶端需要運(yùn)行portmap 服務(wù),如果出現(xiàn)“RPC:Timed out”的錯(cuò)誤,則有可能是目標(biāo)板尚未啟動(dòng) portmap 服務(wù)。解決方法是在目標(biāo)板啟動(dòng) portmap 服務(wù)。掛載出4.2Hello 程序使用熟悉的文本編輯器,在 NFS 目錄下,編寫一個(gè)簡(jiǎn)單的程序,往端口打印“Hello”字符串,程序4.1 是一個(gè)簡(jiǎn)單范例。程序4.1 H
50、ello 程序啟動(dòng)終端,進(jìn)入hello 程序文件所在目錄,輸入編譯命令對(duì)hello.c 進(jìn)行編譯。編譯完畢,將得到hello 文件。啟動(dòng)系統(tǒng),進(jìn)行NFS 掛載,并進(jìn)入 hello 程序所在目錄,運(yùn)行 hello 序。如果需要hello 程序,只需使用 cp 命令將 hello 文件到本地目錄即可。這是一個(gè)非常簡(jiǎn)單的程序,并且只有一個(gè)文件,所以可以采用直接輸入命令進(jìn)行交叉編譯,如果工程較大,文件較多,這種方式就不可取了,通常需要編寫 Makefil 文件,通 make程序來(lái)進(jìn)行工程管理。程序4.2 所示是一個(gè)簡(jiǎn)單的 Makefile 文件。程序4.2 應(yīng)用程序 Makefile 范例用戶手冊(cè)
51、169;2019 Guangzhou ZHIYUAN ElectronicsCo.,.19EXEC=hello OBJS=hello.oCFLAGS=-Wall -g -O2all: clean $(EXEC)$(EXEC):$(OBJS)$(CC) -o $ $(OBJS)$(STRIP) $ clean:-rm -f $(EXEC) *.orootDCP-5000L:/mnt/hello# cp hello/optrootDCP-5000L:#mount -t nfs 40:/home/LinuxUser/nfs /mnt -o nolockrootDCP-5000L
52、:#cd/mnt/hellorootDCP-5000L:/mnt/hello#./hello Hello!LinuxUserlinux-compiler: hello$ $CC hello.c -o hello#include <stdio.h> int main(void)printf("Hello!n"); return 0;rootDCP-5000L:# portmap&DCP-5000L單元有了合適的 Makefile 文件,只需在終端輸入make 命令即可編譯程序。Makefile 編寫有詳細(xì)規(guī)則,請(qǐng)參考其它書籍或者資料。4.3蜂鳴器使用DCP-5000L 板載一個(gè)交流蜂鳴器,通過(guò) PWM,設(shè)置占空比、頻率后可以開(kāi)啟或者關(guān)閉蜂鳴器。相關(guān)的操作接口在/sys/class/pwm/ pwmchip0/export 目錄下,涉及到如下幾個(gè)文件:ex
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 蔬菜市場(chǎng)調(diào)查報(bào)告范文
- 企業(yè)經(jīng)營(yíng)困難報(bào)告范文
- 單過(guò)程平穩(wěn)模型的估計(jì)計(jì)量經(jīng)濟(jì)學(xué)EVIEWS建模課件
- 2024-2025學(xué)年年八年級(jí)數(shù)學(xué)人教版下冊(cè)專題整合復(fù)習(xí)卷第14章 一次函數(shù)全章復(fù)習(xí)(含答案)
- 技術(shù)方案分析報(bào)告范文
- 券商運(yùn)營(yíng)信息報(bào)告范文
- 2025年西寧從業(yè)資格證貨運(yùn)考試答案
- 2025年湘西貨運(yùn)從業(yè)資格證考試模擬考試題庫(kù)
- 《教育技術(shù)環(huán)境》課件
- 2025解除購(gòu)房合同協(xié)議書模板
- 《扁鵲治病》教學(xué)課件
- 圍手術(shù)期多模式鎮(zhèn)痛管理及無(wú)痛病房
- 2022年山東科技大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)《操作系統(tǒng)》科目期末試卷A(有答案)
- 第六課 掌握演繹推理方法課件 【備課精講精研】 高中政治統(tǒng)編版選擇性必修三邏輯與思維
- 實(shí)習(xí)企業(yè)鑒定考核表
- 精編新東方考研英語(yǔ)詞匯詞根+聯(lián)想記憶法亂序版-綠皮書俞敏洪編著帶中文翻譯真正完全版資料
- 綜合管廊工程施工技術(shù)概述課件
- 家教最新收費(fèi)退費(fèi)處理辦法
- 《我的心兒怦怦跳》優(yōu)秀課件
- 公積金提取單身聲明
- 大型設(shè)備的吊裝技術(shù)課件
評(píng)論
0/150
提交評(píng)論