哪里可以获得嵌入式组件的软件?

发布于 2024-08-18 16:52:37 字数 113 浏览 1 评论 0原文

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

I'm wondering if anyone knows of a place on the web that I can purchase or download software modules, written in C or C++, for the interaction between microprocessors and other components, like DACs, ADCs, or UARTs. Sort of like a git-hub for embedded C software. Does this place exist?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

顾冷 2024-08-25 16:52:37

您可能正在寻找称为“董事会支持包”或BSP的东西。对于给定的操作系统,它将有一组驱动程序/库来帮助您与硬件组件进行通信。

也就是说,一些标准硬件接口(例如 16550 Uart)可能具有操作系统附带的驱动程序。

You're possibly looking for something called a 'board support package' or BSP. For a given operating system it will have a collection of drivers / libraries to help you communicate with the hardware component.

Saying that, some standard hardware interfaces for e.g. 16550 Uart might have drivers that come with the OS.

盛夏尉蓝 2024-08-25 16:52:37

您可能还想看看Jean Labrosse 的“嵌入式系统构建模块”一书。它有一些直接的 C 库用于处理 UART、模拟 I/O、定时器等。

当然,您仍然需要将它们连接到实际芯片的硬件实现(正如其他答案所示,您通常可以获取以下库)芯片供应商的帮助),但它们可以是一个方便的包装器,让您更轻松地将更高级别的软件从一个设备移动到另一个设备。没有什么惊天动地的事情是你自己做起来特别困难的,但它就在那里,所以为什么不呢?即使这并不完全是您想要的,但它还是有优势的。

You might also want to take a look at Jean Labrosse's "Embedded Systems Building Blocks" book. It has some straight C libraries for dealing with UARTs, Analog I/O, timers, etc.

Of course, you do still need to wire them up to the actual chip's hardware implementation (as other answers have indicated, you can usually get libs to help with that from the chip vendors), but they can be a convenient wrapper to let you more easily move your higher level software from one device to another. There's no earth-shattering stuff that would be particularly difficult to do on your own, but it's there for the taking, so why not? Even if it's not exactly what you might want, it's a leg up.

歌入人心 2024-08-25 16:52:37

通常,设备制造商会为您提供一个可用于所有低级内容的 libc。

Normally the device manufacturer will supply you with a libc that you can use for all the low-level stuff.

束缚m 2024-08-25 16:52:37

首先,决定选择哪个芯片制造商...接下来,访问他们的官方网站或联系他们,您将获得支持的 IO 和其他通信内容的库。

first, decide which chip manufacturer to go for... next, go to their official site or contact them, you would get the libs for the supported IO's and other communication stuffs.

好的,那么 TI 呢?我知道 BSP,但对于操作系统级别以下的软件来说,它们并不真正存在。

第二,假设我想要软件使 TI MSP430 微控制器与 DAC7565 对话。我真的找不到以任何可靠的方式将这两者联系起来的软件。

我说的是一个完整的软件包,相当于 Ruby 中的 gem,我可以在其中调用“OutputVoltage(unsigned int 电压,unsinged int 通道)”之类的函数,而无需考虑硬件实现。

@nobugz 是的,我同意,但这是非常限制性的。 C 应该像 Ruby 一样,你可以只专注于你想做的事情,而不必花时间因为软件的可用性而限制自己......

Ok what about for TI? BSPs are something I'm aware of, but they dont' really exist for software that exists below the O/S level.

2nd, lets say I wanted to wanted software to make the TI MSP430 Microcontroller talk to DAC7565. I realy can't find software that relates those two in any reliable way.

I'm talking about a complete software package, something equivalent to a gem in Ruby, where I could call functions like "OutputVoltage(unsigned int voltage, unsinged int channel)" and be oblivious to the hardware implementation.

@nobugz Yes, I agree, but that is awfully restraining. C should be like Ruby where you can only focus on what you want to do, not having to spend time restricting yourself because of the availability of software...

天生の放荡 2024-08-25 16:52:37

@Shaihi

我不是,我是一家工程公司的软件工程师,他们定制设计自己的电路板。我简直不敢相信,在整个世界和整个软件工程历史上,我是第一个需要连接这个微控制器和这个 DAC 的人。所以它必须存在于某个地方。也许我无法亲自动手,但有人在某个地方已经做到了。

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

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

@Shaihi

I'm not, I am a software engineer with an engineering firm who custom design their own boards. I just can't believe that across the entire world and the entire history of software engineering that I am the first person who needs to interface this microcontroller and this DAC. SO therefore it must exist someplace. Maybe I can't get my hands on it but someone, somewhere has done it before.

I'm a very young engineer, but it just seems like there are hundreds or thousands of guys who end up writing the same software again and again. And on top of that, since there are plenty of software engineers who are terribly good at abstraction and reuse, I'm willing to bet there are plenty of engineers who end up re-writing the same software time and time again because the software they write is way too tightly coupled to that specific application.

Just seems like a giant waste of engineering hours.

究竟谁懂我的在乎 2024-08-25 16:52:37

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

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

Did you check the application notes on the A/D vendor's web site? They very often have C code. The problem with assembly language code is that there are so many different ADC and microprocessor vendors and so many different ways to wire up the chip that they can't provide a general purpose library. Also, a programmer may want to poll the end-of-conversion flag or allow the chip to interrupt when the conversion is complete. It is very application specific. Your best hope is that the vendor has some example code that will serve as a guide for how to use the chip. The good news is that user's manuals for these peripherals are a lot better than they were 20 years ago.

Also, the vendor probably has application engineers who will help you with your design.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文