嗨,对话框中,
我用dsp的例子,我遇到一个问题希望你能帮助。
我使用一个计时器来读取数据通过spi约1 s,但它停止在5或6次阅读(在连接所述),10 s后,项目失败(所以page2)。
你能帮助分析为什么?
我使用的例子是dsps_device,也许和spi uart intrupt冲突吗?如果是这样,如何阻止uart吗?
谢谢
便雅悯
关键词:
设备:
嗨BenjaminDu,
platform_resetΤhe platform_reset_func()调用的(),这是实现ROM代码。你得到这个断言的最可能的原因是由于内存不足,因为你可能会试图分配消息你不消费。例如,如果分配通知消息和你有一个小连接间隔消息堆积,直到连接事件到达,但有一个很大的连接间隔前耗尽内存连接事件的到来。
谢谢,PM_Dialog
嗨,对话框中,
非常感谢你的快速回复。
我的代码在附件,似乎没有未耗尽的数据。
我仍然认为spi与uart的冲突
uart没有使用在我的项目中,
你能帮助告诉我如何停止吗?然后我可以测试如果uart与spi冲突。
谢谢
(我测试spi在其他例子中,它工作得很好)
我认为spi_trabsanction是导致冲突的唯一原因
谢谢
便雅悯
嗨BenjaminDu,
设备从flash启动或从系统内存吗?你不断与UART交互吗?我将试着复制它。如果你能与我分享你所做的修改,这将是非常有用的。
谢谢,PM_Dialog
嗨,对话框中,
从系统启动,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、输出、PID_UART2_TX假);
GPIO_ConfigurePin(2 9输入、PID_UART2_RX假);
# endif
GPIO_ConfigurePin(0, 0,输出,PID_SPI_CLK,假);
GPIO_ConfigurePin(0, 2、输出PID_SPI_EN, true);
GPIO_ConfigurePin(0、5、输入、PID_SPI_DI假);
GPIO_ConfigurePin(0, 6、输出PID_SPI_DO,假);
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);
输出如下,然后停止,约15秒,它失败了。附件是整个文档修改。
SPSS Init
TTTTT其他是否3328
TTTTT TTTTT TTTTT TTTTT TTTTT TTTTT
嗨,对话框中,
总4文件修改,所有在上面的pdf格式简单的复制和粘贴到相应的医生,然后你可以测试它。
非常感谢你的帮助
便雅悯
2019.10.17
嗨BenjaminDu,
platform_reset_func()是由于内存不足,所以请尽量增加堆大小通过定义DB_HEAP_SZ da1458x_config_advanced。h头文件?
谢谢,PM_Dialog
嗨,对话框中,
我DB_HEAP_SZ增加2倍和4倍,但仍然崩溃,所不同的是更大的大小DB_HEAP_SZ,时间越长时间崩溃。
你能帮说使用的内存?
你有其他办法避免崩溃吗?
谢谢
便雅悯
嗨,对话框中,
以前我使用SDK3。x uart_slave DB_HEAP_SZ是1024,仍然效果不错,我按照你的建议转移到新的SDK,但事故如上面所示,我认为这是由于系列端口内存消耗,作为系列港没有使用在我的项目中,你能帮建议如何停止系列港口吗?
谢谢
便雅悯
嗨,对话框中,
也许spi与其他中断冲突?
作为spi适用独立适用。
谢谢
便雅悯
嗨BenjaminDu,
这个问题是由于内存不足。你能总结你所做的所有修改为了复制你的问题?需求方UART和祝福活动,所以我不是很确定这是可以实现的,因为系统会耗尽内存,等待消息。你复制到另一个SDK项目吗?
谢谢,PM_Dialog
嗨,对话框中,
以下3个文件修改:
arch_main.c
user_periph_setup.c
da1458x_config_basic.h
我复制的内容3文件和PDF文档的修改,3由/ / / / / / / / / / /你能找到哪里有/ /本杰明的修改补充道。
我和SDK3测试相同的代码。x uart_slave,它的工作原理。
谢谢
本杰明10月23日。
嗨,对话框中,
我的项目是使用dsp通过spi阅读,我认为这应该是可能的。
谢谢
便雅悯
10月24日
嗨,对话框中,
你能给我一个回应吗?
谢谢
BenjaminDU 10月25日
嗨,对话框中,
你说等待消息,你能请给示例的消息吗?
谢谢
BenjaminDU
谁能告诉我如何使用spi和同时,也可以连接在祝福吗?
嗨,对话框中,
我测试的项目是dsps_device。uvprojx,修改3文件如附件
谢谢
便雅悯
嗨BenjaminDu,
你不能有UART和SPI活动在同一时间。ble_app_security SDK的例子使用SPI flash n以存储键数据。请跟USER_CFG_APP_BOND_DB_USE_SPI_FLASH。为了初始化和与SPI flash,我建议你使用我们的api。你可以把spi_flash例子作为参考(6.0.10.511 \ target_apps \ peripheral_examples \ \项目spi)。请明确您的需求与需求方和SPI闪光吗?
您应该使用app_easy_timer () API。每次计时器到期,注册回调将被触发,所以你需要注册回调与SPI flash进行交互。记住,DSP使用延长睡眠模式默认情况下,所有的外围模块包括SPI将关闭。
谢谢,PM_Dialog
嗨BenjaminDu,
只是看到你的附件修改文件。我将试着测试它在干净sps_device项目。你有一个定制的董事会,或您正在使用我们的dk吗?同时,你有另一个运行sps_host DA14585固件或你正在使用我们的dsp移动应用程序连接起来吗?
谢谢,PM_Dialog
嗨,对话框中,
UART不是必须的,我使用UART输出数据在一个简单的方法来观察代码运行在调试期间,但是我测试了我的代码,如果我不把任何使用UART,程序仍然可以崩溃,也在SKD3。x,我使用slave_uart和master_uart例子,UART与SPI。
我测试了SPI_flash例子,它可以与我的SPI设备。
我的要求是通过SPI和发送数据读取数据对等设备(移动或sps_host可行)
你是说延长睡眠模式将禁用SPI吗?和SPI停下来,也许这是程序崩溃的原因吗?
谢谢
便雅悯
嗨,对话框中,
是的我使用一个客户。
我使用了sps_host固件,我还可以使用移动应用程序,它们可以连接到dsps_device
希望你能有一个我的测试代码,帮助我发现问题是在哪里。
谢谢
便雅悯
你好,本杰明,
在睡眠模式下,所有外围块包括I2C、UART、SPI是关闭的。在需求方的例子中,睡眠模式扩展默认睡眠模式。UART,硬件流控制技术的使用是为了唤醒设备当可用数据发送或接收。你能试试在主动模式?
谢谢,PM_Dialog
你好,
我测试活动模式,似乎工作,我将做更多的测试来确认一下。
谢谢
便雅悯
你好,本杰明,
延长睡眠模式是问题,因为如前所述在我之前的回答,所有外围模块驱动在睡眠模式完成的。
谢谢,PM_Dialog