如何构建\ external \ mmc-util \并在Android中执行它?

时间:2015-01-20 07:44:05

标签: android android-ndk

我有一个RK3288 SOC平台及其所有AOSP源代码(Andorid SDK,NDK,Linux内核,U-boot)。

AOSP中有 \ external \ mmc-util \ mmc.c 。 这似乎使用ioctl函数来通过不同的eMMC命令

测试eMMC设备

我想在SOC平台上构建并执行它。

请参阅Adding a new program to build,但输入mm将获得以下内容:

fatal error: #include asm-generic/int-ll64.h: No such file or directory
fatal error: #include <linux/mmc/ioctl.h>: No such file or directory

我的目的是设计一个程序,可以发送一些eMMC命令来测试SOC平台中的eMMC设备。

所以我认为 / external / mmc-util 文件夹中的一些.c文件可以帮助我。 这些文件使用ioctl函数向eMMC设备发送命令,它们就像示例代码一样。

它应该通过ADB执行或包含在Android系统映像中,不是<?p?

如何构建(成功)在Android中运行?

我不知道如何解决并做下一步。

1 个答案:

答案 0 :(得分:0)

最简单的方法(对于Linux和Eclipse ADT)是:

  1. 以hello-jni为例;确保它编译(通过ndk-build)并运行。

  2. 在jni /子目录中,找到Android.mk

  3. 修改它以编译您的文件。

  4. 示例 Android.mk

    LOCAL_PATH := $(call my-dir) # magic spell
    
    include $(CLEAR_VARS)
    LOCAL_MODULE := one
    LOCAL_SRC_FILES += one.c ... # files to compile
    # link with liblog.so libMyStuff.so libTheirStuff.so
    LOCAL_LDLIBS := -llog -L$(LOCAL_PATH)/lib -lMyStuff -lTheirStuff
    include $(BUILD_SHARED_LIBRARY)    # this builds libone.so
    
    
    # you can build more than one module via the same .mk
    include $(CLEAR_VARS)
    
    LOCAL_MODULE := sendraw
    LOCAL_SRC_FILES := sendRawEth.c
    #LOCAL_CPPFLAGS := -std=gnu++0x -Wall         # whatever g++ flags you like
    #LOCAL_LDLIBS := -llog   # whatever ld flags you like
    
    include $(BUILD_EXECUTABLE)    # <-- Use this to build an executable.