如何将Linux引入WindowsCE设备

时间:2011-04-07 15:03:33

标签: linux embedded windows-ce porting

a navi-like device有一个有趣的价格非常有趣的规格。问题是它只运行 Windows CE ,而我们绝对需要一个项目的 Linux 操作系统。

我们发现很难找到类似的设备(具有GPS和GPRS 的一体化触摸屏PC 以及以合理的价格扩展温度范围)所以我正在调查可能性将Linux移植到此设备。

虽然我对各种嵌入式Linux设备(AXIS ETRAX / CRIS,Trimble Nomad,FOX G20,MOXA,PC / 104设备......)有一些经验,但我从未将Linux带到从未运行过的设备上之前。但是,交叉编译整个Linux系统对我来说并不陌生。

我想最大的问题就是取代Windows CE。

该设备具有400 MHz ARM 926EJ处理器,2 GB闪存,64 MB RAM,SD插槽和USB / RS232端口。完整的规格可以找到here

  • 将它转换为Linux设备有多难?最困难的部分或最终无法解决的问题是什么?
  • 或者是否有专门负责此类任务的公司/人员?请注意,我们甚至不知道谁是原始制造商。然而,供应商表示没有Linux支持。
  • 或者,您是否知道任何已经附带Linux的类似设备(我更喜欢这个而不是黑客攻击设备)?

2 个答案:

答案 0 :(得分:2)

一路上有用的步骤是:

  1. 了解引导固件的工作原理,以及它是否可以引导Linux内核。如果没有,您需要将uBoot或其他Linux兼容的引导加载程序移植到硬件上。这可能需要焊接以重新编程主引导闪存。
  2. 为同一台三星处理器的评估板找到Linux内核。
  3. 每块电路板都有怪癖,例如与电池控制接口的I / O线的确切接线,显示亮度,前面板按钮。如果没有制造商提供的文件,这些可能很难找到。要对其进行反向工程,您需要打开它并查找次要组件的部件号,然后分析它们的连接方式。从积极的方面来看,芯片供应商通常会使用相同部件的评估板,并且有完整的文档。硬件工程师喜欢从这些参考设计中复制和粘贴。
  4. 这是可能的,但如果您的时间便宜或者您打算购买其中很多,这可能是值得的。有自由职业者做ARM内核移植;我自己做了。通常我会为那些设计了自己的硬件的人这样做,因此很少有逆向工程。

答案 1 :(得分:2)

理想情况下,您需要访问处理器的JTAG引脚进行编程和调试,然后您需要一个JTAG调试器来支持该器件并对所使用的闪存进行编程。

完成所有操作后,您可以完全访问处理器和内存,并可以使用您选择的任何固件对其进行重新编程。然而,它的用处将取决于您是否有足够的技术信息来开发或获取适合显示器的驱动器,以及任何其他专用硬件,以及片上外设。

知道它是ARM926EJ只能告诉你核心。它不会告诉您任何有关片上外设的信息,包括SDRAM控制器和PLL时钟发​​生器等硬件,以及中断控制器,所有这些都需要在系统运行之前进行初始化 - 这些都是特定于器件的,而Linux将会需要专门适应硬件。您不能像在PC上那样加载Linux,这是一个已知的标准化硬件平台。

该文档显示它是三星S3C2416X处理器。从三星半导体的网站获取user manual和数据表。您可能至少找到了一个已经可用于处理器的Linux端口,但您仍需要适应片外外设和I / O.文档还在程序框图中显示了JTAG,因此可能已经将连接器留在了主板上。