本帖最后由 一只耳朵怪 于 2018-6-19 14:48 编辑
初接触6670,有两点问题,望前辈指点:
1.
c6670的MCSDK模板程序主程序文件中前面定义了四个函数
uint8_t *Osal_platformMalloc (uint32_t num_bytes, uint32_t alignment)
void Osal_platformFree (uint8_t *dataPtr, uint32_t num_bytes)
void Osal_platformSpiCsEnter(void)
void Osal_platformSpiCsExit (void)
main函数也没有调用,请问他们什么时候被执行的,起什么作用啊
2.
为什么他的MCSDK里面底层驱动程序独立一个project,测试程序独立一个project,不在一个工程的话测试程序怎样使用底层驱动程序定义的函数的,编译器怎么把他们联系起来的
2018-6-19 03:49:13
注释掉这些函数编译会出错
这两个工程一个在C:tipdk_C6670_1_1_2_6packagestiplatformevmc6670lplatform_lib目录下
一个在C:tipdk_C6670_1_1_2_6packagestiplatformevmc6670lplatform_test目录下
我觉得这两个工程应该可以确定是主从关系,因为platform_lib文件夹下的工程里是各种底层驱动函数,见不到main函数(但是这个工程可以单独build)。而platform_testb文件夹下的工程里只有一个主函数文件。但是源文件不在一个project里面就搞不懂了
帮忙解答一下 谢啦
注释掉这些函数编译会出错
这两个工程一个在C:tipdk_C6670_1_1_2_6packagestiplatformevmc6670lplatform_lib目录下
一个在C:tipdk_C6670_1_1_2_6packagestiplatformevmc6670lplatform_test目录下
我觉得这两个工程应该可以确定是主从关系,因为platform_lib文件夹下的工程里是各种底层驱动函数,见不到main函数(但是这个工程可以单独build)。而platform_testb文件夹下的工程里只有一个主函数文件。但是源文件不在一个project里面就搞不懂了
帮忙解答一下 谢啦
举报
2018-6-19 03:56:50
platform_lib是static library project,只需要将头文件源文件加在一起编译生成一个library;platform_test是一个测试工程,在工程属性->linker->file search path 中添加了platform_lib生成的lib。Osal_platformMalloc等这些函数在platform_lib中的platform.c 中有使用,但是lib工程中没有其实现,所以可以在test工程中实现,否则在linker的时候会提示函数未定义,也可以将实现与声明均放在lib中编译生成lib。
platform_lib是static library project,只需要将头文件源文件加在一起编译生成一个library;platform_test是一个测试工程,在工程属性->linker->file search path 中添加了platform_lib生成的lib。Osal_platformMalloc等这些函数在platform_lib中的platform.c 中有使用,但是lib工程中没有其实现,所以可以在test工程中实现,否则在linker的时候会提示函数未定义,也可以将实现与声明均放在lib中编译生成lib。
举报