获取嵌入式组件软件的地方是什么?

6

我想知道有没有一个网站可以购买或下载用C或C++编写的软件模块,用于微处理器和其他组件之间的交互,例如DAC、ADC或UART等。就像嵌入式C软件的git-hub一样。这样的地方存在吗?


哪个芯片制造商? - Mark Elliot
1
通常这类库都是免费的。你可以在“芯片支持库”或简称“CSL”下找到它们。 - Nils Pipenbrinck
7个回答

3
你可能在寻找称为“板支持包”或BSP的东西。对于给定的操作系统,它将拥有一系列驱动程序/库,以帮助您与硬件组件通信。
话虽如此,例如16550 Uart的某些标准硬件接口可能会带有随操作系统提供的驱动程序。

2
您可能还想看一下Jean Labrosse的“嵌入式系统构建块”书。它有一些用于处理UART、模拟I/O、定时器等的纯C库。
当然,您仍然需要将它们连接到实际芯片的硬件实现上(正如其他答案所指出的,您通常可以从芯片供应商那里获得帮助),但它们可以作为一个方便的包装器,让您更轻松地将高级软件从一个设备移植到另一个设备。没有什么特别难以自己完成的重大突破性内容,但是这是可以利用的,为什么不呢?即使它不完全符合您的要求,也是一个很好的起点。

1
通常设备制造商会提供一个libc,你可以用它来处理所有底层的东西。

0
你有没有查看A/D供应商网站上的应用笔记?它们通常会提供C代码。使用汇编语言的问题在于,有许多不同的ADC和微处理器供应商以及许多不同的芯片连接方式,因此他们无法提供通用库。此外,程序员可能希望轮询转换结束标志或允许芯片在转换完成时中断。这非常具体于应用程序。你最好的希望是供应商有一些示例代码,可以作为如何使用芯片的指南。好消息是,这些外设的用户手册比20年前要好得多。

此外,供应商可能有应用工程师来帮助您设计。


0
首先,决定要选择哪个芯片制造商...然后,前往他们的官方网站或联系他们,您将获得支持的IO和其他通信材料的库。

3
这种逆向做法有很多值得探讨的地方。 - Hans Passant
@nobugz:抱歉,我无法理解您的评论...您能否详细说明一下? - wrapperm
首先找出有很多可用库支持的芯片,然后再做购买决策。 - Hans Passant

0

好的,那么对于TI呢?我知道BSP是什么,但它们并不存在于操作系统以下的软件中。

第二,假设我想要编写软件让TI MSP430微控制器与DAC7565通信。我真的找不到可靠地将这两者联系起来的软件。

我所说的是完整的软件包,类似于Ruby中的gem,我可以调用像“OutputVoltage(unsigned int voltage, unsinged int channel)”这样的函数,而对硬件实现则毫不在意。

@nobugz是的,我同意,但这太过限制了。C应该像Ruby一样,你只需要关注自己想做的事情,而不需要因为软件的可用性而浪费时间限制自己...


你正在把评论放在回答框里。这不是SO的运作方式。 - Craig McQueen

0

@Shaihi

我不是,我是一名软件工程师,与一家自定义设计自己的板子的工程公司合作。我只是无法相信,在整个世界和软件工程的整个历史中,我是第一个需要接口这个微控制器和这个DAC的人。因此,它必须存在于某个地方。也许我不能亲自动手,但是有人在某个地方已经做过了。

我是一名非常年轻的工程师,但似乎有成百上千的人一遍又一遍地编写相同的软件。而且,由于有很多软件工程师非常擅长抽象和重用,我愿意打赌,有很多工程师一次又一次地重新编写相同的软件,因为他们编写的软件与特定应用程序过于紧密耦合。

看起来就像是巨大的工程时间浪费。


这就是闭源代码的工作方式(至少是我所知道的)。您可以在嵌入式Linux存储库中查找驱动程序,如果您有使用它的人将BSP放在主线上,您可以联系他从他那里购买硬件或仅采用实现。例如,我知道在Windows CE中,您最终会编写大量新代码。我们有一个内部项目可以减少工作量,但由于这不是我们的主要业务,因此我们不出售它。我不熟悉任何人这样做。 - Shaihi
我猜你发这个问题是想找知道做这个的公司,所以请忽略我的评论 :) - Shaihi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接