了解更多常见问题教程

25个职位/0个新职位
最后一个帖子
本雅明都
离线
最后一次见到:17小时26分钟前
已加入:2016-03-14 02:38
DSP示例

嗨dialog,

我用的是DSP的例子,我遇到了一个问题希望能对你有所帮助。

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

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

我用的例子是dsps_设备,可能uart中断与spi冲突?如果是,如何停止uart?

谢谢

本杰明

关键词:
设备:
项目经理对话
离线
最后一次见到:6天20小时前
工作人员
已加入:2018-02-08 11:03
嗨BenjaminDu,

嗨BenjaminDu,

platform_reset_func()由platform_reset()调用,它是ROM代码实现的。得到这个断言的最可能的原因是内存不足,因为您可能会尝试分配从未使用过的消息。例如,如果您正在分配通知消息,并且您的连接间隔很短,则消息将堆积起来,直到连接事件到达;但是,如果连接间隔较大,则在连接事件到达之前内存已用完。

谢谢,总理对话

本雅明都
离线
最后一次见到:17小时26分钟前
已加入:2016-03-14 02:38
嗨dialog,

嗨dialog,

非常感谢你的快速回复。

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

我仍然认为spi I与uart有冲突

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

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

谢谢

(我在另一个例子中测试了spi,效果很好)

附件:
本雅明都
离线
最后一次见到:17小时26分钟前
已加入:2016-03-14 02:38
我想是的

我认为暴力是导致冲突的唯一原因

谢谢

本杰明

项目经理对话
离线
最后一次见到:6天20小时前
工作人员
已加入:2018-02-08 11:03
嗨BenjaminDu,

嗨BenjaminDu,

设备是从闪存启动还是从系统RAM启动?你一直在和UART交互吗?我会尝试复制它。如果你能和我分享你所做的修改,那将是非常有帮助的。

谢谢,总理对话

本雅明都
离线
最后一次见到:17小时26分钟前
已加入:2016-03-14 02:38
嗨dialog,

嗨dialog,

从系统启动时,uart之间几乎没有交互

我的主要修改如下

void timer\u回调(void)

{

国际标准;

iSSS=spi_事务(0x80040001);

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

//iSSS/=64;

//iSSS=1023;

拱门打印(“TTTTT\t”);

}

#ifdef CFG_打印f_UART2

GPIO_ConfigurePin(2,8,输出,PID_UART2_TX,假);

GPIO_ConfigurePin(2,9,输入,PID_UART2_RX,假);

#结束语

GPIO_ConfigurePin(0,0,输出,PID_SPI_CLK,假);

GPIO\u ConfigurePin(0,2,输出,PID\u SPI\u EN,真);

GPIO_ConfigurePin(0,5,输入,PID_SPI_DI,假);

GPIO_ConfigurePin(0,6,输出,PID_SPI_DO,假);

SPI\u Pad\u t SPI\u CS\u Pad;

spi峎CS_销垫=2;//2或

spi峎CS_焊盘端口=0;//SPI_端口;

spi\ u init(&spi\ u CS\ u Pad,spi\ u MODE\ u 32位,spi\ u ROLE\ u MASTER,spi\ u CLK\ u IDLE\ u POL\ u LOW,spi\ u PHA\ u MODE\ u 0,spi\ u MINT\ u DISABLE,spi\ u XTAL\ u DIV\ u 8);

初始化计时器();

timer0_register_callback(计时器_callback);

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

SPSS初始化

TTTTT其他邮件ID 3328

ttttttttttttttttttttttttttttttttttttttttttt

附件:
本雅明都
离线
最后一次见到:17小时26分钟前
已加入:2016-03-14 02:38
嗨dialog,

嗨dialog,

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

非常感谢你的帮助

本杰明

2019年10月17日

项目经理对话
离线
最后一次见到:6天20小时前
工作人员
已加入:2018-02-08 11:03
嗨BenjaminDu,

嗨BenjaminDu,

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

谢谢,总理对话

本雅明都
离线
最后一次见到:17小时26分钟前
已加入:2016-03-14 02:38
嗨dialog,

嗨dialog,

我把DB_HEAP_SZ增加了2倍和4倍,但还是崩溃了,不同的是DB_HEAP_SZ越大,崩溃的时间就越长。

你能帮我说说记忆是用在哪里的吗?

你有别的办法避免撞车吗?

谢谢

