跳到主要内容

prod_test uninitalized port_sel.

1年前

prod_test uninitalized port_sel.

张贴了JCDR.0分 3回复
0旋转

你好,

我通过了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;

此致。

Jean-Christian de Rivaz

1年前

PM_DIALOG.

嗨Jean-Christian,

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

1.请打开prod_test项目,没有SDK6.0.12提供的任何修改。\

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

/ **************************************************************************** // * UART引脚配置* / / **************************************************************************** / / **************************************************************************** / / * config_uart_gpios * / / * --definedUART端口/引脚由外部工具定义* / / * -undefined UART端口/引脚在当前项目中定义* / / **************************************************************************** / #undef config_uart_gpios / ******************************************************************************** / * UART引脚配置* / / *支持的端口/引脚组合:* / / * 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 * // **************************************************************************** / #f定义(__ da14531__)#define uart1_tx_gpio_port gpio_port_0 #define uart1_tx_gpio_pin gpio_pin_0#定义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

- SmartSnippets Toolbox(SST)Booter

- SST RF-Master固件下载工具

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

5.现在,你应该能够使用RF主人!

谢谢,PM_DIALOG.

1年前

JCDR. 0分

感谢您的答复。

我也遵循了这张教学。这在大多数时间工作,但由于未初始化的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”板上发生。

1年前

PM_DIALOG.

嗨Jean-Christian,

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

谢谢,PM_DIALOG.