gpt4 book ai didi

arm - 无中断嵌入式编程

转载 作者:行者123 更新时间:2023-12-02 12:14:56 25 4
gpt4 key购买 nike

我从来没有相信我会在 2017 年处于这个位置,但我有一个目标系统 (LPC2138),它绝对拒绝处理中断,尽管我做了很多尝试。由于各种原因,我确实需要使用它,所以这只是继续使用它的问题。该应用程序“中断友好”,具有多个异步 I/O 流(SPI、UART)以及定时器信号。对我有利的一件事是,与我的实时要求相比,处理器的速度非常快,因此我有足够的空闲资源可用。

我坚持的方法是在一个大轮询循环中完成所有事情,其中​​包括 3 个 FIFO 来处理 I/O。乍一看似乎可行,有人根据经验提出任何评论吗?

中断问题并不是微不足道的,直接从网络上获取的 100% 平台兼容的 hello world 片段无法工作,当它们在困惑状态下运行时系统崩溃。如果有人知道某处确实有一个明确的专家修复,那么将不胜感激。

最佳答案

在不了解您的应用程序和目标平台的情况下,我无法给您明确的答案!

但是,您要求根据经验发表评论。这里是:-)

  1. 您提到了实时要求。不间断地工作实际上可以帮助解决这个问题!当我们做具有硬实时要求的项目时,我们没有使用中断。假设我们正在处理传入的数据流,并且正好有 20 us 来处理一个单词,否则我们会错过下一个单词,并且就在处理一个单词的过程中,我们被中断了。砰!丢了下一张。所以我们做了很多民意调查。在不同的应用程序中,设计决策可能会有所不同,使用中断来处理时间关键的工作,但会牺牲非实时代码等。我当时工作的商店的理念是非常反干扰。

  2. 轮询可能会“浪费”一些资源(不是真正的浪费,因为你必须这样做:-))。但你提到你的处理器足够快。如果您可以满足速度要求,请享受轮询。在很多方面,它比中断更容易处理。您的程序可以更好地控制何时发生什么。

  3. 先进先出 (FIFO) 很好。它们降低了您的实时要求。

  4. 我根本不知道你的硬件设计,但如果你有一个逻辑芯片和一个灵活的硬件工程师(好吧,这是一个矛盾:-))你可以路由一些输入等等通过硬件并使用硬件逻辑来处理您的一些简单要求,并为您提供一个接口(interface),使编写程序更容易(例如,可以是针对您的特定需求优化的某种 FIFO,或者是一个轮询寄存器,为您提供一次性提供几条信息等)

所以,加油吧!您将学习一种全新的方法,甚至具有一些优势。

关于arm - 无中断嵌入式编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45973255/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com