arm板运行linux系统,用lcd运行linux的国产ARM板——需求定义

经过大量的研究,通过各种在线文档和文章,并与许多不同的事情,我终于设法使我的第一个Linux能力的ARM Cortex-A8板启动和运行。我在做董事会的时候,遇到了很多不同的困难。该板是基于一个ARM皮质A8 CPU运行在1 Ghz,这真的是相当多的自制手工组装的东西。我将带您一起走一段旅程,您将如何接近您的定制Linux板。

这将是一些描述性的教程,几乎涵盖了所有方面。所以我把整件事分成几个部分。下一部分是前一部分。

bcdd890f94c330dbfe7f47a554cd2f74.png

你为什么需要Linux板?

需求定义,首先您需要确定您的需求是什么,这是可以满足这些需求的高速微控制器与片内RAM等,或我们需要一些高速处理器?由于采用非常高速的处理器,往往会导致大量额外的硬件,比如您可能需要许多电源Rails、外部RAM、外部Flash/ROM等,这最终会伴随着昂贵的开发和昂贵的最终产品。

对于这个特别的演示,我们将考虑开发一个通过wifi连接云的数字相框,因此需要最少的LCD屏幕和WiFi模块,USB主机,一些用户界面。船上的每一件事都只是为了支持这些要求。

为了获得LCD,我们需要一个具有LCD驱动能力的处理器/微控制器,由于它是数字相框应用,我们需要一个大的LCD可能是7-10 ich,这种大小的LCD没有内置太多的智能,它们需要由控制器不断刷新,甚至没有任何内存。所以你需要一个内置LCD控制器的处理器,相信我你不想在软件上驱动这么大的LCD,当然你有专用的控制器IC,可以完成所有的刷新和帧缓冲内存。但这些芯片,他们自己有一些成本附加在他们和有更多的缺点与我们的应用程序,我们将在几分钟内覆盖他们。

现在,除了LCD,我们的处理器应该有一些接口来处理WiFi,Wifi鼠标与这些接口之一SPI、SDIO(4位SPI)、并行、USB或UART连接在一起。UART模块是最便宜和易于处理的,但由于UART的限制,它们的带宽非常低。

我们可以使用SPI、SDIO或USBwifi模块。

处理器与USB主机,我们需要有USB主机,所以用户可以连接到那里的USB驱动器或USB硬盘驱动器填充图像和视频到我们的产品。

我们希望为系统提供触摸屏接口,以便于使用。它可以用触摸屏控制器来实现,IC可以是电阻式的,也可以是电容式的,虽然使用电容式触摸屏控制器并不复杂,但它们可能有自己的专用固件和许多其他设置。但通常,如果你想要电容式触摸,你可以使用第三方控制器解决方案。很少有处理器内置电阻式触摸控制器,但不多。

我们有一些我们需要的硬件图片,但在选择处理器,最决定性的因素是,您要处理什么数据,以什么速率?处理器的速度将取决于我们需要运行的软件,当我们处理多媒体时,我们需要一些能量。

软件

现在出现了软件,它将与所有的硬件和互联网对话,从云端下载图像。一种方法是自己编写自己的东西,但让我们看看你需要什么,LCD驱动程序,wifi模块驱动程序,USB主机驱动程序,USB文件系统,TCP/IP堆栈,以及控制所有这些和用户界面的定制应用程序,相信我,在编写TCP/IP本身之后,你会放弃它。

但是我们可以从开放源码社区、TCP/IP堆栈、文件系统中获得许多模块,并且可能正在为重新设置硬件提供一些低级别的驱动程序。但是最终你需要从头开始编写你自己的应用程序来与互联网、USB、LCD和用户界面进行交互,

您将需要大量的代码来解码许多不同格式的图像和视频,并将它们呈现给LCD。要处理与CAN的安全TCP/IP通信,需要编写大量代码,因为它们中的大多数都具有非常复杂的安全性,因此需要使应用程序与本身是一项繁琐任务的应用程序兼容。同样,您需要编写大量代码。而要处理用户界面与触摸或按钮,并将正确的信息到LCD上也将需要更多的工作。

因此,解决所有软件需求的方法是,尽可能多地使用现有的网络库、wifi、LCD、CAN连接和用户接口。在开源领域,大多数可用的库都是用于Linux类系统的。我们可能需要选择只使用Linux。

但是,运行Linux需要非常特殊的硬件,这有点昂贵。我们仍然可以尝试将所有这些库移植到我们的自定义环境中,但是它需要大量的工作来节省一些钱,相信我,将Linux移植到小型处理器并不是一个好主意。

Linux提供已经编写好的驱动程序、文件系统、网络支持、对USB主机和各种库的支持,以处理包括用户界面在内的所有内容。

我认为Linux是可行的。

支持Linux的硬件

运行Linux的第一个基本需求是,在MMU中使用一定数量的RAM。选择随机处理器并尝试将Linux移植到上并不是个好主意。

我们需要一些已经被支持的处理器和最新版本的Linux。一些社区的支持也可以。

在选择正确的处理器时,您将面临的第一个问题是包,几乎所有支持Linux的最新处理器都是在大型BGA(>200个球)包中。用自制的东西做低成本的BGA有点痛苦。

大型BGA需要特殊的焊接设备,您需要某种烤箱用于大型BGA。对于大于200个球的BGA,HOTAIR不能很好地工作。

而小于0.8mm的BGA要求PCB具有非常精细的PICH。

常见的低成本PCB规格是像5mil痕迹/5mil间隙,10mil钻4mil环。如果你做的更好,你可能需要支付大量的钱。

要展开大的BGA,我们需要放置通过之间的垫,为此,我们需要尽可能低的间隙,最小的钻,尽可能低的环形环。最小的4层是小BGA的一种必须,你真的不想做少于4层,6层或更多的是推荐大BGA。否则会有很多问题的扇形和电源线。

但我想以最低的成本和在我家完成整个过程。

所以我需要把BGA留给处理器,并考虑一些大型的TQFP或QFN处理器包,

但是在运行Linux的TQFP包中有少数现代处理器可用,所以我们必须从它们中选择,

一个非常常见的选择是Freescale iMX 233,它可以在TQFP 128包中使用,ARM 9运行在400 Mhz,有LCD、音频、USB主机,所有我们需要的东西。

或者我们可以选择AllWinner A13处理器,它是在TQFP包中,ARM Cortex-A8运行1 Ghz,有带有马里400 GPU的LCD,有一个USB设备和USB主机,支持两个sdCard或NAND闪存,支持512 MB DDR 2或DDR 3 ram。

出于某种原因,我正在寻找更快的处理器与更多的一切,所以我选择Allwinner A13,因为这只是学习项目,我们真的不太关心如何处理器是如何出售等等,我曾经试验过Allwinner A 20处理器,我发现它们是稳定和易于使用,Sunxi Linux回购在GitHub有非常稳定的Linux 3.4分支,欠发达的Linux 3.10分支。

SunxLinux3.4Brach支持大部分内容,包括GPU,这是很好的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值