我想了解事件驱动固件的代码。固件由许多模块组成,我可以理解它们提供的接口。
固件通过间接函数调用和事件进行工作。每当发生事件(例如中断或其他模块发布到队列的消息)时,事件处理程序都会在队列中发布消息。该消息包含指向该事件的实际处理程序的函数指针,以及运行该处理程序的其他相关数据。事件处理程序可以使用上述机制再次引发其他事件。
主要代码仅检查关联队列中的事件,然后执行它们(通过运行间接函数调用)。有不同的队列来处理不同优先级的事件。
如何最好地理解和分析此代码?我需要了解此代码,以便添加新功能并修复现有的错误。
在这种情况下是否可以生成程序的调用图?该代码用C编写。
记录此固件行为的最佳方法是什么?