nimble源码学习——controller层任务循环分析

controller层任务

    接上一篇中说的controller层通过任务线程来实现一个事件的大循环。该循环以任务
的形式来处理event:host层发来的、controller层本身的一些事件。nimble遵循
host-controller interface transport协议,因此来自host层的event就不足为奇了,
至于controller层本身的事件,通过断点调试与Log打印发现的,但是对其还没有更
具体的分析。

controller层任务循环处打断点分析

    总的来说,使用keil断点调试用着还挺舒服的,可以随时断点分析程序流程,就是
中断处理的时候有点难受,一旦调试就很难就行连接了。断点调试后肯定影响radio等
外设了,会造成无法连接的。
    ble_ll.c文件,然后点击调试就可以啦,使用单步跳入和单步跳过进行分析。断点处是
从队列中获取到事件,而ble_npl_event_run(ev)则是运行对应回调的。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

controller层任务循环Log输出ev中一些数据

    Log输出,其实就是串口输出一些信息,便于调试以掌握程序运行流程。通过查看
ev结构体变量,可以发现其有三个变量,其中fn和arg很重要(回调函数与参数)。通过
Log打印处其中参数,来分析其意义。
**************现在觉的应该是信道切换的**********************,在此处打个断点看看,
最后一张图片应该可以说明这个吧,ble_ll_adv_event_done就是controller层的一个、
事件
 struct ble_npl_event *ev;
struct ble_npl_event
{
    bool queued;
    ble_npl_event_fn *fn;
    void *arg;
};

void
ble_ll_task(void *arg)
{
    struct ble_npl_event *ev;
#ifdef RIOT_VERSION
    ble_npl_eventq_init(&g_ble_ll_data.ll_evq);
#endif

    /* Init ble phy */
    ble_phy_init();

    /* Set output power to 1mW (0 dBm) */
    ble_phy_txpwr_set(MYNEWT_VAL(BLE_LL_TX_PWR_DBM));

    /* Tell the host that we are ready to receive packets */
    ble_ll_hci_send_noop();

    ble_ll_rand_start();

    while (1) {
        ev = ble_npl_eventq_get(&g_ble_ll_data.ll_evq, BLE_NPL_TIME_FOREVER);
        assert(ev);
        ble_npl_event_run(ev);
				if(ev->arg) rt_kprintf("%x %x\r\n",(*(int*)ev->arg),(*(int*)(ev->arg+4)));
    }
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结

    controller层的任务循环,就是不断地接受来自host层和controller层本身
的event。host层不用多说,规范中定义了,而controller层呢,这里猜测可
能是一个广播周期结束或者信道切换等。
    这就是我平时用的两种分析方法。哈哈
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: HP Nimble维护手册是一本详细说明如何维护和管理HP Nimble存储系统的文档。 在维护手册中,将会包括以下内容: 1. 硬件维护指南:介绍如何正确处理和更换存储系统的硬件组件,如磁盘驱动器、电源模块和风扇。这些指南将会包括详细的步骤和注意事项,确保维护人员能够正确、安全地操作存储系统。 2. 软件维护指南:涵盖了HP Nimble存储系统的软件维护方面,包括固件升级、系统设置和配置、网络连接和安全设置等。这些指南将会提供清晰的步骤和注意事项,以保证系统在正常运行的同时具备最新的功能和安全性。 3. 故障排除指南:提供在存储系统出现问题时的故障排除指导。从监测和诊断问题到解决方案的提供,这些指南将会帮助用户迅速恢复正常运行,并找到并解决潜在问题的根本原因。 4. 性能优化指南:通过优化存储系统的配置和设置,从而提高系统的性能和效率。这些指南将会提供性能监测、调整和优化的步骤,以确保存储系统能够最大程度地满足用户的需求。 总之,HP Nimble维护手册是一本详细说明如何维护和管理HP Nimble存储系统的指南。它提供了硬件维护、软件维护、故障排除和性能优化的指导,旨在帮助维护人员正确、安全地操作和管理存储系统,并确保其处于高效、可靠的状态。 ### 回答2: HP Nimble维护手册是一份为HP Nimble系统用户提供的指南,旨在帮助用户了解如何维护和保障系统正常运行。手册包含了系统的基本信息、安装和设置、故障排除、维护和保养等方面的内容。 首先,手册详细介绍了HP Nimble系统的基本信息,包括硬件和软件规格、系统组成部分以及与其他设备的兼容性等。用户可以通过这些信息了解系统的组成和功能,从而更好地进行维护和保养。 其次,手册提供了系统的安装和设置指南,帮助用户正确地安装和配置HP Nimble系统。这包括介绍系统的安装要求、步骤和注意事项,以及如何设置和管理存储卷、数据保护和备份等功能。 此外,手册还提供了故障排除的方法和步骤,以帮助用户解决系统出现的问题。用户可以根据手册提供的故障排查流程逐步查找和修复问题,从而确保系统的稳定性和可靠性。 最后,手册还介绍了系统的维护和保养方法,帮助用户正确地进行系统维护和定期保养。这包括对系统进行软件升级、硬件检查和清洁、性能监控等方面的指导,以确保系统的长期运行和优化性能。 总之,HP Nimble维护手册是一份详细而全面的指南,为用户提供了维护和保障系统安全运行的重要信息和方法。用户可以通过仔细阅读手册,了解并掌握系统的运行原理和维护流程,从而更好地管理和维护自己的HP Nimble系统。 ### 回答3: HP Nimble维护手册是一本提供用户关于HP Nimble存储设备维护的指南。它包含了关于设备的硬件和软件维护的详细信息,帮助用户正确地使用和维护HP Nimble存储设备,确保其性能和可靠性。 手册内容涵盖了多个方面,首先是硬件维护。它提供了有关如何正确连接和安装设备的指导,以及设备的基本硬件组件和连接线路的解释。此外,手册还介绍了如何进行设备的机械维护,例如风扇和电源的更换以及硬盘的安装和替换。 另外,软件维护也是手册的重要部分。它提供了有关如何更新设备固件和软件的说明,以确保设备始终能够运行在最新和最稳定的版本上。手册还包含了有关如何备份和还原设备配置以及数据的操作指南。 此外,手册还介绍了如何诊断和解决一些常见的设备故障和问题。它提供了针对故障排除的详细步骤,以帮助用户快速找到并解决问题。 总的来说,HP Nimble维护手册是一本非常重要的资源,它为用户提供了对HP Nimble存储设备的全面了解和管理。通过正确地使用和维护设备,用户可以最大限度地发挥设备的性能和可靠性,确保数据的安全和稳定性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值