TOP-iMX6开发板的 Android 源码的 can 例程包含在 Android 源码中,在“ packages/apps/”目
录下,如下图所示,这个是应用界面的源码。
![iTOP-iMX6开发板-Android-can测试例程介绍 iTOP-iMX6开发板-Android-can测试例程介绍](https://image.shishitao.com:8440/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy85OTExMjQ1LWY2OWFhZjc4MjIzMjM1ODAuanBnP2ltYWdlTW9ncjIvYXV0by1vcmllbnQvc3RyaXAlN0NpbWFnZVZpZXcyLzIvdy83NTAvZm9ybWF0L3dlYnA%3D.jpg?w=700)
如下图所示,can 的硬件抽象层是“device/fsl/topeet_6dq/libcan/”文件。
![iTOP-iMX6开发板-Android-can测试例程介绍 iTOP-iMX6开发板-Android-can测试例程介绍](https://image.shishitao.com:8440/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy85OTExMjQ1LWE3YjQ4YTNkOTVkNmQyYTMuanBnP2ltYWdlTW9ncjIvYXV0by1vcmllbnQvc3RyaXAlN0NpbWFnZVZpZXcyLzIvdy83NTAvZm9ybWF0L3dlYnA%3D.jpg?w=700)
其中最主要的源码文件是上图的“canHardware.c”,打开文件简单分析。
如下图所示,是初始化代码接口。
![iTOP-iMX6开发板-Android-can测试例程介绍 iTOP-iMX6开发板-Android-can测试例程介绍](https://image.shishitao.com:8440/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy85OTExMjQ1LTg3OWZlNTY0NjUzYjcwNWMuanBnP2ltYWdlTW9ncjIvYXV0by1vcmllbnQvc3RyaXAlN0NpbWFnZVZpZXcyLzIvdy83NTAvZm9ybWF0L3dlYnA%3D.jpg?w=700)
如下图所示,可以发现它使用的是类似“ifconfig can0 up”的命令实现 can 的开启和关
闭。
![iTOP-iMX6开发板-Android-can测试例程介绍 iTOP-iMX6开发板-Android-can测试例程介绍](https://image.shishitao.com:8440/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy85OTExMjQ1LTE0MzFlNzAyYWJhY2FhYWQuanBnP2ltYWdlTW9ncjIvYXV0by1vcmllbnQvc3RyaXAlN0NpbWFnZVZpZXcyLzIvdy83NTAvZm9ybWF0L3dlYnA%3D.jpg?w=700)
剩下的重要的 jni 接口,如下所示。
JNIEXPORT jint JNICALL Java_can_hardware_hardwareControl_canWrite
这是 can 的发送接口。
JNIEXPORT jobject JNICALL Java_can_hardware_hardwareControl_canRead
can 的接收接口。
JNIEXPORT void JNICALL Java_can_hardware_hardwareControl_closeCan
can 的关闭接口。
如上分析可知,jni 的接口已经将 can 的初始化、发送、接收和关闭做了封装,只需要我
们在 Android 中调用即可。
具体调用方法可以参考用户手册的第十章和 jin 相关的部分。
![iTOP-iMX6开发板-Android-can测试例程介绍 iTOP-iMX6开发板-Android-can测试例程介绍](https://image.shishitao.com:8440/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy85OTExMjQ1LWQwOTg2NWJlZGYzYzA1ZDQuanBnP2ltYWdlTW9ncjIvYXV0by1vcmllbnQvc3RyaXAlN0NpbWFnZVZpZXcyLzIvdy83NTAvZm9ybWF0L3dlYnA%3D.jpg?w=700)