如何进行CSL函数宏定义?
在学习MCBSP ,用TI的官方例程,测试结果失败,说明数据在传输读取过程中有错误,想检测下具体是何种错误。拿同步帧同步信号错误(当前的数据帧中的所有串行数据还未接收完,出现了帧同步信号,接收器会停止当前帧的接收并重新开始下一帧的接收,从而造成当前数据的丢失。那么在串行口控制寄存器(SPCR1)中,位RSYNCER=1,所以可以用CSL函数:MCBSP_FGET(REG#,FIELD)来读取寄存器中该位段的值,但是函数需要先进行宏定义,之前在其他模块有遇到过类似的函数,是已经宏定义好的,现在要自己进行宏定义,不知道怎么定义?如何思考?哪位能够解释下,谢谢! 把csl库里那个文件include进去就可以 对呀只要添加相应模块的头文件就可以啦 里面都是有的 Chip Support Library芯片级支持库,名字清晰明了,是TI提供的一组API,用来配置和控制片上外围用的。 polaris0327 发表于 2014-4-24 20:20 static/image/common/back.gif把csl库里那个文件include进去就可以
是这样么?模块用到的头文件已经添加进去了(就是csl_mcbsp.h),这个例程中已经有!如果模块中的csl库中的所有函数都在.h文件中宏定义了,那我自动查找MCBSP_FGET( )这个函数,怎么没有查到?直接进去找也是没有找到?难道不是这个.h文件?
我觉得是例程中需要什么,头文件中进包含什么,而不是该模块的csl库函数都添加在里面。 ttxs_2013 发表于 2014-4-25 15:03 static/image/common/back.gif
是这样么?模块用到的头文件已经添加进去了(就是csl_mcbsp.h),这个例程中已经有!如果模块中的csl库中 ...
你们说的应该是对的,是我弄错了。datasheet给出的函数是这个形式:Uint 16 MCBSP_FGET(REG#,FIELD)
而文件csl_mcbsphal.h中的确有这个函数的宏定义,不过是这样的:
#define MCBSP_FGET_H(Handle,Reg,Field) _MCBSP_##Reg##_FGET(((MCBSP_PrivateObj*)(Handle))->Port,##Field) ,我按照.h文件中的函数格式,重新编译了下,没有错误,也有返回值。
页:
[1]