prod_test未初始化port_sel

⚠️
大家好. .感谢来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台的过程中,它将提供更好的功能,并包含在主对话网站。所有的帖子和账号已经迁移。我们现在只接受新论坛的流量-请发布任何新的帖子在//www.xmece.com/support.我们会在接下来的几天修复bug /优化搜索和标记。
4个职位/ 0个新职位
最后发表
jcdr
离线
最后看到:11个月,2个星期前
加入:2019-12-19分
prod_test未初始化port_sel

你好,

我花了几天时间来弄清楚为什么DA14531 prod_test不能在Development Kit-Pro和Development Kit-USB上可靠运行,如果通信配置为TX=P0_0和RX=P0_1。我发现用于设置UART引脚的port_sel变量没有初始化。在大多数情况下,包含port_sel变量的内存中包含一个与P0_0_AND_P0_1_INITIALIZED_FROM_EXT_TOOL常量匹配的零值,应用程序按照预期工作。但有时,内存包含一个非零值,应用程序通信失败。

通过在文件user_peripher_setup .c的函数peripher_init()的开头添加以下代码,我成功地解决了这个问题:

port_sel = UART_PORT_SEL;

并将这一行添加到user_peripher_setup .h中,就在enum的定义之后:

#定义UART_PORT_SEL P0_0_AND_P0_1_INITIALIZED_FROM_EXT_TOOL;

致以最亲切的问候。

Jean-Christian de Rivaz

关键词:
设备:
PM_Dialog
离线
最后看到:4天22小时前
工作人员
加入:2018-02-08 11:03
嗨Jean-Christian,

嗨Jean-Christian,

请参考AN-B-077: DA14531蓝牙直接测试模式申请说明来自DA14531支持网页。您将发现在P00和P01上从两线UART模式运行prod_test时应该遵循的适当步骤和配置。非常感谢您的意见和反馈,但是您提到的修改是不需要的。只需遵循以下步骤。我用DA14531 Pro-DK在我这边测试了它。

1.请按照SDK6.0.12提供的方式,在没有任何修改的情况下打开prod_test项目。\

2.在user_peripher_setup .h中,请按如下方式更改gpio配置。有关更多信息,请参考AN的4.1软件安装。

/****************************************************************************/ /* UART销配置  */ /****************************************************************************/ /****************************************************************************/ /* CONFIG_UART_GPIOS * / / *定义Uart接口* / /针是由外部工具/ *定义Uart港口/针在当前项目中定义  */ /****************************************************************************/ # undef CONFIG_UART_GPIOS  /****************************************************************************/ /* UART销配置* / / *支持端口/销组合:* / / * Tx: P00,处方: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  */ /****************************************************************************/ # 如果定义(__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其他# # 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下载到System-RAM中。这可以通过3个选项来实现:

- KEIL IDE按“启动/停止调试会话按钮”两次

SmartSnippets工具箱(SST)启动器

- SST RF-Master固件下载工具

4.下一步是配置相应的SST。因此,打开SST和“Board Setup”。您应该为P0_0和P0_1选择UART配置。有关更多信息,请参阅4.1.1节使用RF Master设置Rx/Tx测试模式。

5.现在,您应该能够使用射频主控了!

谢谢,PM_Dialog

jcdr
离线
最后看到:11个月,2个星期前
加入:2019-12-19分
谢谢你的回复。

谢谢你的回复。

我也遵循了这一指示。这在大多数情况下是可行的,但由于port_sel变量未初始化,结果不可靠。如果port_sel碰巧不为零,则端口引脚永远不会配置为UART操作,通信也不会工作。在SDK/6.0.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/projects/target_apps/prod_test$ egrep -r port_sel
prod_test / src / config / user_periph_setup.h:走读生uint8_t port_sel;
prod_test / src /平台/ user_periph_setup.c: uint8_t port_sel __SECTION_ZERO(“prodtest_uninit”);
prod_test / src /平台/ user_periph_setup.c:开关(port_sel)
prod_test / src /平台/ user_periph_setup.c:开关(port_sel)

注意:由于某些原因,这个问题在DA14531“Kit-USB”板上比在DA14531“Kit-Pro”板上更经常发生。

PM_Dialog
离线
最后看到:4天22小时前
工作人员
加入:2018-02-08 11:03
嗨Jean-Christian,

嗨Jean-Christian,

谢谢你的建议。我将在内部检查并测试您建议的解决方案。再次感谢您的输入!

谢谢,PM_Dialog