TOP-iMX6开发板的 Android 源码的 can 例程包含在 Android 源码中,在“ packages/apps/”目
录下,如下图所示,这个是应用界面的源码。

如下图所示,can 的硬件抽象层是“device/fsl/topeet_6dq/libcan/”文件。

其中最主要的源码文件是上图的“canHardware.c”,打开文件简单分析。
如下图所示,是初始化代码接口。

如下图所示,可以发现它使用的是类似“ifconfig can0 up”的命令实现 can 的开启和关
闭。

剩下的重要的 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 相关的部分。
