Dbus ========== 概述 ---------- DBus(debug bus)是调试总线,用于测试芯片内部信号 功能特性 ------------- DBus 主要支持如下特性: - 包含4个总线域,acore、bcore、dcore以及pmm - 配置相对灵活,支持32个gpio同时采集32位总线数据 资源依赖 ------------- - GPIO 用法流程 ------------- - 初始化 :cpp:func:`wq_dbus_general_init` .. code-block:: c :linenos: /** * @brief 初始化设定的待获取的总线信号 * * @param conf 参考wq_dbus_config_t * @return 获取成功或者失败 */ void wq_dbus_general_init(const wq_dbus_config_t* conf); - 配置参数 :cpp:struct:`wq_dbus_config` .. code-block:: c :linenos: typedef struct { WQ_DBUS_DOMAIN dbus_domain; /*!< dbus域 */ uint8_t dbus_group; /*!< 调试总线所在组号 */ uint8_t dbus_sel; /*!< 调试总线片选号 */ uint8_t dbus_sub_sel; /*!< 调试总线内部信号选择信号 */ uint8_t dbus_gpio_cnt; /*!< gpio组数量 */ uint32_t dbus_mask; /*!< 32个gpio使能bit */ uint8_t dbus_gpio[DBUS_GPIO_CNT_MAX]; /*!< gpio组 */ } wq_dbus_config_t; - 读取信号值 :cpp:func:`wq_dbus_read` .. code-block:: c :linenos: /** * @brief 根据总线信息,读取信号值 * * @param group 调试总线所在组号 * @param dbus_sel 调试总线片选号 * @param sub_dbus_sel 调试总线内部信号选择信号 * @return 32位信号值 */ uint32_t wq_dbus_read(); uint32_t wq_dbus_read_status0(void); uint32_t wq_dbus_read_status1(void); 举例说明 ------------- - 例子 :cpp:func:`wq_dbus_config_sample` .. code-block:: c :linenos: void wq_dbus_config_sample(void) { /* configure parameters based on chip_debug_signal_list.xls*/ wq_dbus_config_t conf; conf.dbus_domain = WQ_DBUS_BCORE; conf.dbus_group = 4; conf.dbus_sel = 7; conf.dbus_sub_sel = 0; conf.dbus_gpio_cnt = 8; for(uint8_t i=0; i < conf.dbus_gpio_cnt; i++){ conf.dbus_gpio[i] = WQ_GPIO_46 + i; } conf.dbus_mask = 0x000000FF; /* config debug bus initilize */ wq_dbus_general_init(&conf); /* get current dbus value */ printf("dbus value:%d\n", wq_dbus_read()); } - 例子 :cpp:func:`wq_dbus_config_sample_scarab` .. code-block:: c :linenos: static void debugbus_sample_test(void) { wq_dbus_config_t wq_dbus_conf = { .dbus_domain = WQ_DBUS_BCORE, .dbus_group = 1, //.dbus_sel = 6, //.dbus_sub_sel = 0, .dbus_gpio_cnt = 8, .dbus_mask = 0x000000FF, .dbus_gpio[0] = WQ_GPIO_06, .dbus_gpio[1] = WQ_GPIO_07, .dbus_gpio[2] = WQ_GPIO_14, .dbus_gpio[3] = WQ_GPIO_15, .dbus_gpio[4] = WQ_GPIO_16, .dbus_gpio[5] = WQ_GPIO_17, .dbus_gpio[6] = WQ_GPIO_18, .dbus_gpio[7] = WQ_GPIO_19, }; wq_dbus_general_init(&wq_dbus_conf); } 注意事项 ------------- 若使用pmm gpio01观察pmm调试总线时,寄存器pmm_gpio01_obs_en和pmm_gpio01_obs_frc若之前有更改使用,需要恢复成默认配置。 API 介绍 ------------ .. doxygenfile:: wq_dbus.h