Beaglebone Black(ARM)上的单元测试(assert.h),在SD卡上安装了Linux Headers

时间:2014-02-22 07:18:28

标签: c linux unit-testing kernel arm

好的,这就是:

我正在开发Beaglebone Black(ARM Cortex-A8)上的DMA内核驱动程序 - 目前我的文件系统看起来像这样(对于这个问题很重要):

/dev/mmcblk1p2  1.7G  1.1G  511M  69% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
udev            247M  4.0K  247M   1% /dev
tmpfs            50M  224K   50M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            248M     0  248M   0% /run/shm
none            100M     0  100M   0% /run/user
/dev/mmcblk1p1   71M   20M   52M  28% /boot/uboot
/dev/mmcblk0p1  3.6G  571M  2.8G  17% /media/microsd

rootfs / boot 位于eMMC NAND闪存芯片上

安装 / media / microsd 给自己额外的~4GB空间

我的驱动程序代码库位于__/home/user/__ Linux标头太大而无法在__rootfs__(NAND Flash)上安装,因此我编写了一个小脚本,将它们安装到__/media_microsd__文件系统,然后将__/lib/modules/3.8.13-bone28/build__符号链接到__/media/microsd/usr/src/linux-3.8.13-bone28__然后在我的makefile中运行:__make -C /lib/modules/3.8.13-bone28/build M=$(PWD) modules__以便驱动程序构建在linux头文件所在的位置(/ media / microsd ...)然后我可以通过{{1}轻松地将它们包含在我的代码中}

代码参考:GitHub - Mighty_DMA

使用#include <linux/whatever.h>生成的#include <assert.h>头文件尝试构建单元测试时出现问题...因为我的Makefile使用-C标志立即更改到SD卡目录(访问Linux标头和构建)然后尝试在/usr/include而不是assert.h中寻找/media/microsd/usr/include

由于文件存在差异,我无法将其包含在我的代码中时,使用Check(/usr/include/)或Assert(check.h)构建单元测试的最佳方法是什么?生活在NAND闪存和SD卡上的系统

我尝试修改AutoTools和Makefile以包含目录路径assert.h但是因为-C标志,它变成了相对的。我尝试给/usr/include/直接路径到文件,但这不能递归地解决问题 - 它将开始出现关于头文件断言调用的错误......等等

提前感谢你的帮助,我真的不知道最好的路线是什么。

&LT; 3,

-q

0 个答案:

没有答案