我在2.0版本的协议栈的从机工程中添加了C:\ti\tirtos_simplelink_2_11_01_09\products\cc26xxware_2_00_06_14829\driverlib 目录下的timer.c和timer.h文件,然后在SimpleBLEPeripheral_init()函数的最后调用的相关的函数对定时器进行配置,在这过程中遇到的问题是,当我调用TimerIntRegister()函数时,在编译的时候编译器提示说
“Warning[Lp023]: absolute placement (in [0x20000000-0x200000c7]) overlaps with reserved areas:[0x20000000-0x200000c7] "ti_sysbios_family_arm_m3_Hwi_ramVectors" ”
这个问题我上网查了查,暂时没找到解决的方法,所以就来这里请教各位大神了,求大神解答。工程的部分代码如下:
pinHandle = PIN_open(&pinState, pwmExamplePins);
PINCC26XX_setMux(pinHandle, PIN_ID(Board_LED1), IOC_PORT_MCU_PORT_EVENT0);
TimerIntRegister(GPT0_BASE,TIMER_A,Timer_callBackFxn); //Timer_callBackFxn是以存根的形式存在于代码中的 不知道有没有影响
Timer_Init();
下面是timer.h中该函数的声明:
extern void TimerIntRegister(uint32_t ui32Base, uint32_t ui32Timer, void (*pfnHandler)(void));
对应的函数体在timer.c中,这里就不贴出来了。
Peter Yin:
楼主,问题解决了吗?
我这也出现这个warning,虽然目前不影响使用,但是这个warning总是让人不踏实啊。
Kai Xiang xu:
回复 Peter Yin:
解决了,请参考下面的代码:
extern void Timer_Isr(UArg arg);
static ti_sysbios_family_arm_m3_Hwi_Struct TimerHwi;
//==============================================================================//Init//==============================================================================void Timer_init(void){ Hwi_Params hwiParams; TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; Power_setDependency(PERIPH_GPT0); //Set Power dependecies & constraints //配置GPT0模块定时器A. TIM_TimeBaseStructure.GPT_Separate = GPT_CFG_CFG_16BIT_TIMER; TIM_TimeBaseStructure.GPT_OneShotOrPeriodic = GPT_TBMR_TBMR_PERIODIC; TIM_TimeBaseStructure.GPT_CounterMode = GPT_TBMR_TBCDIR_UP; TIM_TimeBaseStructure.GPT_Period = 48000; //48M/48000 = 1KHz TIM_TimeBaseInit(GPT0_BASE, TIMER_A, TIM_TimeBaseStructure); TIM_IMRConfig(GPT0_BASE, TIMER_TIMA_TIMEOUT, ENABLE); //使能中断 Disable_Timer(); //关闭定时器 Hwi_Params_init(&hwiParams); Hwi_construct(&TimerHwi, INT_TIMER0A, Timer_Isr,&hwiParams, NULL); //注册中断服务函数 Power_setConstraint(Power_SB_DISALLOW); // // TIM_OCInitTypeDef TIM_OCInitStructure;// TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;//// Power_setDependency(PERIPH_GPT0); // Set Power dependecies & constraints// // //配置GPT0模块定时器A,PWM模式 Start// TIM_TimeBaseStructure.GPT_Separate = TIME_16BIT_TIMER;// TIM_TimeBaseStructure.GPT_OneShotOrPeriodic = TIME_PERIODIC;// TIM_TimeBaseStructure.GPT_CounterMode = TIME_CDIR_DOWN;// TIM_TimeBaseStructure.GPT_Period = 48000;// TIM_TimeBaseInit(GPT0_BASE, TIMER_A, TIM_TimeBaseStructure);// // TIM_OCInitStructure.TIM_OCMode = TIME_CAPTURE_EDGCNT | TIME_PWM; //捕获比较、PWM模式选择// TIM_OCInitStructure.TIM_OutputState = TIME_CCP_ON_TIMEOUT; //Legacy PWM operation// TIM_OCInitStructure.TIM_Pulse = 24000; //占空比,到时间输出电平翻转// TIM_OCInitStructure.TIM_OCIdleState = NORMA_A; //空闲电平状态:INVERTED:0 NORMAL:1// TIM_OCInit(GPT0_BASE,TIMER_A,TIM_OCInitStructure);// // PINCC26XX_setMux(&lState, Board_GREEN, IOC_PORT_MCU_PORT_EVENT0); //PWM 输出引脚// Enable_Timer(); //使能定时器// Power_setConstraint(Power_SB_DISALLOW); //// // Util_constructClock(&periodicClock,SimpleBLEPeripheral_sem,10000, 0, 1, 0x0004);}
//==============================================================================////==============================================================================void Enable_Timer(void){ TIM_Cmd(GPT0_BASE, TIMER_A, ENABLE); //使能定时器}//==============================================================================////==============================================================================void Disable_Timer(void){ TIM_Cmd(GPT0_BASE, TIMER_A, DISABLE); //关闭定时器}
Peter Yin:
回复 Kai Xiang xu:
谢谢楼主分享,可是没看明白,楼主能稍微解释一下吗? 谢谢。
Kai Xiang xu:
回复 Peter Yin:
其他的不管,只是一个参考,你说的注册中断回调函数的问题,是这样注册的:
Hwi_Params_init(&hwiParams); //初始化输入的参数Hwi_construct(&TimerHwi, INT_TIMER0A, Timer_Isr,&hwiParams, NULL); //注册中断服务函数 Power_setConstraint(Power_SB_DISALLOW); //
Peter Yin:
回复 Kai Xiang xu:
那可能我碰到的问题的原因和楼主的不一样,我把注册中断的代码注释掉,也还是有问题。
这个问题很早就出现了,因为没影响调试,就没管它,目前也不知道是加什么代码时候引入的了。
谢谢楼主了
Kai Xiang xu:
回复 Peter Yin:
这个是我现在用的驱动,至于说你遇到的问题。。。我也不是很清楚,你可以去https://e2e.ti.com/问问老外。
Peter Yin:
回复 Kai Xiang xu:
谢谢楼主分享
hong liang fu:
我下载您的驱动文件,我打开都是乱码啊。我这里没有TIM_TimeBaseInit(GPT0_BASE, TIMER_A, TIM_TimeBaseStructure); 这个函数,找不到。您可以再发一个给我吗?辛苦您了。
hong liang fu:
回复 hong liang fu:
你加我下QQ,传给我下,要不我加您也可以。谢谢楼主了
da qin zheng sheng:
回复 Kai Xiang xu:
谢谢分享。
TI中文支持网



