【问题标题】:Balanced processor/SOC (?) for small embedded system running linux用于运行 linux 的小型嵌入式系统的平衡处理器/SOC (?)
【发布时间】:2012-08-17 15:23:37
【问题描述】:

所以,我知道在考虑较小规模的嵌入式系统时,Linux 内核相当“重”,但目前我们是一个 2 人团队,试图了解如何创建自己的嵌入式系统。 我是所有软件的负责人(另一个人是硬件人),因此我想尽可能地重用现有的库和框架,我想与周围的大师们一起提出一些想法在这里。

我在 Linux 中相当自如,但引导和初始化过程对我来说是新的,我需要尽快深入了解。也欢迎任何书籍推荐! 我之前没有设计过任何嵌入式系统。。只拥有一些 ARM 开发板(beagleboard 和 raspberry pi)。

目前我已经有了在 beagleboard 上运行的软件原型,现在我们正在考虑如何将成本降到最低,并创建我们自己的东西..

这是一个连接到互联网的系统,我需要运行一个带有一些脚本支持的小型 Web 服务器。性能方面,我认为它不需要太强大。

我想尽量减少所有引导加载程序等工作,因为我是一个单人软件团队,只专注于应用程序本身。 当然我知道我需要为此配置我们的内核,但这确实是为什么我认为选择一些 SoC 会很好,因为它们通常已经准备好一些 linux 和引导加载程序..

首先我认为 Cirrus EP9301 会是完美的,因为它似乎是一个很好的包装,而且不是很贵.. 但是它似乎已经报废了,而且对此的支持也很糟糕( cirrus 论坛上的人经常抱怨它)。

这类项目是否有一些不错的选择,可以让我们“轻松”启动并运行 linux 内核,同时仍然保持某种体面的 BOM(希望 20 美元左右)?

【问题讨论】:

  • 我不是网络人,但我会以相反的方式开始。检查有什么样的免费软件。以太网驱动程序 + TCP/IP 协议栈。然后检查是否有支持该驱动程序的“高级”、有点现代的 CPU。然后决定是否需要操作系统。
  • 卢丁,感谢您的评论。我认为这正是我的想法(尽管不是您建议的其他方式),尝试找到一个 SoC,它已经为它配置了一些 linux 并且可以工作,然后我知道我只需要使内核适应我们的配置,我也可以有一个参考... 反过来思考对我来说非常具有挑战性,因为这对我来说仍然是全新的...

标签: linux linux-kernel embedded embedded-linux system-on-chip


【解决方案1】:

您还可以查看 Olimex 使用他们的 linux 板所做的工作。甚至可以订购 som,然后将其与其他外部组件结合使用。

