⚠️
你好。。谢谢你来到论坛。令人兴奋的消息!我们现在正在迁移到新的论坛平台,该平台将提供更好的功能,并包含在主对话网站中。所有员额和帐户都已迁移。我们现在只接受新论坛的流量-请在//www.wsdof.com/support. 我们将在未来几天内修复bug/优化搜索和标记。
25个员额/0个新员额
最后一篇文章
本杰明杜
离线
最后一次见到:4个月1周前
加入:2016-03-14 02:38
DSP示例

嗨,对话,

我用的是DSP的例子,我遇到了一个问题,希望大家能帮忙。

我使用一个定时器通过spi读取数据,每次大约1s,但在读取5或6次后停止(附件中的第1页),再过10s,程序失败(第2页)。

你能帮我分析一下原因吗?

我使用的示例是dsps_设备,可能uart INTRUP与spi冲突?如果是,如何停止uart?

谢谢

本杰明

关键词:
设备:
PM_对话框
离线
最后一次见到:1天12小时前
工作人员
加入:2018-02-08 11:03
嗨BenjaminDu,

嗨BenjaminDu,

t平台重置函数()由平台重置函数()调用,该函数由ROM代码实现。获得此断言的最可能原因是内存不足,因为您可能会尝试分配从不使用的消息。例如,如果您正在分配通知消息,并且您的连接间隔很小,则消息会堆积起来,直到连接事件到达,但是如果连接间隔很大,则在连接事件到达之前内存就会耗尽。

谢谢,下午好

本杰明杜
离线
最后一次见到:4个月1周前
加入:2016-03-14 02:38
嗨,对话,

嗨,对话,

非常感谢您的快速回复。

我的代码如附件所示,似乎没有未使用的数据。

我仍然认为spi I与uart冲突

由于uart在我的项目中没有用处,

你能告诉我怎么阻止它吗?然后我可以测试uart是否与spi冲突。

谢谢

(我在另一个例子中测试spi,它工作得很好)

附件:
本杰明杜
离线
最后一次见到:4个月1周前
加入:2016-03-14 02:38
我想斯皮是

我认为spi_制裁是导致冲突的唯一原因

谢谢

本杰明

PM_对话框
离线
最后一次见到:1天12小时前
工作人员
加入:2018-02-08 11:03
嗨BenjaminDu,

嗨BenjaminDu,

设备是从闪存引导还是从系统RAM引导?您是否一直在与UART进行交互?我将尝试复制它。如果你能与我分享你所做的修改,那将非常有帮助。

谢谢,下午好

本杰明杜
离线
最后一次见到:4个月1周前
加入:2016-03-14 02:38
嗨,对话,

嗨,对话,

从系统引导时,uart之间几乎没有交互

我的主要修改如下

无效计时器\u回调(无效)

{

int iSSS;

iSSS=spi_事务(0x80040001);

//iSSS=(iSSS>>5)&0xFFFF;

//iSSS/=64;

//iSSS=1023;

arch_printf(“TTTTT\t”);

}

#ifdef CFG_PRINTF_UART2

GPIO_配置引脚(2,8,输出,PID_UART2_发送,错误);

GPIO_配置引脚(2,9,输入,PID_UART2_RX,错误);

#恩迪夫

GPIO_ConfigurePin(0,0,输出,PID_SPI_时钟,错误);

GPIO_配置引脚(0,2,输出,PID_SPI_EN,真);

GPIO_配置引脚(0,5,输入,PID_SPI_DI,假);

GPIO_配置引脚(0,6,输出,PID_SPI_DO,false);

SPI_Pad_t SPI_CS_Pad;

spi_CS_Pad.pin=2//2或

spi_CS_Pad.port=0;//SPI_端口;

spi初始化(和spi初始化模式、spi模式32位、spi角色主机、spi时钟空闲、spi PHA模式0、spi薄荷禁用、spi外部分区8);

计时器_init();

定时器0寄存器回调(定时器回调);

输出如下,然后停止,大约15秒,失败。附件是修改后的整个文档。

SPSS初始化

TTTTT其他msgid 3328

TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT

附件:
本杰明杜
离线
最后一次见到:4个月1周前
加入:2016-03-14 02:38
嗨,对话,

嗨,对话,

总共修改了4个文档,都在上面的.pdf中,只需将它们复制并粘贴到相应的文档中,就可以进行测试了。

非常感谢你的帮助

本杰明

2019.10.17

PM_对话框
离线
最后一次见到:1天12小时前
工作人员
加入:2018-02-08 11:03
嗨BenjaminDu,

嗨BenjaminDu,

平台_reset_func()是由于内存不足造成的,因此您可以尝试通过在da1458x_config_advanced.h头文件中定义DB_heap_SZ来增加堆大小吗?

谢谢,下午好

本杰明杜
离线
最后一次见到:4个月1周前
加入:2016-03-14 02:38
嗨,对话,

嗨,对话,

我将DB_HEAP_SZ增加了2倍和4倍,但它仍然崩溃,不同的是DB_HEAP_SZ的大小越大,崩溃所需的时间越长。

你能告诉我内存在哪里使用吗?

你有其他方法避免撞车吗?

谢谢

本杰明

本杰明杜
离线
最后一次见到:4个月1周前
加入:2016-03-14 02:38
嗨,对话,

嗨,对话,

以前我使用SDK3.x uart_slave,DB_HEAP_SZ是1024,但它仍然工作得很好,我按照你的建议换了新的SDK,但是它崩溃了,如上所示,我认为这是由于串行端口内存消耗,因为我的项目中没有使用串行端口,你能帮助建议如何停止串行端口吗?

谢谢

本杰明

