TI中文支持网
TI专业的中文技术问题搜集分享网站

cc2540 HAL_UART_DMA 问题

我想用到HAL_UART_DMA,我在Options里的Preproce栏目Defined symbols设置HAL_UART=TRUE,编译后出现

Warning[w52]: More than one definition for the byte at address 0x6b in common segment INTVEC. It is defined in module "hal_uart" as well as in module "hal_key"

这是为什么?如果把POWER_SAVING去掉编译就出Warning,现在我想用到HAL_UART_DMA也想开起POWER_SAVING那怎么办?

Jason lin1:

回复 Yan:

在这插个问题了: 在SimpleBLECentral这个工程中,在定义表增加HAL_UART,就会出现

Warning[w52]: More than one definition for the byte at address 0x6b in common segment INTVEC. It is defined in module "hal_uart" as well as in module "hal_key"

这个报错,同时,串口不能使用。在定义表里面把POWER_SAVING给X掉,报错将消除,同时串口也可以用。 但扫描出现问题。有谁知道是什么问题。

谢谢

dan chu:

回复 Jason lin1:

你好,请问你现在这个问题解决了吗?我有一个和你类似的问题,就是把POWER_SAVING打开和将HAL_UART设置成FALSE以后,系统读不到加速度传感器的值了,系统会卡死,这是什么问题呢?

user3840094:

回复 dan chu:

TI 同事,

好久没问你们问题了– 基本上你们不回复的,这可不好。害得我上一个项目只得猛加班才搞定了。

在做另一个项目(添加了UART功能)时,同前几位同胞一样,我碰到了同样的问题即:

使能“POWER SAVING”,编译出现标题所述警告,同时UART无效;去能“POWER SAVING”,编译PASS,UART有效;

但我现在必须使能“POWER SAVING”及“UART有效”同时出现。硬件管脚使用及配置情况如下:

P0.0, P0.1, P0.4用作按键输入,P0.2, P0.3用作TX/RX。

请问如何设置?

 

xiaobailong24:

你好,请问你是怎么开启DMA的,有例程可以发给我一下吗?谢谢啦

Yingtao Qian:

回复 user3840094:

你好,这个问题似乎是无解的。目前看到的解决方案有两种:

1、不休眠,不i使用Powersaving;

2、使用Powersaving,但是主控用EFM或者MSP430之类的低功耗MCU,就是仅仅用254x做蓝牙收发的协议IC罢了。

Jansen Li:

回复 Jason lin1:

1. 改变 uart 的 I\O 口,换成 P1 口

2. 改变 Key 的 I\O,换成 P1、P2 口

3. 如果 I\O 不能更改,那就删掉一个中断函数,在两外一个中断函数中判断具体是 uart 还是 Key 的中断,分别处理中断

4.在preprocessor里面去定义HAL_KEY=FALSE

Will Cheung:

产生这个问题,是因为你同时使用了  定义 外部中断入口程序  和 串口唤醒中断入口程序

方法:  屏蔽其中一个 入口. 将两个方法写成一个方法;

 串口唤醒中断入口程序 在 _hal_uart_dma.c

#if DMA_PM

HAL_ISR_FUNCTION(port0Isr, P0INT_VECTOR)

外部中断入口程序 在 hal_key.c

HAL_ISR_FUNCTION( halKeyPort0Isr, P0INT_VECTOR )

赞(0)
未经允许不得转载:TI中文支持网 » cc2540 HAL_UART_DMA 问题
分享到: 更多 (0)