你好,我有个关于主回路的问题。我找不到返回回调函数如:app_on_init, app_on_system_powered…我正在阅读示例ble_app_peripheral在SDK 5.0.4
嗨Thanhtu131,
所有回调函数都位于user_callback_config.h头文件中。在.app_on_init中注册了user_app_init()回调函数。源代码可以在user_peripheral.c文件中找到。在SDK的ble_app_peripheral示例中的.app_on_system_powered中,没有注册回调,这就是为什么是NULL。但是,您可以注册自己的回调函数。
谢谢,PM_Dialog
谢谢你的回答。但是我在项目中找不到函数rwip_schedule()的引用。它在BLE堆栈中吗?
在本例中,在函数schedule_while_ble_on()中,我看到了user_app_main_loop_callbacks。app_on_ble_powered = Null开始。所以主循环将离开do-while循环并尝试睡眠。什么可以使函数poiter user_app_main_loop_callbacks。app_on_ble_powered != Null,系统将保持活动?
rwip_schedule()的源代码在ROM中,所以您无法找到它。在主循环的活动部分中,将通过调用rwip_schedule()授予内核控制权,并且只要需要处理消息和事件,它就会保持控制权。对rwip_schedule()的调用发生在schedule_while_ble_on()中,因为内核要求BLE硬件处于活动状态以处理消息。在schedule_while_ble_on()中,应用程序也通过user_app_main_loop_callbacks被授予控制权。app_on_ble_powered函数指针。如果BLE根据app_on_ble_powered的返回值保持活动状态,应用程序可以强制主循环停留在schedule_while_ble_on()内。如果应用程序和内核都允许scheduler_while_ble_on()返回,控制将通过app_asynch_proc()函数和user_app_main_loop_callbacks再次授予应用程序。app_on_system_powered函数指针。请参阅7.1节中的主回路和睡眠模式UM-B-051: DA14580软件平台参考(SDK5)文档。
谢谢,我已经看了文件,我正在努力把它看清楚。我想问一个函数arch_printf_process()。是在罗马书里吗?
arch_printf_process() API的源代码可以在arch_console.c中找到,它位于sdk\platform\core_modules\arch_console sdk路径下。
谢谢你的解释。我还有另一个问题:函数SetWord16()和SetBits16()的操作是什么?我在SDK中找不到它们的引用和定义。
Hi Thanhtu131,它将一个单词和位设置为16位寄存器。谢谢,PM_Dialog
谢谢
嗨Thanhtu131,
所有回调函数都位于user_callback_config.h头文件中。在.app_on_init中注册了user_app_init()回调函数。源代码可以在user_peripheral.c文件中找到。在SDK的ble_app_peripheral示例中的.app_on_system_powered中,没有注册回调,这就是为什么是NULL。但是,您可以注册自己的回调函数。
谢谢,PM_Dialog
谢谢你的回答。但是我在项目中找不到函数rwip_schedule()的引用。它在BLE堆栈中吗?
在本例中,在函数schedule_while_ble_on()中,我看到了user_app_main_loop_callbacks。app_on_ble_powered = Null开始。所以主循环将离开do-while循环并尝试睡眠。什么可以使函数poiter user_app_main_loop_callbacks。app_on_ble_powered != Null,系统将保持活动?
嗨Thanhtu131,
rwip_schedule()的源代码在ROM中,所以您无法找到它。在主循环的活动部分中,将通过调用rwip_schedule()授予内核控制权,并且只要需要处理消息和事件,它就会保持控制权。对rwip_schedule()的调用发生在schedule_while_ble_on()中,因为内核要求BLE硬件处于活动状态以处理消息。在schedule_while_ble_on()中,应用程序也通过user_app_main_loop_callbacks被授予控制权。app_on_ble_powered函数指针。如果BLE根据app_on_ble_powered的返回值保持活动状态,应用程序可以强制主循环停留在schedule_while_ble_on()内。如果应用程序和内核都允许scheduler_while_ble_on()返回,控制将通过app_asynch_proc()函数和user_app_main_loop_callbacks再次授予应用程序。app_on_system_powered函数指针。请参阅7.1节中的主回路和睡眠模式UM-B-051: DA14580软件平台参考(SDK5)文档。
谢谢,PM_Dialog
谢谢,我已经看了文件,我正在努力把它看清楚。我想问一个函数arch_printf_process()。是在罗马书里吗?
嗨Thanhtu131,
arch_printf_process() API的源代码可以在arch_console.c中找到,它位于sdk\platform\core_modules\arch_console sdk路径下。
谢谢,PM_Dialog
谢谢你的解释。我还有另一个问题:函数SetWord16()和SetBits16()的操作是什么?我在SDK中找不到它们的引用和定义。
Hi Thanhtu131,它将一个单词和位设置为16位寄存器。谢谢,PM_Dialog
谢谢