【讨论】:

    【解决方案2】:

    您的硬件人员应该已经知道这一点,但请使用现有的参考设计。使用 raspberry pi、beagleboard/bone、open-rd 或任何数量的其他现有系统并克隆您需要的部分。因此,Linux 移植将是从参考设计中删除您未使用的内容,而不是添加新内容并希望它有效。如果您使用扁平包装零件,您可以在车库中完成工作,如果您使用 bgas,则需要设备或花钱请人来做。 (你能说我讨厌 bgas 吗?)。

    Linux 是必需的吗,如果不是,这为更多使用 freertos 或 chibios 或许多其他解决方案的设备打开了大门。例如,stm32f4 发现板是 20 美元,它使用几乎不能称为微控制器的所有功能(cortex-m4)。据说可以在 cortex-m 上运行 uclinux,但绝对可以运行任意数量的 rtose 并拥有一个 ip 堆栈等。 Stellaris (ti.com) 有许多评估板,其中一个/一些已经带有以太网(用作参考设计)。您还可以采用 wiznet 方法(或 spi 以太网)并使用任何微控制器(使您进入 avr/msp430 级别和价格范围)。物有所值,皮质-m 很好,基于手臂,使用起来很舒服,等等。

    如果您还没有移植到嵌入式平台的经验,并且不想在此过程中学习,那么使用 linux,我肯定会使用现有设计的克隆,尽可能多地利用与在将 linux 移植到平台方面经验丰富的人一起进行项目。如果需要使用现有的板(beagle/raspi/openrd)并通过可以访问现有端口的备忘单完成移植到平台的动作,看看你是否无法移植 uboot 和 linux 引导等。(根本不需要 uboot,这可能是一个不必要的复杂化,只需启动 dram 并将 atags 等传递给 linux 并分支到它,从裸机启动 linux 非常容易)。

    【讨论】:

    • 我同意这一切。作为一个中间步骤,可能值得找到一个模块上系统板制造商,该制造商配备您想要使用的 CPU,并构建您自己的匹配板以与之匹配 - 这样您就可以快速启动和运行 -使用有效的引导加载程序和内核,然后使用您自己的 CPU 模块降低成本。引导加载程序在各种情况下都很有用——尤其是在促进软件升级方面。查看 [barebox.org/](Barebox) 作为 u-boot 的更易破解的替代品。
    • 我想提及这些以及解决方案,但问题是这些模块对于所需的价格来说已经太贵了。当然,作为中间步骤,这些模块为更多已经在运行的系统打开了大门。
    • embeddedarm.com 是已经运行 linux 的主板的另一个地方,尤其是如果您正在寻找 cirrus 芯片,我认为他们使用一些 cirrus 和一些 cavium。
    • 感谢您的建议。是的,对我来说,使用 linux 的负担更小(也许只是在我的脑海里),因为它对我来说已经很熟悉了。此外,由于我的应用程序使用带有一些脚本的网络服务器,并且我需要一个地方来存储一些数据,因此使用一些已经“手头”的工具感觉更容易。 Beagle 确实是很好的参考,但那里的 SoC 相当昂贵。如果考虑从 TI3525 转移到较低规格的 TI3352,你知道我应该考虑什么吗?我的意思是作为一个软件人.. 我也会让我的硬件人看看差异。
    • @julumme 您需要考虑的一个因素是您是否真的可以购买芯片。 OMAP 系列的大多数成员都针对大容量的移动设备——通常是数百万台。 TI 的Sitara 系列是为工业用途而封装的 OMAP 技术 - 通常具有更方便的 IO,并且可能是更适合您的选择。您可以通过分销轻松获得这些部件,而 OMAP 系列仅可从 TI 直接获得 - 并且仅限于主要 OEM。
    【解决方案3】:

    您可能比将 Broadcom BCM2835(在 Raspberry Pi 上使用)作为您的起点更糟糕,尤其是如果您想避免内核和引导加载程序工作以及参考原理图的来源。如果这被证明太贵,请查看 Broadcom 系列中的其他设备。

    一些建议

    • 您可能需要一些闪存而不是用于生产用途的 MMC 卡接口。 eMMC 是一种选择。 NAND 闪存是一场噩梦,因为组件快速过时,并且需要自己使用 MTD 驱动程序并弄脏。
    • USB 以太网比挂在通用总线上的控制器更容易集成,但性能不佳。 SMSC 似乎是两者的流行来源

    【讨论】:

    • Marko,我也有同样的想法,但我猜 BCM2835 一定很贵,因为它有 GFX 加速器等等。我在 Broadcom 网站上也找不到任何提及 (? ) 你知道从哪里可以得到它吗? (评估 BOM 成本)我喜欢 Cirrus 网站,因为他们的网站上有所有文档和内核源代码。但 Broadcom 似乎并不那么开放。:/ 是的,您对存储的看法也是正确的内核,学习这在我的待办事项清单上;)我什至还没有考虑过以太网......谢谢你的提示!
    • 据我了解,它是堆叠的两个 bga,所以我假设您需要一个好的组装车间或非常大的体积来处理 bga 问题。当然,这些都是相对较小的部件,热量不多,所以可能不是我通常处理的电路板和部件的问题
    • @dwelch 同意 - POP 存储器更昂贵,需要更多专业组装 - 从而减少了您的制造选择。在某种程度上,这就是为什么我建议在 Broadcom 范围内寻找不那么复杂的东西的原因。 TI Sitara 系列 SoC 也值得一试。
    • 我认为 bgas 目前确实不在我们的车库范围内;) Marko,TI 的 Sitara 系列看起来很有趣,soc 价格有点偏高,但至少确实有参考价值板.. 尤其是 3352 引起了我的注意。从 Broadcom 的选择来看,它们似乎具有不错的 cpu 性能范围,但除此之外,它们似乎针对的是非常特定的需求(路由器、电视等)..
    • @Julumme 关于人们使用 BGA 组装 PCB 的故事,他们只使用厨房烤箱和工业数字温度计 :) 不确定我是否想尝试一下!
    猜你喜欢
    • 2011-06-22
    • 2011-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-19
    • 1970-01-01
    相关资源
    最近更新 更多