好的,这就是:
我正在开发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