需求方的例子

⚠️
大家好. .谢谢你来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台,它将提供更好的功能,包含在主对话网站中。所有岗位和账户都已迁移。我们现在只接受新论坛的流量-请在上面发布任何新帖子//www.wsdof.com/support.我们将在未来几天修复bug /优化搜索和标记。
25个职位/ 0个新职位
最后发表
BenjaminDu
离线
最后看到:三个月两个星期前
加入:2016-03-14 02:38
需求方的例子

嗨,对话框中,

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

我使用定时器读取数据通过spi大约1s一次,但它停止后5或6次读取(page1在附件),并在另一个10s后,程序失败(page2)。

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

我使用的例子是dsps_device,也许uart中断与spi冲突?如果是,如何阻止uart?

谢谢

便雅悯

关键词:
设备:
PM_Dialog
离线
最后看到:4小时59分钟前
工作人员
加入:2018-02-08 11:03
嗨BenjaminDu,

嗨BenjaminDu,

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

谢谢,PM_Dialog

BenjaminDu
离线
最后看到:三个月两个星期前
加入:2016-03-14 02:38
嗨,对话框中,

嗨,对话框中,

非常感谢您的快速回复。

我的代码如附件中所示,似乎没有未消耗的数据。

我仍然认为spi和uart有冲突

因为uart在我的项目中没有用,

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

谢谢

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

附件:
BenjaminDu
离线
最后看到:三个月两个星期前
加入:2016-03-14 02:38
我想spi_trab制裁是

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

谢谢

便雅悯

PM_Dialog
离线
最后看到:4小时59分钟前
工作人员
加入:2018-02-08 11:03
嗨BenjaminDu,

嗨BenjaminDu,

设备是从flash还是从System-RAM引导?你是否一直与UART互动?我会试着复制它。如果你能告诉我你所做的修改,那将是非常有帮助的。

谢谢,PM_Dialog

BenjaminDu
离线
最后看到:三个月两个星期前
加入:2016-03-14 02:38
嗨,对话框中,

嗨,对话框中,

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

我的主要修改如下

空白timer_callback(空白)

int空间站;

iss = spi_transaction (0 x80040001);

/ /空间站= (iss > > 5) &0xFFFF;

/ /空间站/ = 64;

/ /空间站= 1023;

arch_printf(“TTTTT \ t”);

# ifdef CFG_PRINTF_UART2

GPIO_ConfigurePin(2, 8, OUTPUT, PID_UART2_TX, false);

GPIO_ConfigurePin(2, 9, INPUT, PID_UART2_RX, false);

# endif

GPIO_ConfigurePin(0,0, OUTPUT, PID_SPI_CLK, false);

GPIO_ConfigurePin(0,2, OUTPUT, PID_SPI_EN, true);

GPIO_ConfigurePin(0,5, INPUT, PID_SPI_DI, false);

GPIO_ConfigurePin(0,6, OUTPUT, PID_SPI_DO, false);

SPI_Pad_t spi_CS_Pad;

spi_CS_Pad。销= 2;/ / 2或

spi_CS_Pad。端口= 0;/ / SPI_PORT;

spi_init(&spi_CS_Pad, SPI_MODE_32BIT, SPI_ROLE_MASTER, SPI_CLK_IDLE_POL_LOW, SPI_PHA_MODE_0, SPI_MINT_DISABLE, SPI_XTAL_DIV_8);

timer_init ();

timer0_register_callback (timer_callback);

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

SPSS Init

TTTTT other msgstr 3328

好,好,好,好,好

附件:
BenjaminDu
离线
最后看到:三个月两个星期前
加入:2016-03-14 02:38
嗨,对话框中,

嗨,对话框中,

总共修改了4个文档,都在上面的.pdf简单地复制它们并粘贴到相应的文档中,然后你就可以测试它了。

非常感谢你的帮助

便雅悯

2019.10.17

PM_Dialog
离线
最后看到:4小时59分钟前
工作人员
加入:2018-02-08 11:03
嗨BenjaminDu,

嗨BenjaminDu,

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

谢谢,PM_Dialog

BenjaminDu
离线
最后看到:三个月两个星期前
加入:2016-03-14 02:38
嗨,对话框中,

嗨,对话框中,

我将DB_HEAP_SZ增加了2倍和4倍,但它仍然会崩溃,区别在于DB_HEAP_SZ越大,崩溃所需的时间就越长。

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

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

谢谢

便雅悯

BenjaminDu
离线
最后看到:三个月两个星期前
加入:2016-03-14 02:38
嗨,对话框中,

嗨,对话框中,

以前我使用SDK3。x uart_slave DB_HEAP_SZ是1024,仍然效果不错,我按照你的建议转移到新的SDK,但事故如上面所示,我认为这是由于系列端口内存消耗,作为系列港没有使用在我的项目中,你能帮建议如何停止系列港口吗?

