【发布时间】:2010-01-23 04:40:09
【问题描述】:
我想知道是否有人知道我可以在网上购买或下载用 C 或 C++ 编写的软件模块,用于微处理器和其他组件(如 DAC、ADC 或 UART)之间的交互。有点像嵌入式 C 软件的 git-hub。这个地方存在吗?
【问题讨论】:
-
哪个芯片厂商?
-
通常这类库是免费的。您可以在“芯片支持库”或简称 CSL 的名称下找到它们。
我想知道是否有人知道我可以在网上购买或下载用 C 或 C++ 编写的软件模块,用于微处理器和其他组件(如 DAC、ADC 或 UART)之间的交互。有点像嵌入式 C 软件的 git-hub。这个地方存在吗?
【问题讨论】:
您可能正在寻找称为“板级支持包”或BSP 的东西。对于给定的操作系统,它将有一系列驱动程序/库来帮助您与硬件组件进行通信。
也就是说,一些标准的硬件接口,例如16550 Uart可能有操作系统自带的驱动。
【讨论】:
您可能还想看看Jean Labrosse's "Embedded Systems Building Blocks" 的书。它有一些直接的 C 库,用于处理 UART、模拟 I/O、定时器等。
当然,您仍然需要将它们连接到实际芯片的硬件实现(正如其他答案所表明的那样,您通常可以从芯片供应商那里获得库来帮助),但它们可以是一个方便的包装器让您更轻松地将更高级别的软件从一台设备移动到另一台设备。没有什么惊天动地的事情是靠你自己特别难以完成的,但它就在那里,所以为什么不呢?即使它不是你想要的,它也是一个优势。
【讨论】:
通常设备制造商会为您提供可用于所有低级内容的 libc。
【讨论】:
首先,决定选择哪家芯片制造商...接下来,访问他们的官方网站或联系他们,您将获得支持的 IO 和其他通信内容的库。
【讨论】:
好吧,TI 怎么样? BSP 是我所知道的,但对于存在于 O/S 级别以下的软件,它们并不真正存在。
第二,假设我想要使 TI MSP430 微控制器与 DAC7565 对话的软件。我真的找不到以任何可靠方式将这两者联系起来的软件。
我说的是一个完整的软件包,相当于 Ruby 中的 gem,我可以在其中调用诸如“OutputVoltage(unsigned int voltage, unsinged int channel)”之类的函数,而无需考虑硬件实现。
@nobugz 是的,我同意,但这是非常克制的。 C 应该像 Ruby 一样,您可以只专注于自己想做的事情,而不必因为软件的可用性而花时间限制自己......
【讨论】:
@Shaihi
我不是,我是一家工程公司的软件工程师,他们定制设计自己的电路板。我简直不敢相信,在整个世界和整个软件工程历史上,我是第一个需要连接这个微控制器和这个 DAC 的人。所以因此它必须存在于某个地方。也许我无法得到它,但有人,在某个地方以前做过。
我是一名非常年轻的工程师,但似乎有成百上千的人最终一次又一次地编写相同的软件。最重要的是,由于有很多软件工程师非常擅长抽象和重用,我敢打赌,有很多工程师最终会一次又一次地重写相同的软件,因为他们的软件write 与该特定应用程序的耦合过于紧密。
这似乎是对工程时间的巨大浪费。
【讨论】:
您是否查看了 A/D 供应商网站上的应用说明?他们经常有 C 代码。汇编语言代码的问题在于,有太多不同的 ADC 和微处理器供应商以及太多不同的连接芯片的方法,以至于它们无法提供通用库。此外,程序员可能希望轮询转换结束标志或允许芯片在转换完成时中断。它是非常特定于应用程序的。您最大的希望是供应商有一些示例代码,可以作为如何使用芯片的指南。好消息是这些外围设备的用户手册比 20 年前要好很多。
此外,供应商可能有应用工程师来帮助您进行设计。
【讨论】: