/*******************************************************************
* I.MX6 Android can-utils 移植
* 说明:
* 由于最近要用到CAN,于是先移植一下can-tuils来看一下情况。
*
* 2016-8-1 深圳 南山平山村 曾剑锋
******************************************************************/ 一、获取源码:
https://github.com/linux-can/can-utils 二、错误现象:
target thumb C: slcan_attach <= /home/myzr/myandroid/packages/apps/can-utils/slcan_attach.c
/home/myzr/myandroid/packages/apps/can-utils/slcan_attach.c: In function 'main':
/home/myzr/myandroid/packages/apps/can-utils/slcan_attach.c::: error: 'N_SLCAN' undeclared (first use in this function)
/home/myzr/myandroid/packages/apps/can-utils/slcan_attach.c::: note: each undeclared identifier is reported only once for each function it appears in
make: *** [out/target/product/sabresd_6dq/obj/EXECUTABLES/slcan_attach_intermediates/slcan_attach.o] Error
make: Leaving directory `/home/myzr/myandroid' 三、查看N_SLCAN情况:
. 直接查看:
myzr@myzr:~/myandroid/packages/apps/can-utils$ grep N_SLCAN * -R
configure.ac:AC_CHECK_DECL(N_SLCAN,,
configure.ac: [AC_DEFINE([N_SLCAN], [], [N_SLCAN])]
slcan_attach.c: int ldisc = N_SLCAN;
slcand.c: int ldisc = N_SLCAN;
. 执行autogen.sh再查看:
myzr@myzr:~/myandroid/packages/apps/can-utils$ ./autogen.sh ----------
autoreconf
---------- Can't exec "libtoolize": No such file or directory at /usr/bin/autoreconf line 196.
Use of uninitialized value in pattern match (m//) at /usr/bin/autoreconf line 196.
configure.ac:: installing `config/autoconf/config.guess'
configure.ac:: installing `config/autoconf/config.sub'
configure.ac:: installing `config/autoconf/install-sh'
configure.ac:: installing `config/autoconf/missing'
GNUmakefile.am:: Libtool library used but `LIBTOOL' is undefined
GNUmakefile.am:: The usual way to define `LIBTOOL' is to add `LT_INIT'
GNUmakefile.am:: to `configure.ac' and run `aclocal' and `autoconf' again.
GNUmakefile.am:: If `LT_INIT' is in `configure.ac', make sure
GNUmakefile.am:: its definition is in aclocal's search path.
GNUmakefile.am: installing `config/autoconf/depcomp'
autoreconf: automake failed with exit status:
myzr@myzr:~/myandroid/packages/apps/can-utils$ grep N_SLCAN * -R
autom4te.cache/output.:ac_fn_c_check_decl "$LINENO" "N_SLCAN" "ac_cv_have_decl_N_SLCAN" "$ac_includes_default"
autom4te.cache/output.:if test "x$ac_cv_have_decl_N_SLCAN" = xyes; then :
autom4te.cache/output.:$as_echo "@%:@define N_SLCAN 17" >>confdefs.h
autom4te.cache/output.:ac_fn_c_check_decl "$LINENO" "N_SLCAN" "ac_cv_have_decl_N_SLCAN" "$ac_includes_default"
autom4te.cache/output.:if test "x$ac_cv_have_decl_N_SLCAN" = xyes; then :
autom4te.cache/output.:$as_echo "@%:@define N_SLCAN 17" >>confdefs.h
autom4te.cache/traces.:m4trace:configure.ac:: -- m4_pattern_allow([^N_SLCAN$])
autom4te.cache/traces.:m4trace:configure.ac:: -- AC_DEFINE_TRACE_LITERAL([N_SLCAN])
autom4te.cache/traces.:m4trace:configure.ac:: -- m4_pattern_allow([^N_SLCAN$])
autom4te.cache/traces.:m4trace:configure.ac:: -- AH_OUTPUT([N_SLCAN], [/* N_SLCAN */
autom4te.cache/traces.:@%:@undef N_SLCAN])
configure:ac_fn_c_check_decl "$LINENO" "N_SLCAN" "ac_cv_have_decl_N_SLCAN" "$ac_includes_default"
configure:if test "x$ac_cv_have_decl_N_SLCAN" = xyes; then :
configure:$as_echo "#define N_SLCAN 17" >>confdefs.h
configure.ac:AC_CHECK_DECL(N_SLCAN,,
configure.ac: [AC_DEFINE([N_SLCAN], [], [N_SLCAN])]
slcan_attach.c: int ldisc = N_SLCAN;
slcand.c: int ldisc = N_SLCAN;
myzr@myzr:~/myandroid/packages/apps/can-utils$ 四、解决办法:
slcan_attach.c slcand.c 中添加 #define N_SLCAN 17 宏定义。 五、测试命令:
root@android:/data/local # ./cangen cangen: generate CAN frames Usage: cangen [options] <CAN interface>
Options: -g <ms> (gap in milli seconds - default: ms)
-e (generate extended frame mode (EFF) CAN frames)
-f (generate CAN FD CAN frames)
-b (generate CAN FD CAN frames with bitrate switch (BRS))
-R (send RTR frame)
-m (mix -e -f -b -R frames)
-I <mode> (CAN ID generation mode - see below)
-L <mode> (CAN data length code (dlc) generation mode - see below)
-D <mode> (CAN data (payload) generation mode - see below)
-p <timeout> (poll on -ENOBUFS to write frames with <timeout> ms)
-n <count> (terminate after <count> CAN frames - default infinite)
-i (ignore -ENOBUFS return values on write() syscalls)
-x (disable local loopback of generated CAN frames)
-v (increment verbose level for printing sent CAN frames) Generation modes:
'r' => random values (default)
'i' => increment values
<hexvalue> => fix value using <hexvalue> When incrementing the CAN data the data length code minimum is set to .
CAN IDs and data content are given and expected in hexadecimal values. Examples:
cangen vcan0 -g -I 42A -L -D i -v -v (fixed CAN ID and length, inc. data)
cangen vcan0 -e -L i -v -v -v (generate EFF frames, incr. length)
cangen vcan0 -D 11223344DEADBEEF -L (fixed CAN data payload and length)
cangen vcan0 -g -i -x (full load test ignoring -ENOBUFS)
cangen vcan0 -g -p -x (full load test with polling, 10ms timeout)
cangen vcan0 (my favourite default :) root@android:/data/local #

I.MX6 Android can-utils 移植的更多相关文章

  1. I.MX6 Android frameworks services 文件架构

    /******************************************************************************* * I.MX6 Android fra ...

  2. I.MX6 Android netperf

    /***************************************************************************** * I.MX6 Android netpe ...

  3. I.MX6 Android U-blox miniPCI 4G porting

    /************************************************************************** * I.MX6 Android U-blox m ...

  4. I.MX6 Android iperf3 porting failed

    /***************************************************************************** * I.MX6 Android iperf ...

  5. I.MX6 Android i2c-tools porting

    /************************************************************************** * I.MX6 Android i2c-tool ...

  6. I.MX6 Android 移除 Settings wifi功能

    /********************************************************************* * I.MX6 Android 移除 Settings w ...

  7. I.MX6 Android USB Touch eGTouchA.ini文件存放

    /******************************************************************** * I.MX6 Android USB Touch eGTo ...

  8. I.MX6 android BatteryService jni hacking

    /**************************************************************************** * I.MX6 android Batter ...

  9. I.MX6 AW-NB177NF WIFI 驱动移植问题

    /******************************************************************************** * I.MX6 AW-NB177NF ...

随机推荐

  1. 二分图最大权完美匹配KM算法

    KM算法二分图 KM求得二分图与普通二分图的不同之处在于:此二分图的每条边(男生女生)上都附了权值(好感度).然后,求怎样完美匹配使得权值之和最大. 这,不止一般的麻烦啊. 可以通过一个期望值来求. ...

  2. Linux基础之vi编辑器(二)

    vi 编辑器 man vim 一 打开文件,定义光标 vi +# test       打开文件,定位于#行.vi + test        打开test文件,定位于最后一行.vi +/patter ...

  3. springboot注释详解

    1.属性注入 @ConfigurationProperties(prefix="...") spring会从classpath下的/config目录或者classpath的根目录查 ...

  4. [NOIP2000] 提高组 洛谷P1017 进制转换

    题目描述 我们可以用这样的方式来表示一个十进制数: 将每个阿拉伯数字乘以一个以该数字所处位置的(值减1)为指数,以10为底数的幂之和的形式.例如:123可表示为 1*10^2+2*10^1+3*10^ ...

  5. Java开发一些小的思想与功能小记(二)

    1.用if+return代替复杂的if...else(if+return) public static void test1(String str) { if ("1".equal ...

  6. poj3648,2-sat求解

    关键是题意的理解,英语,有时候明明每个字都认识,但是还是理解错误!哎!!悲剧啊!题意啊! 这是关键!开始误理解为n对新娘郞,非也!是只有一对,其他是夫妇,理解后就好做了,建立图 是关键,怎么转化关系, ...

  7. Assigning to "id<CALayerDelegate> _Nullable" from incompatible type "ZXCapture *const __strong" 的警告提示信息

    该警告提示信息,是说,设置了代理对象,但是并没有继承它的代理.下图中,可以看出,警告信息提示我们没有继承“CALayerDelegate”的代理. 解决方法,很简单,(在 @interface 文件中 ...

  8. UVA 10245 The Closest Pair Problem【分治】

    题目链接: http://acm.hust.edu.cn/vjudge/problem/visitOriginUrl.action?id=21269 题意: 求平面最近点对. 分析: 经典问题. n比 ...

  9. windows 平台使用wireshark命令行抓包

    Windows网络流量大,或则需要长时间抓包时,wireshark图形界面使用起来比较麻烦 wireshark 内置 dumpcap命令 Capture interface:  -i <inte ...

  10. Spring的JDBC框架概述

    以下内容引用自http://wiki.jikexueyuan.com/project/spring/jdbc-framework.html: 在使用普通的JDBC操作数据库时,就会很麻烦的写很多不必要 ...