我有一个RK3288 SOC平台及其所有AOSP源代码(Andorid SDK,NDK,Linux内核,U-boot)。
AOSP中有 \ external \ mmc-util \ mmc.c 。
这似乎使用ioctl
函数来通过不同的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中运行?
我不知道如何解决并做下一步。
答案 0 :(得分:0)
最简单的方法(对于Linux和Eclipse ADT)是:
以hello-jni为例;确保它编译(通过ndk-build
)并运行。
在jni /子目录中,找到Android.mk
修改它以编译您的文件。
示例 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.