本杰明杜
离线
最后一次见到:4个月1周前
加入:2016-03-14 02:38
嗨,对话,

嗨,对话,

可能spi与其他中断冲突?

因为spi可以独立工作。

谢谢

本杰明

PM_对话框
离线
最后一次见到:1天12小时前
工作人员
加入:2018-02-08 11:03
嗨BenjaminDu,

嗨BenjaminDu,

问题是由于内存不足。为了复制您的问题,您能总结一下您所做的所有修改吗?DSP具有UART和BLE活动,因此我不确定这是否可以实现,因为系统将由于挂起的消息而耗尽内存。您是否在另一个SDK项目中进行了复制?

谢谢,下午好

本杰明杜
离线
最后一次见到:4个月1周前
加入:2016-03-14 02:38
嗨,对话,

嗨,对话,

修改了以下3个文件:

主拱门c

用户_periph _setup.c

da1458x_配置_基本.h

我在PDF文档中复制了3个文件的内容及其修改,3个文件之间用/////////分隔,您可以在添加的地方找到修改。

我用SDK3.xUART_从机测试了相同的代码,它可以工作。

谢谢

本杰明,10月23日。

附件:
本杰明杜
离线
最后一次见到:4个月1周前
加入:2016-03-14 02:38
嗨,对话,

嗨,对话,

我的项目是使用DSP通过spi进行读取,我认为这应该是可能的。

谢谢

本杰明

10月24日

本杰明杜
离线
最后一次见到:4个月1周前
加入:2016-03-14 02:38
嗨,对话,

嗨,对话,

你能给我一个答复吗?

谢谢

本杰明杜10月25日

本杰明杜
离线
最后一次见到:4个月1周前
加入:2016-03-14 02:38
嗨,对话,

嗨,对话,

你说有待处理的消息,请举例说明哪条消息?

谢谢

本杰明杜

本杰明杜
离线
最后一次见到:4个月1周前
加入:2016-03-14 02:38
任何人都可以告诉我如何使用

任何人都可以告诉我如何使用spi,同时,也可以通过ble连接?

本杰明杜
离线
最后一次见到:4个月1周前
加入:2016-03-14 02:38
嗨,对话,

嗨,对话,

我测试的项目是dsps_device.uvprojx,修改后的3个文件如附件所示

谢谢

本杰明

附件:
PM_对话框
离线
最后一次见到:1天12小时前
工作人员
加入:2018-02-08 11:03
嗨BenjaminDu,

嗨BenjaminDu,

您不能同时进行UART和SPI活动。SDK的ble_app_安全示例使用SPI flash n顺序存储绑定数据。请遵循用户\u CFG\u APP\u BOND\u DB\u使用\u SPI\u FLASH。为了初始化SPI flash并与之交互,我建议您使用我们的API。您还可以参考spi_flash示例(6.0.10.511\projects\target_apps\peripheral_examples\spi)。您能否澄清您对DSP和SPI闪存的要求?

您应该使用app\u easy\u timer()API。每次计时器过期时,都会触发已注册的回调,因此需要注册回调以与SPI闪存交互。请记住,默认情况下,DSP使用扩展睡眠模式,因此包括SPI在内的所有外围模块都将断电。

谢谢,下午好

PM_对话框
离线
最后一次见到:1天12小时前
工作人员
加入:2018-02-08 11:03
嗨BenjaminDu,

嗨BenjaminDu,

刚刚看到你附加的修改文件。我将尝试在一个干净的sps_设备项目中测试它。您是否有定制板,或者您正在使用我们的DK?另外,您是否有另一台DA14585运行sps_主机固件,或者您正在使用我们的DSPS移动应用程序进行连接?

谢谢,下午好

本杰明杜
离线
最后一次见到:4个月1周前
加入:2016-03-14 02:38
嗨,对话,

嗨,对话,

UART不是必须的,我使用UART以一种简单的方式输出数据,以观察调试期间运行的代码,但我测试了我的代码,如果我不使用UART输出任何东西,程序仍然可能崩溃,同样在SKD3.x中,我使用slave_UART和master_UART示例,UART与SPI配合得很好。

我测试了SPI_flash示例,它可以很好地与我的SPI设备交互。

我的要求是通过SPI读取数据并将数据发送到对等设备(即移动或sps_主机)

你的意思是延长睡眠模式会禁用SPI吗?SPI停止了,也许这就是程序崩溃的原因?

谢谢

本杰明

本杰明杜
离线
最后一次见到:4个月1周前
加入:2016-03-14 02:38
嗨,对话,

嗨,对话,

是的,我用的是客户板。

我使用sps_主机固件,也可以使用移动应用程序,两者都可以连接到dsps_设备

希望您能对我的代码进行测试,并帮助我找出问题所在。

谢谢

本杰明

PM_对话框
离线
最后一次见到:1天12小时前
工作人员
加入:2018-02-08 11:03
嗨,本杰明,

嗨,本杰明,

在睡眠模式下,包括I2C、UART、SPI在内的所有外围模块均断电。在DSP示例中,默认情况下,睡眠模式为扩展睡眠模式。对于UART,使用硬件流控制,以便在有可用数据发送或接收时唤醒设备。你能在活动模式下试试吗?

谢谢,下午好

本杰明杜
离线
最后一次见到:4个月1周前
加入:2016-03-14 02:38
你好

你好

我测试了主动模式,它似乎工作,我会做更多的测试来确认它。

谢谢

本杰明

PM_对话框
离线
最后一次见到:1天12小时前
工作人员
加入:2018-02-08 11:03
嗨,本杰明,

嗨,本杰明,

延长睡眠模式是个问题,因为正如我在前面的回答中提到的,所有外围模块都是在睡眠模式下通电的。

谢谢,下午好