了解更多常见问题教程

25个职位/ 0个新职位
最后发表
BenjaminDu
离线
最后看到:2天2小时前
加入:2016-03-14 02:38
DSP例子

嗨,对话框中,

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

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

你能帮助分析原因吗?

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

谢谢

本杰明

关键词:
设备:
PM_Dialog
离线
最后看到:1周1天前
工作人员
加入:2018-02-08 11:03
嗨Benjamindu,

嗨Benjamindu,

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

谢谢,PM_Dialog

BenjaminDu
离线
最后看到:2天2小时前
加入:2016-03-14 02:38
嗨,对话框中,

嗨,对话框中,

非常感谢您的快速回复。

我的代码如附件中,似乎没有未折叠的数据。

我仍然认为spi I与uart冲突

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

你能帮忙告诉我如何阻止它吗?然后我可以测试UART与SPI冲突。

谢谢

(我在其他例子中测试SPI,它运作良好)

附件:
BenjaminDu
离线
最后看到:2天2小时前
加入:2016-03-14 02:38
我认为制裁是

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

谢谢

本杰明

PM_Dialog
离线
最后看到:1周1天前
工作人员
加入:2018-02-08 11:03
嗨Benjamindu,

嗨Benjamindu,

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

谢谢,PM_Dialog

BenjaminDu
离线
最后看到:2天2小时前
加入:2016-03-14 02:38
嗨,对话框中,

嗨,对话框中,

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

我的重大修改如下

空白timer_callback(空白)

INTS ISSS;

iss = spi_transaction (0 x80040001);

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

/ /空间站/ = 64;

// ISSS = 1023;

arch_printf(“TTTTT \ t”);

#ifdef cfg_printf_uart2.

gpio_configurein (2,8, OUTPUT, PID_UART2_TX, false); / /输出

gpio_configurepin(2,9,输入,pid_uart2_rx,false);

#万一

GPIO_ConfigurePin(0,0, OUTPUT, PID_SPI_CLK, false); / /输出信息

gpio_configurepin(0,2,输出,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.pin = 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

TTTT其他msgst 3328

哒,哒,哒,哒,哒

附件:
BenjaminDu
离线
最后看到:2天2小时前
加入:2016-03-14 02:38
嗨,对话框中,

嗨,对话框中,

共有4个修改的文件,全部在上面的.pdf只需将它们复制并粘贴到相应的文件中,然后您可以测试它。

非常感谢你的帮助

本杰明

2019.10.17

PM_Dialog
离线
最后看到:1周1天前
工作人员
加入:2018-02-08 11:03
嗨Benjamindu,

嗨Benjamindu,

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

谢谢,PM_Dialog

BenjaminDu
离线
最后看到:2天2小时前
加入:2016-03-14 02:38
嗨,对话框中,

嗨,对话框中,

我增加了db_heap_sz 2次和4次,但仍然崩溃,差异是db_heap_sz的更大尺寸,崩溃的时间越长。

你可以帮助说在哪里使用内存吗?

你有其他方法来避免崩溃吗?

谢谢

本杰明

BenjaminDu
离线
最后看到:2天2小时前
加入:2016-03-14 02:38
嗨,对话框中,

嗨,对话框中,

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

谢谢

本杰明

BenjaminDu
离线
最后看到:2天2小时前
加入:2016-03-14 02:38
嗨,对话框中,

嗨,对话框中,

也许spi与其他中断发生冲突?

因为spi可以独立工作。

谢谢

本杰明

PM_Dialog
离线
最后看到:1周1天前
工作人员
加入:2018-02-08 11:03
嗨Benjamindu,

嗨Benjamindu,

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

谢谢,PM_Dialog

BenjaminDu
离线
最后看到:2天2小时前
加入:2016-03-14 02:38
嗨,对话框中,

嗨,对话框中,

以下3个文件修改:

arch_main.c

user_periph_setup.c.

da1458x_config_basic.h

我复制了3个文件的内容及其在PDF文档中的修改,3由//////////分隔//////////,您可以在添加// bepjamin添加的修改中。

我用sdk3.x uart_slave测试了相同的代码,它有效。

谢谢

本杰明10月23日。

附件:
BenjaminDu
离线
最后看到:2天2小时前
加入:2016-03-14 02:38
嗨,对话框中,

嗨,对话框中,

我的项目是使用DSP阅读zhongh spi,我认为应该是可能的。

谢谢

本杰明

10月24日

BenjaminDu
离线
最后看到:2天2小时前
加入:2016-03-14 02:38
嗨,对话框中,

嗨,对话框中,

你能给我一个回复吗?

谢谢

Benjamindu 10月25日

BenjaminDu
离线
最后看到:2天2小时前
加入:2016-03-14 02:38
嗨,对话框中,

嗨,对话框中,

你说有待定的消息,请给你一个消息吗?

谢谢

BenjaminDU

BenjaminDu
离线
最后看到:2天2小时前
加入:2016-03-14 02:38
任何人都可以告诉我如何使用

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

BenjaminDu
离线
最后看到:2天2小时前
加入:2016-03-14 02:38
嗨,对话框中,

嗨,对话框中,

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

谢谢

本杰明

PM_Dialog
离线
最后看到:1周1天前
工作人员
加入: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闪存进行交互的回调。请记住,DSP默认使用扩展睡眠模式,因此包括SPI的所有外围设备将被断电。

谢谢,PM_Dialog

PM_Dialog
离线
最后看到:1周1天前
工作人员
加入:2018-02-08 11:03
嗨Benjamindu,

嗨Benjamindu,

刚看到您附加的修改文件。我会尝试在干净的SPS_DEVICE项目中测试它。你有一个定制董事会,或者您正在使用我们的任何DKS?此外,您还有另一个DA14585运行SPS_HOST固件,还是您使用我们的DSP移动应用程序来连接?

谢谢,PM_Dialog

BenjaminDu
离线
最后看到:2天2小时前
加入:2016-03-14 02:38
嗨,对话框中,

嗨,对话框中,

UART不是必须的,我用UART以一种简单的方法来输出数据来观察调试期间的代码,但我测试了我的代码,如果我不使用UART来淘汰任何东西,那么程序仍然可以崩溃。在Skd3.x中,我使用slave_uart和master_uart示例,UART适用于SPI。

我测试了SPI_FLASH示例,它可以良好地与SPI设备进行交互。

我的要求是通过SPI读取数据并将数据发送到对等设备(EITH到MOBILE或SPS_HOST)

你的意思是扩展睡眠模式将禁用SPI?SPI被停止了,也许这就是程序崩溃的原因?

谢谢

本杰明

BenjaminDu
离线
最后看到:2天2小时前
加入:2016-03-14 02:38
嗨,对话框中,

嗨,对话框中,

是的,我在用客户板。

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

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

谢谢

本杰明

PM_Dialog
离线
最后看到:1周1天前
工作人员
加入:2018-02-08 11:03
你好,本杰明,

你好,本杰明,

当处于睡眠模式时,包括I2C、UART、SPI在内的所有外围块都被关闭。以DSPS为例,默认的睡眠模式是扩展睡眠模式。在UART中,硬件流控制用于在有可用数据发送或接收时唤醒设备。你能在主动模式下试试吗?

谢谢,PM_Dialog

BenjaminDu
离线
最后看到:2天2小时前
加入:2016-03-14 02:38
你好,

你好,

我测试了活动模式,它似乎有效,我将做更多的测试来证实它。

谢谢

本杰明

PM_Dialog
离线
最后看到:1周1天前
工作人员
加入:2018-02-08 11:03
你好,本杰明,

你好,本杰明,

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

谢谢,PM_Dialog