版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、DCP-5000L單元類別內(nèi)容i.MX6,Linux,CAN,Ethernet,Serial,USB,4G,ESAM摘要DCP-5000L 充電機(jī)軟件開發(fā)指南UM01707121V1.20Date: 2019/06/24用戶手冊User ManualDCP-5000L單元修訂歷史用戶手冊©2019 Guangzhou ZHIYUAN ElectronicsCo.,.i版本日期V0.902016/08/12創(chuàng)建文檔V1.002017/07/12正式發(fā)布V1.102019/03/20更新文檔頁眉頁腳、“銷售與服務(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 簡介.2外觀概覽1接口簡介21.21.3硬件參數(shù)3軟件參數(shù)31.3.1系統(tǒng)和驅(qū)動(dòng)32.系統(tǒng)基本操作52.1開機(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串口測試2.93.文件系統(tǒng)143.13.
3、23.3支持的文件系統(tǒng)14安裝第軟件14程序開機(jī)自啟動(dòng)154.應(yīng)用程序開發(fā)164.1應(yīng)用程序開發(fā)環(huán)境構(gòu)建..4Linux 開發(fā)一般方法16安裝操作系統(tǒng)17構(gòu)建交叉開發(fā)環(huán)境17NFS 服務(wù)器配置Hello 程序19蜂鳴器使用20串口編程.24.4.3串口設(shè)備20配置串口接口屬性21獲得和設(shè)置串口信號(hào)線狀態(tài)30用戶手冊©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 使用說明4..44.9.5IO 模式切換47DI 的使用47DO 的使用48ESAM 的使用48掉電檢測505.系統(tǒng)恢復(fù)和更新525.15.2免責(zé)制作 SD 卡52燒寫 Linux 固件54. 556.用戶手冊©2019 Guangzhou ZHIYUAN El
5、ectronicsCo.,.2DCP-5000L單元1. DCP-5000L 介紹1.1DCP-5000L 簡介DCP-5000L 是廣州致遠(yuǎn)電子開發(fā)的基于NXP i.MX6 系列處理器的單元,處理器內(nèi)核為 800MHz 主頻的Cortex-A9。DCP-5000L 采用“件,完成人機(jī)顯示、數(shù)據(jù)加板+主板+IO 板”的結(jié)構(gòu),通過軟硬件接口連接相應(yīng)輸入/輸出組等功能。DCP-5000L 提供了以太網(wǎng)、CAN、USB Host、SD卡、ESAM、RS-232、RS-485、接口、LVDS 接口、DI、DO、音頻等多種功能接口。支持北斗、全網(wǎng)通等無線通信。注:DCP-5000L 是由 DCP-500
6、0L-CORE、DCP-5000L-MAIN 和 DCP-5000L-IO 三塊板組成,為了描述方便,下文將“DCP-5000L-CORE”簡稱“稱為“IO 板”。板”,將“DCP-5000L-MAIN”簡稱“主板”,將“DCP-5000L-IO”簡1.1.1 外觀概覽DCP-5000L 正面外觀如圖 1.1 所示,側(cè)面接口外觀如圖 1.2 和圖 1.3 所示。圖 1.1 DCP-5000L 正面外觀圖圖 1.2 DCP-5000L 側(cè)面接口圖 1用戶手冊©2019 Guangzhou ZHIYUAN ElectronicsCo.,.1DCP-5000L單元圖 1.3 DCP-500
7、0L 側(cè)面接口圖 2注:圖片參考,以實(shí)際銷售為主。1.1.2 接口簡介DCP-5000L 主板各接口簡要描述見表 1.1。表 1.1 主板接口描述DCP-5000L IO 板接口簡要描述見表 1.2。表 1.2 IO 板接口描述用戶手冊©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ù)見表 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)見表 1.4。表 1.4 系統(tǒng)驅(qū)動(dòng)用戶手冊©2019 Guangzhou ZHIYUAN ElectronicsCo.,.3系統(tǒng)驅(qū)動(dòng)說明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)目描述說明處理器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單元用戶手冊©2019 Guangzhou ZHIYUAN ElectronicsCo.,.4系統(tǒng)驅(qū)動(dòng)說明看門狗驅(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)掉電檢測驅(qū)動(dòng)DCP-5000L單元2. 系統(tǒng)基本操作2.1開機(jī)和登錄系統(tǒng)默認(rèn) IP:41SSH 登錄用戶名和2.1.1 啟動(dòng)選擇均為:rootDCP-5000L 支持從eMMC 或者SD 卡啟動(dòng),通過主板上的SD1 和 SD2 跳線進(jìn)行選擇。斷開 SD1 和SD2 選擇從eMMC 啟動(dòng),短接后從 SD 卡啟動(dòng)。2.1.2 串口連接DCP-5000L 的調(diào)試串口為UART1,將調(diào)試串口與電腦串口相連,設(shè)置串口115200-8N1,無流。在 Windows 環(huán)境下,可以使用超級(jí)終端或者其它串口軟件,下面 putty 為例進(jìn)行介紹。打開 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è)置無誤后點(diǎn)擊“Open”,將得到如圖 2.2 所示的 putty 串口終端界面。用戶手冊©2019 Guangzhou ZHIYUAN ElectronicsCo.,.5DCP-5000L單元圖 2.2 putty 串口終端界面2.1.3 串口登錄接好串口,打開串口軟件,給 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 通過串口登錄 Linux 系統(tǒng)2.1.4 SSH登錄DCP-5000L 系統(tǒng)支持 SSH登錄,可以使用任何 SSH 軟件進(jìn)行登錄。下面以 Putty軟件通過 SSH 協(xié)議進(jìn)行登錄為例進(jìn)行介紹。打開Putty,在“Host Name”欄填入工控板的 IP 地址,以 41 為例,選中 SSH協(xié)議,如圖 2.4 所示。用戶手冊©2019 Guangzhou ZHIYUAN ElectronicsCo.,.6DCP-5000L單元圖 2.4 putty SSH 配置界面點(diǎn)擊“Open”,
14、在登錄界面輸入用戶名和“root”,登錄 Linux 系統(tǒng),如圖 2.5 所示。圖 2.5 通過 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)閉電源。用戶手冊©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 等其它信息。用戶手冊©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)信息,請使用相應(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è)置請參考其它資料。2.MAC 地址DCP-5000L更改 MAC 地址,出廠為 MAC 分配了廣州致遠(yuǎn)通過 IEEE 標(biāo)準(zhǔn)購買的合法的MAC 地址(致遠(yuǎn)的 MAC 地址以 00-14-97 開頭),貼在板的上。MAC地址范例:00-14-97 開頭的 MAC 地址所屬廠商:。用戶手冊©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)行介紹。打開 SshClient,界面如圖 2.6 所示。圖 2.6 SshClient 主界面點(diǎn)擊左上角的“Quick Connect”按鈕,在連接界面相應(yīng)欄中填入DCP-5000L 的 IP地址和登錄所使用的用戶名,如圖 2.7 所示。用戶手冊©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 中菜單欄上的“文件夾圖案”的按鈕,從而打開 SSH Secure File Transfer的運(yùn)行界面,如圖 2.9 所示為切換到系統(tǒng)/opt 目錄下的視圖。用戶手冊©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 客戶端,可以通過 NFS 方式掛載 NFS 服務(wù)器目錄,進(jìn)行文件傳
26、輸。使用mount 命令,格式如下。例如:NFS 掛載后,可操作掛載目錄下的文件,從而對服務(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 卡后才能將卡拔出。用戶手冊©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串口測試DCP-5000L 系統(tǒng)自帶一個(gè)串口測試軟件 microcom,可以很簡便快捷的測試串口。microcom 的用法如下。例如,需要測試串口 ttymxc0,波特率為 115200。將 DCP-5000L 的 ttymxc0 的 TX 和RX 引腳短接,然后執(zhí)行如下命令進(jìn)試。然后在終端輸入字符,如果能回顯所的字符說明串口功能正常,反之亦然。如果想結(jié)束測試,則可輸入 ctrl+x 來microcom 程序。用戶手冊©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)支持多種常見文件系統(tǒng),如ext2、fat等,具體支持哪些文件系統(tǒng),可通過查看/proc/filesystem 文件。3.2安裝第軟件建議用戶程序安裝在/opt目錄下,在/opt 目錄下建立合理的程序目錄結(jié)構(gòu),如:用戶手冊©2019 Guangzhou ZHIYUAN Ele
31、ctronicsCo.,.14/opt/myapp/|- bin#存放用戶程序可執(zhí)行文件|- data#存放數(shù)據(jù)文件|- doc#存放文檔文件|- etc#存放配置等文件|- lib#存放程序所需要的額外的庫文件- 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ù)。程序開機(jī)自啟動(dòng)3.3系統(tǒng)啟動(dòng)過程中會(huì)掃描/etc/rc5.d/目錄下所有以“S”開頭的文件并啟動(dòng)。所以只需在/etc/rc5.d/目錄下編寫一個(gè)文件名為:“S+編號(hào)+名稱”的可執(zhí)行即可,在中增加啟動(dòng)某個(gè)具體程序的語句即可。文件
33、名必須以“S”開頭,編號(hào)代表了啟動(dòng)級(jí)別,越大越晚運(yùn)行,取值建議在 9099 之間。例如,需要開機(jī)啟自動(dòng)的應(yīng)用程序?yàn)?opt/myapp/bin/myapp,可編寫 S90myapp加可執(zhí)行權(quán)限,放到/etc/rc5.d/目錄下,文件內(nèi)容可簡單的寫為如下內(nèi)容。并增實(shí)際應(yīng)用中,如果程序啟動(dòng)之前需要設(shè)置一些環(huán)境變量,或者進(jìn)行其他初始化,或者加載某些外設(shè)驅(qū)動(dòng)或者庫等等,最好編寫一個(gè)的程序啟動(dòng)來完成以上工作,如啟動(dòng)程序的為startmyapp,內(nèi)容如下(注意,需要可執(zhí)行權(quán)限)。實(shí)現(xiàn)開機(jī)自啟動(dòng),只需在/etc/rc5.d/S90myapp 中,調(diào)用這個(gè)即可。例如,要實(shí)現(xiàn)開機(jī)啟動(dòng) QT 演示程序,可在/et
34、c/rc5.d/目錄下增加一個(gè)S90qt 文件,其中內(nèi)容如下。用戶手冊©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)用程序開發(fā)4.1
35、應(yīng)用程序開發(fā)環(huán)境構(gòu)建4.1.1Linux 開發(fā)一般方法Linux 系統(tǒng),由于系統(tǒng)的匱乏,通常無法安裝本地編譯器進(jìn)行本地開發(fā),而需要在借助一臺(tái)主機(jī)進(jìn)行交叉開發(fā)。一般情況下,主機(jī)運(yùn)行 Linux 操作系統(tǒng),在主機(jī)安裝相應(yīng)的交叉編譯器,將在主機(jī)編輯好的程序交叉編譯后,通過一定方式如以太網(wǎng)或者串口將程序到目標(biāo)系統(tǒng)運(yùn)行,或者進(jìn)行調(diào)試。一般的交叉開發(fā)流程如圖 4.1 所示。圖 4.1Linu叉開發(fā)一般流程Linux 開發(fā)的一般模型如圖 4.2 所示。通常需要一臺(tái) PC 主機(jī),在其中安裝好各種進(jìn)行交叉編譯所需要的軟件,通過串口和以太網(wǎng)和目標(biāo)板相連。在主機(jī)上進(jìn)行程序編輯和編譯,得到的可執(zhí)行文件通過串口或者以太
36、網(wǎng)到目標(biāo)板中運(yùn)行或者進(jìn)行調(diào)試。圖 4.2Linux 開發(fā)模型進(jìn)行Linux 開發(fā),NFS(Network FileSystem)方式應(yīng)該是最用的開發(fā)方式了。主機(jī)開啟 NFS 服務(wù),作為 NFS 服務(wù)器,目標(biāo)板作為NFS 客戶端,目板通過NFS 方式,將主機(jī) NFS 服務(wù)器目錄掛載到本地系統(tǒng),像操作本地文件一樣操作的文件。對主機(jī)的要求,硬件方面,要求有串口和網(wǎng)口;軟方面,操作系統(tǒng)推薦使用主流如 ubuntu 等,還需要安裝開發(fā)相關(guān)的軟件,同時(shí)還需要其它的軟件如交叉編譯器等。版,用戶手冊©2019 Guangzhou ZHIYUAN ElectronicsCo.,.16DCP-5000L
37、單元4.1.2 安裝操作系統(tǒng)按照一般方法安裝即可。4.1.3 構(gòu)建交叉開發(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 目錄下是編譯器工具及庫。修改/.bashrc 文件,在此文件中添加如
38、下行。然后運(yùn)行/.bashrc 文件,或者重新打開終端,使設(shè)置生效。運(yùn)行.bashrc 文件的方法,進(jìn)入用戶主目錄,輸入. .bashrc 命令(點(diǎn)+空格.bashrc)。在終端輸入 arm-poky 并按 TAB 鍵,如果能夠看到很多 arm-poky-linux-gnueabi-前綴的命令,則基本可以確定交叉編譯器安裝正確。此編譯器在使用時(shí)需要添加一些參數(shù),否則會(huì)因找不到某些庫或頭文件而報(bào)錯(cuò),具體參數(shù)可通過查看 CC 環(huán)境變量,此外,我們可以直接使用它已經(jīng)配置好的$CC 來編譯程序。2.測試工具鏈編寫一個(gè)簡單的應(yīng)用程序文件如 hello.c,然后通過以下方式編譯 hello.c,得到 he
39、llo 程序后,使用file 命令查看其格式。用戶手冊©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),可以通過網(wǎng)絡(luò),讓不同、不同系統(tǒng)之間可以實(shí)現(xiàn)文件共享。通過NFS,可以共享目錄,就像本地磁盤一樣。NFS只是一種文件系統(tǒng),本身并沒有傳輸功能,是基于 RPC(用 C/S 架構(gòu)。過程調(diào)用)協(xié)議實(shí)現(xiàn)的,采Linux 開發(fā)中,通常需要在主機(jī)上配置 NFS 服務(wù)器,將某系統(tǒng)特定目錄共享給和使用。通過 NFS,目標(biāo)系統(tǒng)可以直接運(yùn)行存放于主機(jī)上的程序,可以減少目標(biāo)系統(tǒng)對目標(biāo)系統(tǒng)FLASH 的燒寫,既減少了對 FLASH 損害,同時(shí)也節(jié)省了燒寫 FLASH
45、 所花費(fèi)的時(shí)間。1.添加NFS 目錄修改/etc/exports 文件,在其中增加NFS 目錄(需要 root 權(quán)限,請使用 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.測試NFS 服務(wù)器首先可以在主機(jī)上進(jìn)行自測,將已經(jīng)設(shè)定好的 NFS 共享目錄 mount 到另外一個(gè)目錄下,看能否。假定主機(jī) IP 為 40,NFS 共享目錄為/home/LinuxUser/nfs 可使用如下命令進(jìn)試:如果指令運(yùn)行沒有出出錯(cuò),則 NFS 掛載/home/LinuxUser/nfs 目錄下的內(nèi)容。,在/mnt 目錄下應(yīng)該可以看到啟動(dòng)工控板并進(jìn)入Linux。將目標(biāo)板接入局域網(wǎng)或者通過交叉網(wǎng)線與機(jī)直連,設(shè)定目標(biāo)板的 IP,使之與主機(jī)在同一網(wǎng)段,然后進(jìn)行mount 操作。在進(jìn)行掛載
47、之前,最好先用 ping 命令檢查網(wǎng)絡(luò)通信是否正常,只有在能 ping 通的用戶手冊©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)行正常掛載,否則請檢查網(wǎng)絡(luò)。如果在已經(jīng) ping 通的情況下, 現(xiàn)錯(cuò)誤,請檢查主機(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è)簡單的程序,往端口打印“Hello”字符串,程序4.1 是一個(gè)簡單范例。程序4.1 H
50、ello 程序啟動(dòng)終端,進(jìn)入hello 程序文件所在目錄,輸入編譯命令對hello.c 進(jìn)行編譯。編譯完畢,將得到hello 文件。啟動(dòng)系統(tǒng),進(jìn)行NFS 掛載,并進(jìn)入 hello 程序所在目錄,運(yùn)行 hello 序。如果需要hello 程序,只需使用 cp 命令將 hello 文件到本地目錄即可。這是一個(gè)非常簡單的程序,并且只有一個(gè)文件,所以可以采用直接輸入命令進(jìn)行交叉編譯,如果工程較大,文件較多,這種方式就不可取了,通常需要編寫 Makefil 文件,通 make程序來進(jìn)行工程管理。程序4.2 所示是一個(gè)簡單的 Makefile 文件。程序4.2 應(yīng)用程序 Makefile 范例用戶手冊
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ī)則,請參考其它書籍或者資料。4.3蜂鳴器使用DCP-5000L 板載一個(gè)交流蜂鳴器,通過 PWM,設(shè)置占空比、頻率后可以開啟或者關(guān)閉蜂鳴器。相關(guān)的操作接口在/sys/class/pwm/ pwmchip0/export 目錄下,涉及到如下幾個(gè)文件:ex
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 互聯(lián)網(wǎng)企業(yè)門衛(wèi)工作合同模板
- 企業(yè)接待高級(jí)車租賃合同模板
- 臨時(shí)施工工具租賃買賣協(xié)議
- 企業(yè)入駐技術(shù)交流協(xié)議
- 臨沂網(wǎng)絡(luò)俱樂部行業(yè)勞動(dòng)合同樣本
- 倉儲(chǔ)物流中心改造拆除協(xié)議
- 井隊(duì)質(zhì)量管理與控制
- 個(gè)人租房協(xié)議
- 代理協(xié)議樣本
- 代理物流配送協(xié)議
- 成人重癥患者人工氣道濕化護(hù)理專家共識(shí)
- 醫(yī)療廢棄物培訓(xùn)
- 朝花夕拾讀書分享會(huì)
- 心肌病和心肌炎課件
- 突發(fā)事件應(yīng)急處理知識(shí)培訓(xùn)
- 糖尿病專科護(hù)士考試試題
- 人工智能概論-人工智能概述
- 鄉(xiāng)村旅游財(cái)務(wù)分析策劃方案
- 高校學(xué)生事務(wù)管理1
- (中職)ZZ030植物病蟲害防治賽項(xiàng)規(guī)程(7月19日更新)
- 2024年國能包神鐵路集團(tuán)有限責(zé)任公司招聘筆試參考題庫附帶答案詳解
評論
0/150
提交評論