本杰明

本雅明都
离线
最后一次见到:17小时26分钟前
已加入:2016-03-14 02:38
嗨dialog,

嗨dialog,

以前我用的是SDK3.x uart_slave,DB_HEAP_SZ是1024,还是很好用的,我按照你的建议换了新的SDK,但是上面显示它崩溃了,我觉得是因为串口内存消耗,因为我的项目中没有使用串口,你能帮我建议一下如何停止串口吗?

谢谢

本杰明

本雅明都
离线
最后一次见到:17小时26分钟前
已加入:2016-03-14 02:38
嗨dialog,

嗨dialog,

可能spi与其他中断冲突?

因为spi可以很好地独立工作。

谢谢

本杰明

项目经理对话
离线
最后一次见到:6天20小时前
工作人员
已加入:2018-02-08 11:03
嗨BenjaminDu,

嗨BenjaminDu,

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

谢谢,总理对话

本雅明都
离线
最后一次见到:17小时26分钟前
已加入:2016-03-14 02:38
嗨Dialog,

嗨Dialog,

修改了以下3个文件:

主拱门

用户外设setup.c

da1458x\配置\基本.h

我复制了这3个文件的内容和它们在PDF文档中的修改,这3个文件之间用///////隔开,你可以在///////中找到添加了//Benjamin的修改。

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

谢谢

本杰明10月23日。

附件:
本雅明都
离线
最后一次见到:17小时26分钟前
已加入:2016-03-14 02:38
嗨dialog,

嗨dialog,

我的项目是用dsp来读spi,我认为这是可能的。

谢谢

本杰明

10月24日

本雅明都
离线
最后一次见到:17小时26分钟前
已加入:2016-03-14 02:38
嗨dialog,

嗨dialog,

你能给我一个答复吗?

谢谢

本贾明杜10月25日

本雅明都
离线
最后一次见到:17小时26分钟前
已加入:2016-03-14 02:38
嗨dialog,

嗨dialog,

你说有悬而未决的消息,你能举例说明哪条消息?

谢谢

本雅明都

本雅明都
离线
最后一次见到:17小时26分钟前
已加入:2016-03-14 02:38
任何人都可以告诉我如何使用

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

本雅明都
离线
最后一次见到:17小时26分钟前
已加入:2016-03-14 02:38
嗨dialog,

嗨dialog,

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

谢谢

本杰明

项目经理对话
离线
最后一次见到:6天20小时前
工作人员
已加入:2018-02-08 11:03
嗨BenjaminDu,

嗨BenjaminDu,

您不能同时有UART和SPI活动。SDK的bl_app_安全示例使用SPI flash n order存储绑定数据。请遵循用户\u CFG\u APP\u BOND\u DB\u USE\u SPI\u FLASH。为了初始化spiflash并与之交互,我建议您使用我们的api。也可以将spi_flash example作为参考(6.0.10.511\projects\target_apps\peripheral_examples\spi)。您能澄清一下您对DSP和SPI闪存的要求吗?

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

谢谢,总理对话

项目经理对话
离线
最后一次见到:6天20小时前
工作人员
已加入:2018-02-08 11:03
嗨BenjaminDu,

嗨BenjaminDu,

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

谢谢,总理对话

本雅明都
离线
最后一次见到:17小时26分钟前
已加入:2016-03-14 02:38
嗨Dialog,

嗨Dialog,

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

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

将数据通过我的设备发送到主机或移动设备上

你是说延长睡眠模式会使SPI失效吗?SPI停止了,也许这就是程序崩溃的原因?

谢谢

本杰明

本雅明都
离线
最后一次见到:17小时26分钟前
已加入:2016-03-14 02:38
嗨Dialog,

嗨Dialog,

是的,我用的是客户板。

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

希望你能测试一下我的代码,帮我找出问题出在哪里。

谢谢

本杰明

项目经理对话
离线
最后一次见到:6天20小时前
工作人员
已加入:2018-02-08 11:03
你好,本杰明,

你好,本杰明,

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

谢谢,总理对话

本雅明都
离线
最后一次见到:17小时26分钟前
已加入:2016-03-14 02:38
你好,

你好,

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

谢谢

本杰明

项目经理对话
离线
最后一次见到:6天20小时前
工作人员
已加入:2018-02-08 11:03
你好,本杰明,

你好,本杰明,

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

谢谢,总理对话