请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TMS320C6748 工具/软件:TI-RTOS
请不要说“从不”!!!
显然、如果任务将被阻止、从任务外部调用 pend()将是鲁莽的、但如果计数为1或更多、那么它不会被阻止、是否可以调用它? 目前、我有一个项目在执行此操作、它可以正常工作、但我想确保它的安全性、而不仅仅是幸运。
如果你想知道为什么有人会做这样一件奇怪的事情,这就是它的出现方式。 该程序使用 SPI1从 两个不同的任务中访问两个不同的器件(闪存和 ADC)、并且需要保证 对 SPI 的独占访问、因此它使用 一个初始计数为1 的信标作为互斥量。 到目前为止、非常好。 然后、在 调用 BIOS_start()之前、我们需要从主函数中读取闪存中的内容; 读取闪存的函数在信标上挂起、读取闪存、然后发布信标。 因此(一开始未意识到) 该函数从 main 调用一次 、然后在 任务之后重复调用一次。
它的工作原理是! 但应该这样吗? 不用说,如果我不得不的话,我可以调整方案,但这在现阶段是一场巨大的动荡。
谢谢
罗伊