Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我想知道在 STM32 的事件处理程序中通过函数指针调用函数是否安全。事件处理程序用于 I2C 并具有最高优先级。可以假设要调用的函数很快(只是一些字节重新排序)。
感谢您的任何提示或评论。
阿恩
如果函数指针已初始化,应该可以正常工作。我能想到的唯一问题是中断处理程序的常见问题 - 如果“字节重新排序”涉及从 tx/rx 缓冲区中删除/添加字节,则缓冲区管理必须是安全可中断的。
是的。
话虽如此,但存在一个潜在风险。您必须确保在激活事件处理程序时初始化函数指针。
通常,全局变量在调用 main 之前初始化,但如果事件处理程序在此之前处于活动状态,您可能会遇到麻烦。