它如何制作如powerico vcr DVD播放器的图形用户界面从poweron到用户界面?

时间:2011-06-03 06:36:14

标签: c embedded linux-kernel hardware kernel

我有C / Java知识,但我从未理解,有些硬件如何显示自己的屏幕/图形,从poweron阶段到用户界面(它从未显示linux / unix启动屏幕,也没有显示Windows启动屏幕)。

我的问题是,与VCR / TV数字编码器相比,直到用户界面,它是如何制作的?我们使用常规的Linux内核还是有任何特殊的开源框架允许我们开发这样的?

由于

3 个答案:

答案 0 :(得分:3)

许多嵌入式系统使用u-boot作为引导加载程序。 U-boot提供了在linux内核启动时显示"splash" screen的功能。

答案 1 :(得分:1)

设备将在CPU复位后立即启动引导加载程序(通常在最多上电后几毫秒)。如果需要,引导加载程序代码可以初始化显示并显示启动屏幕(与大多数现代非嵌入式Linux发行版具有图形grub启动画面的方式相同)。内核可以避免更改显示配置,并且在嵌入式设备上内核可以很快地启动到运行的用户空间(至少是initramfs),它可以接管显示并显示任何动画,进度条等,直到完整的UI为止。准备好了。

答案 2 :(得分:1)

Windows或Linux等操作系统既大又通用。他们必须对自己和硬件进行初始化,其中包括询问所有连接的设备以​​进行“即插即用”。操作系统事先不知道连接了哪些设备;它必须在每次启动时“发现”硬件。自上次启动以来,连接的硬件甚至可能已经发生了变化。

嵌入式系统通常不具备大型操作系统(或通常根本没有操作系统),并且它们通常具有系统已知的非常特定的硬件先验,因此不需要测试并确定此类设备的正确配置。通常这些设备也更简单,并且通常是“片上”外围设备。

也就是说,您的PC能够立即显示用户界面(而不是Windows)。 BIOS启动过程几乎立即将文本输出到显示器,BIOS控制台是一个交互式用户界面,可在启动时根据请求启动。上次我在现代PC上启动MS-DOS时,只需几秒钟即可启动。

并非所有嵌入式系统都启动“即时启动”,我的数字电视PVR在启动时甚至有一个进度条,但由于是特定于应用程序,它仍然比通用计算机启动得快得多。另一方面,我的网络附加存储(NAS)设备是运行Linux的嵌入式系统,需要相当长的时间才能启动,因为它必须启动文件系统,网络,USB接口,打印服务器,DNLA服务器,和网络服务器。实际上,通用计算机需要许多东西(但它没有显示,UI通过网络服务器呈现)

一些具有大型操作系统和复杂硬件的嵌入式系统可以通过永远不会真正关闭来实现“即时启动”,而是进入低功耗模式,其中系统状态保留在内存中所有高功率设备,如屏幕,WiFi,蓝牙等都被关闭。