prod_test uninitialized port_sel

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
4 posts / 0 new
最后一篇
JCDR.
离线
Last seen:5个月2周前
加入:2019-12-19 09:10
prod_test uninitialized port_sel

你好,

我通过了Severy Days弄清楚DA14531 PROD_Test如果将通信配置为Tx = P0_0和Rx = P0_1,则DA14531 Prod_Test在开发套件和开发套件中不可易于运行。我发现的是,用于设置UART引脚的port_sel变量保持未初始化。大多数时间包含port_sel变量的内存保持归零P0_0_AND_P0_1_INITIALIZED_FROM_EXT_TOOL常量和应用程序工作的零值。但有时,该内存包含非零值,并且匹配无法通信。

我通过将以下行添加到文件user_periph_setup.c:periph_init()的开头来成功解决了此问题:

port_sel = uart_port_sel;

并将此行添加到user_periph_setup.h中,只是在枚举定义后:

#define uart_port_sel p0_0_and_p0_1_initialized_from_ext_tool;

Best Regards.

Jean-Christian de Rivaz

关键词:
设备:
PM_Dialog
离线
Last seen:2天13小时前
职员
加入:2018-02-08 11:03
嗨Jean-Christian,

嗨Jean-Christian,

请参阅AN-B-077:DA14531蓝牙直接测试模式从DA14531支持网页的应用笔记。您将找到应遵循的相应步骤和配置,以便在P00和P01上从2线UART模式运行Prod_test。非常感谢您的评论和反馈,但您提到的修改不需要。只需按照以下步骤操作。我使用DA14531 PRO-DK在我身边测试了它。

1. Please open the prod_test project without any modifications as provided by the SDK6.0.12. \

2.在user_periph_setup.h中,请更改以下GPIOS配置。有关更多信息,请参阅4.1软件设置。

/ ****************************************************************************/ /* UART pin configuration */ /****************************************************************************/ /****************************************************************************/ /* CONFIG_UART_GPIOS */ /* -defined Uart Port/Pins are defined by external tool */ /* -undefined Uart Port/Pins are defined in the current project */ /****************************************************************************/ #undef CONFIG_UART_GPIOS /****************************************************************************/ /* UART pin configuration */ /* Supported Port/Pin Combinations: */ /* Tx: P00, Rx: P01 */ /* Tx: P02, Rx: P03 */ /* Tx/Rx: P03 (1-Wire UART) */ /* Tx: P04, Rx: P05 */ /* Tx/Rx: P05 (1-Wire UART) */ /* Tx: P06, Rx: P07 */ /****************************************************************************/ #if defined(__DA14531__) #define UART1_TX_GPIO_PORT GPIO_PORT_0 #define UART1_TX_GPIO_PIN GPIO_PIN_0 #define UART1_RX_GPIO_PORT GPIO_PORT_0 #define UART1_RX_GPIO_PIN GPIO_PIN_1 #else #define UART1_TX_GPIO_PORT GPIO_PORT_0 #define UART1_TX_GPIO_PIN GPIO_PIN_4 #define UART1_RX_GPIO_PORT GPIO_PORT_0 #define UART1_RX_GPIO_PIN GPIO_PIN_5 #endif

3.编译项目并将FW下载到系统RAM中。这可以通过3个选项思想来完成:

- KEIL IDE by pressing the “Start/Stop Debug session button” twice

- SmartSnippets Toolbox(SST)Booter

- SST RF-Master Firmware Download tool

4.下一步是相应地配置SST。所以,打开SST和“板设置”。您应该为P0_0和P0_1选择UART配置。参见第4.1.1节与RF主站设置RX / TX测试模式以获取更多信息。

5。Now, you should be able to use the RF master!

Thanks, PM_Dialog

JCDR.
离线
Last seen:5个月2周前
加入:2019-12-19 09:10
Thanks for your response.

Thanks for your response.

我也遵循了这张教学。这在大多数时间工作,但由于未初始化的port_sel变量,结果不可靠。如果port_sel偶然不是零,则不会为UART操作配置端口引脚,并且通信不起作用。在文件夹SDK / 6.0.12.12.1020.2 / projects / target_apps / prod_test时,port_sel变量始于p0_0_and_p0_1_initialized_from_ext_tool常量。

SDK / 6.0.12.1020.2 /项目/ target_apps / prod_test $ eGrep -R port_sel
prod_test / src / config / user_periph_setup.h:extern uint8_t port_sel;
prod_test/src/platform/user_periph_setup.c:uint8_t port_sel __SECTION_ZERO("prodtest_uninit");
prod_test/src/platform/user_periph_setup.c: switch (port_sel)
prod_test/src/platform/user_periph_setup.c: switch (port_sel)

注意:由于某种原因,此问题更频繁地在DA14531“kit-usb”板上比DA14531“Kit-Pro”板上发生。

PM_Dialog
离线
Last seen:2天13小时前
职员
加入:2018-02-08 11:03
嗨Jean-Christian,

嗨Jean-Christian,

谢谢你的意见。我会在内部检查并测试您建议的解决方法。再次感谢您的投入!

Thanks, PM_Dialog