前言
在上一章中,我们配置好了我们的开发环境。接下来终于要开始动手开发我们的驱动模块了。你可以先悄悄看看开发出来的模块最终长什么样。
初始化工程
首先,我们把ProTempletWithUnity复制一份,名字改成AT26DFTestPro,这就是我们的测试工程了。
然后再新建一个文件夹叫AT26DFDriver,里头建好驱动的.h和.c文件,以及在里头再建个文件夹Test,里头放AT26DFTest.c和AT26DFTestRunner.c,这是驱动的测试文件:
我们打开AT26DFTestPro\UnityTestPro.sln
把几个文件拖进工程里,两个Test对应Test工程,真正的文件就拖进ProductionCodeLib里,然后大概就这么个布局。
然后先给test文件随便配置下,建立个测试组,以及随便加个空测试进去:
AT26DFTestRunner.c
#include "unity_fixture.h"
TEST_GROUP_RUNNER(AT26DF)
{
RUN_TEST_CASE(AT26DF, NULL);
}
AT26DFTest.c
#include "unity_fixture.h"
#include "AT26DF.h"
TEST_GROUP(AT26DF);
TEST_SETUP(AT26DF){
}
TEST_TEAR_DOWN(AT26DF){
}
TEST(AT26DF, NULL){
}
双击UnityTest工程下的AllTest.c
为了把这个测试组注册进工程中,我们要照着模版,加入新的测试组。
#include "unity_fixture.h"
void runAllTests(void){
RUN_TEST_GROUP(RuntimeErrorStub);
RUN_TEST_GROUP(AT26DF)
}
这样就随便加了个空测试进去。我们在UnityTest工程项上右键-生成
呀,报错了。
我们在前面的博文描述过这个问题,这是由于我们在AT26DFTest.c中include了AT26DF.h,而对于UnityTest来说,他并不知道此文件在哪导致的,我们需要将其路径添加进工程的包含目录中。项目项上右键-属性,打开属性页。
在 配置属性 - C/C++ 中,看到了“附加包含目录”项,项目所有用到的.h文件都应该能从这个列表中找到。
我们加进去AT26DF.h文件所在的目录:
然后再次生成:
就可以在输出中看到多测了一个测试,本来是两个的。
如果不信的话可以加一个命令行参数 -v 来看更细节的步骤:
看,刚刚安装的测试TEST(AT26DF, NULL)出现在输出中了,并且PASS了。
既然都配好了VS中的,那我们就顺便来配下CW中的吧。这就简单多了。
首先双击打开mcp文件
长这个样子。
然后我们把那几个文件拖进来,放好位置
然后直接运行吧,不会运行的回去看上一章。
怎么让CW中详细打印呢?
双击打开main.c文件
看到这个注释掉的"-v"没?取消注释,然后重新运行测试。
好了,搞定。
结语
至此,我们就搭建好了这个驱动模块的最基础框架了,接下来我们看看芯片手册,再思考思考怎么写这个模块