谢谢

便雅悯

BenjaminDu
离线
最后看到:三个月两个星期前
加入:2016-03-14 02:38
嗨,对话框中,

嗨,对话框中,

可能spi与其他中断冲突?

因为spi可以独立工作。

谢谢

便雅悯

PM_Dialog
离线
最后看到:4小时59分钟前
工作人员
加入:2018-02-08 11:03
嗨BenjaminDu,

嗨BenjaminDu,

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

谢谢,PM_Dialog

BenjaminDu
离线
最后看到:三个月两个星期前
加入:2016-03-14 02:38
嗨,对话框中,

嗨,对话框中,

以下3个文件修改:

arch_main.c

user_periph_setup.c

da1458x_config_basic.h

我在PDF文档中复制了这3个文件的内容和它们的修改,这3个文件用///////////分开,你可以在有//Benjamin added的地方找到修改。

我用SDK3测试了相同的代码。X uart_slave,它工作。

谢谢

本杰明10月23日。

附件:
BenjaminDu
离线
最后看到:三个月两个星期前
加入:2016-03-14 02:38
嗨,对话框中,

嗨,对话框中,

我的项目是使用dsps读透spi,我认为应该是可能的。

谢谢

便雅悯

10月24日

BenjaminDu
离线
最后看到:三个月两个星期前
加入:2016-03-14 02:38
嗨,对话框中,

嗨,对话框中,

你能给我一个答复吗?

谢谢

BenjaminDU 10月25日

BenjaminDu
离线
最后看到:三个月两个星期前
加入:2016-03-14 02:38
嗨,对话框中,

嗨,对话框中,

你说有挂起的消息,能否举例说明是哪个消息?

谢谢

BenjaminDU

BenjaminDu
离线
最后看到:三个月两个星期前
加入:2016-03-14 02:38
谁都可以告诉我怎么用

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

BenjaminDu
离线
最后看到:三个月两个星期前
加入:2016-03-14 02:38
嗨,对话框中,

嗨,对话框中,

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

谢谢

便雅悯

附件:
PM_Dialog
离线
最后看到:4小时59分钟前
工作人员
加入:2018-02-08 11:03
嗨BenjaminDu,

嗨BenjaminDu,

您不能同时具有UART和SPI活动。SDK的ble_app_security示例使用SPI flash n来存储绑定数据。请跟USER_CFG_APP_BOND_DB_USE_SPI_FLASH。为了初始化和交互SPI flash,我建议您使用我们的api。你也可以把spi_flash的例子作为参考(6.0.10.511\projects\target_apps\peripheral_examples\spi)。请问你对DSPS和SPI flash的要求是什么?

您应该使用app_easy_timer() API。每次计时器过期时,将触发已注册的回调,因此您需要注册与SPI flash交互的回调。请记住,DSP默认使用扩展睡眠模式,因此包括SPI在内的所有外围块都将关闭电源。

谢谢,PM_Dialog

PM_Dialog
离线
最后看到:4小时59分钟前
工作人员
加入:2018-02-08 11:03
嗨BenjaminDu,

嗨BenjaminDu,

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

谢谢,PM_Dialog

BenjaminDu
离线
最后看到:三个月两个星期前
加入:2016-03-14 02:38
嗨,对话框中,

嗨,对话框中,

UART不是必须的,我使用UART以一种简单的方式输出数据来观察调试期间运行的代码,但是我测试了我的代码,如果我不使用UART输出任何东西,程序仍然可能崩溃,这也是在SKD3中。x,我使用了slave_uart和master_uart的例子,UART与SPI很好地工作。

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

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

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

谢谢

便雅悯

BenjaminDu
离线
最后看到:三个月两个星期前
加入:2016-03-14 02:38
嗨,对话框中,

嗨,对话框中,

是的,我在用客户板。

我使用sps_host固件,我也可以使用移动应用程序,它们都可以连接到dsps_device

希望你能有一个测试我的代码,并帮助我找出问题是在哪里。

谢谢

便雅悯

PM_Dialog
离线
最后看到:4小时59分钟前
工作人员
加入:2018-02-08 11:03
你好,本杰明,

你好,本杰明,

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

谢谢,PM_Dialog

BenjaminDu
离线
最后看到:三个月两个星期前
加入:2016-03-14 02:38
你好,

你好,

我测试了active mode,似乎是有效的,我会做更多的测试来确认。

谢谢

便雅悯

PM_Dialog
离线
最后看到:4小时59分钟前
工作人员
加入:2018-02-08 11:03
你好,本杰明,

你好,本杰明,

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

谢谢,PM_Dialog