EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 Tronlong123 于 2024-7-21 17:29 编辑 : X6 `( T# s: f2 x, D) n
- W5 t8 N3 w, P3 e5 W {5 {
前 言
4 c+ ~: h, |4 B. o) O! r. k 本文档主要演示NXP i.MX 8M Mini工业开发板基于IgH EtherCAT控制伺服电机。
' T( E- i1 ^" ^( @ 演示板卡是创龙科技的TLIMX8-EVM工业开发板,它是基于NXP i.MX 8M Mini的四核ARM Cortex-A53 + 单核ARM Cortex-M4异构多核处理器设计的高性能评估板,由核心板和评估底板组成。ARM Cortex-A53(64-bit)主处理单元主频高达1.6GHz,ARM Cortex-M4实时处理单元主频高达400MHz。处理器采用14nm最新工艺,支持1080P60 H.264视频硬件编解码、1080P60 H.265视频硬件解码、GPU图形加速器。核心板经过专业的PCB Layout和高低温测试验证,稳定可靠,可满足各种工业应用环境。
) p% a& ~ ^/ V% s; M 评估板接口资源丰富,引出MIPI CAMERA、MIPI/LVDS LCD、HDMI OUT、LINE IN/OUT、PCIe、FlexSPI、USB、RS485、RS232、千兆网口、百兆网口等接口,板载WIFI模块,支持Mini-PCIe 4G模块,可选配外壳直接应用于工业现场,方便用户快速进行产品方案评估与技术预研。+ N1 y8 C4 v+ T( U9 m) h; c6 S
本文档适用开发环境:
7 H" T5 J: U5 P9 X- @7 r h& h& ? (1) Windows开发环境:Windows 7 64bit、Windows 10 64bit% g3 X& s; _8 ~( D* ^2 j8 Q9 e9 k+ L
(2) Linux开发环境:Ubuntu 18.04.4 64bit* }$ ~, B- [% n1 c9 y0 M& m
(3) 虚拟机:VMware15.1.0
1 P! q5 Q+ V& S (4) Linux SDK:5.4.70_2.3.0$ y* W$ p' Z; H1 i/ c+ ]
(5) Kernel:linux-5.4.70-xenomai-g8d94618-v1.0
- n2 x+ Y. V9 i* {4 Y7 A2 f- G/ l (6) IgH EtherCAT:ethercat-stable-1.5-gcd0d17d-202107236 o3 l) o% ^( U. f, U. ]
(7) Xenomai:xenomai-v3.1.1-g8b2052e' ^% A/ t! B7 p
(8) 伺服驱动器:台达ASD-A2-0121-E
2 V' K/ a2 H3 g: @ (9) 伺服电机:台达ECMA-C10401GS
! p; z h/ F3 f0 ]$ x" N: r 我司提供的IgH EtherCAT主站开发案例位于产品资料“4-软件资料\Demo\igh_ethercat_dc_motor\”目录下,主要包含igh_ethercat、kernel-xenomai、xenomai等文件夹,具体说明如下。
& i$ [. F/ D% ?- x 表 1 1 IgH EtherCAT简介 IgH EtherCAT为运行于Linux系统的免费开源EtherCAT主站程序,框架如下所示,官方文档:https://www.etherlab.org/download/ethercat/ethercat-1.5.2.pdf。
8 Z% B$ }0 u% e* m+ N ![]()
( A- y% x4 n* v# m( H& a2 b5 [* I: M1 k* e# E9 W
4 T& f0 Y9 Y( B. w* o F
IgH EtherCAT主站通过构建Linux字符设备,应用程序通过对字符设备的访问实现与EtherCAT主站模块的通信。 IgH EtherCAT开发包提供EtherCAT工具,该工具提供各种可在Linux用户层运行的命令,可直接实现对从站的访问和设置,如设置从站地址、显示总线配置、显示PDO数据、读写SDO参数等。
% i: H r; {4 I$ k7 ^ IgH EtherCAT官网:https://www.etherlab.org/en/ethercat。' C+ }) z4 d3 B
2 案例说明 案例功能:控制伺服电机正转和反转。
7 N& y8 U% Z c: W4 B! C6 R7 a (1) 正转:伺服电机目标速度从0加速到10000,当达到10000速度后,控制伺服电机减速至0,循环运行。) T! u' r p0 B! h6 |( ^( m' E
(2) 反转:伺服电机目标速度从0加速到-10000,当达到-10000速度后,控制伺服电机减速至0,循环运行。! K9 Q ~) I+ X/ s8 j6 D
![]()
1 S) p2 W+ m% @( m2 L6 F7 S' W; C, g5 W m7 E
为便于测试,我司提供已验证的基于Xenomai编译生成的内核镜像文件和设备树镜像文件,位于案例"igh_ethercat_dc_motor\kernel-xenomai\images\linux-5.4.70-xenomai-g8d94618-v1.0\"目录下,请替换至Linux系统启动卡BOOT分区下。同时将linux-5.4.70-xenomai-g8d94618-v1.0目录下的module驱动压缩包5.4.70-g8d94618.tar.gz,解压至Linux系统启动卡rootfs分区"lib/modules/"目录下。
+ A% M: x& |* O2 C" T$ X 备注:如需使用由内核源码重新编译生成的内核镜像文件、设备树文件和modules驱动,请参考Linux系统使用手册将编译的module驱动安装至Linux系统启动卡中,默认安装后module驱动目录为5.4.70。
4 V7 Y8 o% @& j" J" r3 n ![]()
1 |) }% I0 r! K
5 i5 K/ @" M Y P* y; c8 K
: T. I/ @# h( i9 }/ K {
3 案例测试 请按下图所示使用网线连接评估板RGMII ETH网口和伺服驱动器A的IN网口,将伺服驱动器A的OUT网口使用网线连接至伺服驱动器B的IN网口。
$ g% \2 ?1 g2 V4 L" | ![]()
0 `6 u( d T4 P$ t# M+ G5 z# x" X/ }5 o4 E0 E0 P% E9 _. v5 b
![]()
6 N4 p6 J0 E- C1 [9 `
' X t; d& B% ^- r0 a
7 `7 P7 P3 f, ]/ y
为便于测试,我司提供的经验证的IgH EtherCAT主站程序为案例"igh_ethercat_dc_motor\igh_ethercat\images\ethercat-stable-1.5-gcd0d17d-20210723\"目录下的ethercat-stable-1.5-gcd0d17d-20210723.tar.gz压缩包,在Ubuntu下解压即可得到IgH EtherCAT主站程序文件夹。( m6 G: E7 K; h# A5 a* \) `
将IgH EtherCAT主站程序文件夹整个拷贝至评估板文件系统,执行如下命令查询评估板网卡物理地址。本次测试将IgH EtherCAT主站程序文件夹命名为__install。: i5 o. m" {1 u# j( ?$ F
Target# ifconfig
# E' N2 |2 r% Q7 z& x ![]()
5 Z- u ] x4 c! ]0 B2 [, ]& [7 e4 b: c e0 ^. r5 ?
" Z* b- m0 g- @. m9 d( L. H& G* i3 I; b 执行如下命令,加载驱动模块。
" I3 l; v/ p1 z1 l4 ]3 f; u: } Target# insmod /home/root/EtherCAT/__install/modules/ec_master.ko main_devices=ce:bb:9d:3b:d3:6b# C6 d: {- r$ S0 i# S
$ g3 @3 J0 w, [- _8 Y+ M# J3 t
1 t. R( f, S7 W4 K$ s% v
, E) |3 x6 r" w- Z2 S8 `$ w2 z
执行如下命令,拷贝EtherCAT主站相关文件至评估板文件系统。, N. ?" v \/ y r6 ? m) S
Target# cp /home/root/EtherCAT/__install/etc/sysconfig/ethercat /etc/sysconfig
B O3 ]1 W$ |) O; W Target# cp /home/root/EtherCAT/__install/modules/ec_master.ko /lib/modules/5.4.70-g8d94618 //模块驱动名称可通过"uname -r"查看
8 B% k0 d8 F+ _4 q Target# depmod //同步模块依赖关系* f5 x" Q7 M% w% b6 M c
7 f1 E t$ o& |. v. x9 m( O
/ F5 f2 U: ~/ d& i# g 执行如下命令,启动EtherCAT主站。
/ N$ S9 H0 y- r- z, C+ ^8 H9 O K Target# /home/root/EtherCAT/__install/etc/init.d/ethercat start' x4 {# ^- ] K7 P# F5 {6 u2 y. \
7 k5 x5 F8 z7 e& }% T4 s2 ?/ @/ w
3 p/ l2 G' h( @' O3 i4 G, ~
2 {1 C4 c9 y8 R' I 执行如下命令,加载ec_generic.ko驱动文件。
, |; ]( o- U+ T Target# insmod /home/root/EtherCAT/__install/modules/ec_generic.ko. a3 e. v+ F) S" E
$ l1 ]/ f! O( a
- B; c6 _3 W" {. k
# f7 u/ _; [# E* j/ G4 T/ d
执行如下命令,添加IgH动态链接库路径。
8 ?( L6 n1 E4 g' J4 V Target# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/root/EtherCAT/__install/lib
! b9 M0 X ?. t9 A7 Y; h v ![]()
: U+ Z5 L. M7 e% [% F2 Y7 J
; y& u; Y1 t: |0 e* }
2 T1 A8 Z+ u/ c" K+ m
将案例igh_ethercat_dc_motor可执行文件拷贝至评估板文件系统,执行如下命令查看参数信息。
. h, S3 g: G/ N8 V Target# ./igh_ethercat_dc_motor --help
5 ] Q' _- z" Y9 t* p 8 Y ]! U$ \+ Y2 R2 o, O2 {$ R
$ s% j: m. ^; D& d- E8 L
E4 y0 A o# J* A7 R
执行如下命令,控制两台伺服电机同时正转。& m7 m) g- q2 L- E0 j+ {& q
Target# ./igh_ethercat_dc_motor -d 07 w/ j- v( u# q0 A, a* c; b
![]()
" }+ `$ M+ V' N- g, y
9 ?) b! K! n+ h2 m
+ `9 F8 A* K9 D& _" p
![]()
8 D) W8 X, r, z8 m. l6 D2 \% J" u/ x5 ?! H9 e4 i" m! t. {( W3 J2 }
7 y* U5 s. }2 i: ?7 Z 按下"Ctrl + C",停止运行程序。2 D7 ?( S( ^( T4 E' Y6 @
8 d9 _1 J" d5 q& H5 P8 h* ]% s
; x0 i3 R/ M3 H( `3 O& S. J( ~
, R5 R. Z' l% h( L, O: N! s 执行如下命令,控制两台伺服电机同时反转。8 y$ g/ q, T% d+ q# c4 D
Target# ./igh_ethercat_dc_motor -d 1
: ?. }9 h2 Y9 u; ^6 q$ H% w) ]5 f - ]3 P0 D% r1 k1 J+ I1 [
( i6 O4 t9 q3 y6 @* {
$ V! j; _/ L. J3 b# W. Q6 [+ v8 x
![]()
" `4 J/ e) l$ w- ?2 @0 O- {
' V$ ^, J7 f1 O }/ V, ^
) S+ N$ K2 e# U: r 按下"Ctrl + C",停止运行程序。
# ~8 f& C( ~+ l0 `( n ( Q- \& P5 l* S: ]" z: t
! s1 w- [' M; [6 b
! C: ~- k& D, |. D- n
参数解析:
$ w; x7 b7 r5 @: d T" Z8 J5 k (1) latency:等待唤醒时间(ns)。7 o, [* O6 C; }- Q- \' |+ i
(2) period:EtherCAT通讯周期时间(ns)。9 ~6 J$ {, r' q( A7 f
(3) exec:接收和发送EtherCAT数据时间(ns)。( B! ^% D( e" f! q" j6 w1 |0 i
备注说明:
/ k R% C+ k; L% i" Z0 p- } (1) 使用评估板千兆网口测试时,需设置EtherCAT通讯周期时间为1.1ms,即将igh_ethercat_dc_motor.c中的FREQUENCY配置为900(如下图所示)。如设置EtherCAT通讯周期时间为1ms时,会出现数据丢失的问题,原因在于IMX8官方千兆网口驱动兼容性不够完善,NXP官方正计划修复此问题。/ m1 d3 P, f" K; B$ \
?# F2 y9 J0 \4 Y# A
% r. ]+ Q/ u# q
4 I+ |) T" N7 c/ Q) m' S (2) 使用评估板USB2 ETH百兆网口,设置EtherCAT通讯周期为1ms测试正常。
: E% D# \# e4 n/ O' G4 c (3) 为获得更高的实时性能,亦可通过PCIe接口外扩IgH EtherCAT专用集成网卡进行测试,IgH EtherCAT支持外扩集成网卡如下所示。
( J: }! k- B4 t ![]()
& V3 h2 u# n6 H. B2 z; L/ e: U, z# L1 n1 j- r- B
) A2 j8 h' L; g- X
4 案例编译 4.1 IgH EtherCAT主站程序编译# D0 S" v; f6 l: |0 b. L0 }5 B
IgH EtherCAT主站程序的编译需依赖于基于Xemomai生成的内核,请参考Linux系统使用手册将案例"igh_ethercat_dc_motor\kernel-xenomai\src\"目录下的linux-5.4.70-xenomai-g8d94618-v1.0内核源码进行编译后,再编译IgH EtherCAT主站程序。; Y; R7 P( U$ R4 `4 {# C
请将案例"igh_ethercat_dc_motor\igh_ethercat\src\"目录下的IgH EtherCAT主站程序开发包ethercat-stable-1.5-gcd0d17d-20210723.tar.gz拷贝至Ubuntu工作目录,执行如下命令进行解压。9 a1 ^/ e5 _# y$ w" [1 [0 O0 a6 f/ T* v
Host# mkdir EtherCAT
" d1 f( J8 u, x, j* N$ y Host# tar -xvf ethercat-stable-1.5-gcd0d17d-20210723.tar.gz -C EtherCAT/
9 _4 a2 K: ]* I4 N& Z8 U ![]()
* M. J' _( ?' e8 z1 u4 D$ x1 x; j6 ~# I7 r; _5 V! u
4 w5 f. F7 M+ h. _0 W V 进入解压目录,执行如下命令生成configure文件。+ Y& c1 R( t) [8 K0 L# K- T; H
Host# ./bootstrap
% Q- z) S& _2 K1 V2 [- ? . I4 p# h" G3 c2 `# U
$ g# ~. d7 a5 E; h- |
执行如下命令,加载SDK环境变量并进行配置。
. q6 f5 t5 v. A5 p: d5 J Host# source /home/tronlong/SDK/environment-setup-aarch64-poky-linux
% N7 {* y2 A7 G/ Z9 i' @ Host# mkdir __install //创建__install文件夹用于存放生成的文件
9 i2 C% N0 f- A7 j( s0 B: S: | Host# ./configure --prefix=/home/tronlong/EtherCAT/__install --with-linux-dir=/home/tronlong/kernel-xenomai/ --enable-8139too=no --enable-generic=yes --host=aarch64-poky-linux) [% e \5 v4 `. L, z& f9 Y
备注:"/home/tronlong/kernel-xenomai/"为案例提供的内核源码目录。5 ]1 Y- S2 y8 e) L7 T
![]()
; s( a$ |2 t4 f' V- f* W* q B, s; e9 i' p$ ~
4 e; P# N1 u) j ~: t! i. G4 o ![]()
1 @( ]7 w% [# }: X/ _) \* a ^7 Z; F2 z1 L# u
6 c1 l' q8 J' e* D" E9 ~. W
执行如下命令,进行编译。
7 |) R2 f, q! r: K, K Host# make
$ ^* v# S4 g3 o" R ( p$ |: ?* P$ l! {) v3 v+ w4 F8 m+ u. W
2 g I H3 O" q- B0 C! M/ b' c
! R9 ?. [6 k1 u# Q& V . R$ A5 F" I' y
5 l- b. m8 }3 Q' f
, C; A, Y# C; P( u$ ` 执行如下命令,编译驱动。- z4 R, ?8 i% x O' L7 H
Host# make modules
' Z/ M* [# v$ l' S2 F g 7 g$ c0 m e3 x+ K! o
( l G# G" m1 r4 N# L" e6 q
& b4 ^: t2 |$ ]# S) E$ x7 q
6 c% ?/ a. a# y' I2 b
$ y8 t2 `6 S+ D7 J5 v. T j
$ @# Z( f+ U, B& g 执行如下命令,将生成的IgH EtherCAT主站程序安装至指定路径下。7 e' |( v: |$ R1 N
Host# make install systemdsystemunitdir=/home/tronlong/EtherCAT/__install: u1 [" i. D+ a ^/ m; `
* b' c2 }3 ~- P- l8 d. F) {
: [. H& j( A1 T# m
![]()
- J2 H) H6 e" P* }
/ R( N2 \+ f8 A+ {1 g7 z" V: d
$ K( h6 `3 s) W. J2 W7 m
执行如下命令,将驱动文件拷贝至"__install/modules/"目录下。
7 ~# Z- h& ~3 a* ~% E. z Host# mkdir -p __install/modules
: g/ h1 T2 y' {1 d& ?. E: m Host# cp ./master/ec_master.ko ./__install/modules/" b n, p# G* E X, H+ o* E
Host# cp ./devices/ec_generic.ko ./__install/modules/7 V, s1 E$ s3 G4 E& f
![]()
* |: v5 s3 i* T
! ]8 ]8 W9 i) }+ {0 t0 H U; f" [
9 z5 y$ t7 Z& B9 L8 s. D( _) s 4.2 igh_ethercat_dc_motor案例编译5 E; C7 k) F7 S: _$ E
igh_ethercat_dc_motor案例的编译需基于IgH EtherCAT主站程序,请先编译IgH EtherCAT主站程序。5 t) c# D9 L. J9 _- y( J5 j. @
请将案例"igh_ethercat_dc_motor\src\"目录拷贝至Ubuntu工作目录下,进入src目录执行如下命令修改Makefile相关内容为IgH EtherCAT主站程序对应目录。
" X" p- T; h2 v$ z+ y Host# vi Makefile
( X/ g I, G6 f7 H ( P% {! t, ]* f( w$ S
9 L0 v/ R' H* P: V# c5 m9 E
2 |$ c) \6 m2 P) f6 v) \- f " i' ?% [+ l& R d; C# s+ d
) Z/ I2 `/ h: _6 f1 u
6 [: ^/ e# X3 a5 t! Y( s
然后执行如下命令,加载SDK环境变量并进行编译。编译完成后,将在当前目录下生成可执行文件。
3 l9 ~& U9 t( L" A$ F w Host# source /home/tronlong/SDK/environment-setup-aarch64-poky-linux, Y# A x7 l4 B+ S% a3 w: j6 M
Host# make
8 y+ y: I; b" E, k% b O & d! c; L4 m. r' V
+ m1 d- \* Q& W/ Q# E0 e
; r9 ~8 `, h! w3 F7 Z1 l
5 关键代码 (1) 创建EtherCAT Master。4 Y3 b r; o6 v( B: d
1 O9 {# o( s9 _1 H" {, }- l
7 x% `" ^5 r. I; R3 t% V
' d3 W( w; T' ^( ]1 t6 V* V+ a! z3 Y
(2) 创建域。
9 V: H5 w R) h5 b8 ^% f) s6 h ![]()
# s. j2 k( { J+ f m: }
$ e. g- z) L* a
7 U1 @1 ?2 P+ f/ m8 D! Z9 ^' {& `: s (3) 配置PDO。
" U2 ~, n5 o2 {- H4 n ![]()
3 e; R5 q4 u+ r; x# P- P; r) O0 c1 _: o' g6 ?
$ i5 H/ m8 v6 `
(4) 为域注册PDO条目。
) f* }' ?9 U" y# X . R" Z7 v: d% W/ w% d, R7 s3 _
0 K5 F) w* O8 o( F! ?% V: |4 R0 m9 a
(5) 激活Master。6 Y+ Z7 {. N4 J' _
* f- m6 y. _$ c
* O0 h8 `' P$ o9 s, q% l* J
3 ^ [7 q5 O' q5 G+ E+ s" c* ]
(6) 修改当前进程优先级。; W' D9 |( e/ J+ s
& L ^6 O' M% z2 J% N
8 i8 E. E4 u% r- M0 a
) S% | {' @$ }: u; ]1 U (7) 进入循环周期任务。- d$ Q% n; Q0 Z) q
![]()
5 m5 {- r" A+ K2 z9 @: P% ?
) b% o- q8 u* }5 H
. d& B& M* l9 g& W! d (8) 在周期任务中设置驱动器操作模式、加速度和减速度,分别发送0x6、0x7、0xF使驱动器处于ON状态。
9 O0 {; u/ d' _/ _ ![]()
" @0 d: A6 f7 o- R" N7 g! ?, u6 E5 T8 l0 Z6 G9 [2 F' d; _; U
$ j( X7 d, v1 d0 O. W% a (9) 发送目标速度,转动电机。 - j9 F. f1 Z: P9 v1 ~
N8 M' b x7 z2 D. i0 Z( e
; f; o* _# I, ~- C3 `
6 Xenomai简介 Xenomai是一个免费开源的Linux平台实时框架,通过使用与Linux内核并行运行的实时协同内核(real-time co-kernel)处理所有对时间要求严格的活动,例如处理中断和调度实时线程。Cobalt core比原生Linux与RT-Linux内核具有更高的优先级。* J* v% L" z) J; ]+ I3 O9 K
![]()
% Q! C- m ^) a8 L" d
6 l0 E( c! W$ `
5 O# @- c2 O' s, a+ W+ Z4 k4 y- ] ![]()
) n- g( m' N( p/ L( ?
* ^ y( Z$ U9 L- M o 6.1 编译说明
: I, `( P3 E3 w- W: {' [- D8 s 案例使用的Xenomai版本为3.1.1,开发包为案例"igh_ethercat_dc_motor\xenomai\src\"目录下的xenomai-v3.1.1-g8b2052e.tar.gz,将其拷贝至Ubuntu工作目录下,执行如下命令进行解压。7 U' ]6 @4 D( @. n
Host# mkdir Xenomai5 p u% g2 H0 Z8 e# W' u/ \
Host# tar -xvf xenomai-v3.1.1-g8b2052e.tar.gz -C Xenomai/7 ~/ R, C' E6 T% T Q, F# q6 W
) b8 ~( j4 y' F: w6 a% N6 y- W7 R) n
}! x; S% b1 r1 z0 L7 ~9 w r
进入解压目录,执行如下命令在当前目录生成configure文件。0 H, n8 @( t1 \ O7 D3 I! d
Host# ./scripts/bootstrap
/ E2 k J4 {, v5 _) f7 G / K) \* ?( ~* n b% h
$ ^4 c# Q6 A: X8 |/ C, d, ]; @
执行如下命令,加载SDK环境变量并进行配置,请确保已正确安装交叉编译工具。
3 I$ e n& r+ L. O3 |3 e# d Host# source /home/tronlong/SDK/environment-setup-aarch64-poky-linux- u& }) \ O% ?9 L9 Y0 H, G) R, q
Host# ./configure --build=i686-pc-linux-gnu --host=aarch64-poky-linux --disable-debug --enable-smp --with-core=cobalt5 |; Q/ w8 u& h
![]()
& B3 m8 I V b$ ~' b3 t& c" e' r6 H3 J) G& ?8 A8 v
% g. S2 L2 C: K4 V' o
9 @; }$ D& U1 ]
- g$ |# n, W/ Q% o- A2 L: ^; R
6 _ {) F1 Y4 O9 E6 ~+ z$ f Host# mkdir __install //创建__install文件夹用于存放生成的文件$ g- e% ~* G; b0 r& y
Host# make DESTDIR=/home/tronlong/Xenomai/__install install( ~% x# Z) W0 \
; t4 u5 U( l4 O
& m6 L' {6 {# I6 s( V1 k; z8 J
* J8 E, @. K$ x; G' f$ o" x) X% G 编译完成后,将在__install目录下生成usr文件夹。" x9 a) u; V5 N6 T9 \1 z
![]()
( p, s2 f7 P, c8 U
) i8 G3 L" g$ D
! h+ D6 H" _' W2 _" t( Q1 b 6.2 测试说明
* {# ?8 z" T$ z3 N- } 为便于测试,我司提供的经验证的Xenomai测试程序为案例"igh_ethercat_dc_motor\xenomai\images\xenomai-v3.1.1-g8b2052e\"目录下xenomai-v3.1.1-g8b2052e.tar.gz压缩包,在Ubuntu下解压即可得到Xenomai测试程序文件夹。
. I! K3 c( j* M) q8 \9 |; I& b 请使用已替换内核的Linux系统启动卡启动评估板,将Xenomai测试程序文件夹整个拷贝至评估板文件系统,执行如下命令拷贝Xenomai相关文件和设置动态链接库。本次测试将Xenomai测试程序文件夹命名为__install。" r% Z3 M: X+ y3 [4 N# o% d. z
Target# cp -r Xenomai/__install/usr/xenomai/ /usr/! C+ B% N1 z. c" w8 x
Target# export LD_LIBRARY_PATH=/usr/xenomai/lib LD_LIBRARY_PATH
+ C/ J3 M' J% U7 A" {2 h/ d0 k ![]()
0 T% M F1 ^7 A
; H( y2 }5 Y! a E" @% P2 f
* ~) K. E& }' G2 n: U Xenomai的测试工具均位于"/usr/xenomai/bin/"目录下,可调用对应测试工具进行测试。8 m, u" N& Q. r4 z
* E, Y" E) }% I& _& ~5 m: \
6 g% U e0 f) V/ U+ ]: j6 w
) O+ u; n* |1 O 使用Cyclictest工具进行实时性能基准测试。' h( i1 g. [& J
Target# echo 0 > /proc/xenomai/latency
2 i' t0 K/ q# Z/ h/ z* b Target# /usr/xenomai/demo/cyclictest -t5 -p98 -m -n' f% K$ n9 }* p/ V# M
9 t$ D2 `$ n6 G7 a8 L4 w) s r
7 [+ _: s1 u4 T+ t9 N6 C0 U( P( `+ y
0 ^& {$ b: `# R. d
![]()
/ X% L/ [# q/ ~6 ^# e# b) N& k/ s4 a0 W* X4 w5 [
& c& _3 h1 K, Q6 b
如果你还想了解更多嵌入式应用的相关知识,欢迎关注Tronlong创龙科技
5 P. F5 u6 F7 c/ s$ [
( N* k5 s* y! |5 m% e |