系统与设计
的意见

ROM代码首先

之前你的有趣的东西,你必须处理枯燥的基础。

受欢迎程度

由阿齐姆诺尔
最后,9个月后下一代SoC项目开始,第一个原型董事会终于来了!只有六个月,Android和Linux启动并运行。因为Android应该充分利用最新的硬件添加,让我们确保我们尽快把它移植。

不幸的是,它并不那么容易。之前你可以关心移植操作系统和开发特殊硬件的驱动程序,你必须处理无聊,但有必要,硬件的初始化。这通常是通过一个所谓的引导监视器。ROM引导监视器是一个软件项目,启动后按下开机按钮在您的硬件。尽管引导监视器并非一个大型的软件(操作系统相比,等等),它提供了复杂的功能和与许多硬件外围设备。作为一个例子,给出了经典的最小功能引导加载程序如下:

  1. 开始执行外部唤醒事件(例如,接通电源的)
  2. 进一步检查硬件配置启动开关(例如,调试/交互模式开/关)
  3. 提供一个命令行接口通过UART实现交互模式
  4. 提供一个USB设备驱动程序和SD卡驱动程序允许用户下载他的操作系统内核映像从他的电脑一个SD卡
  5. 提供和flash司机为了移动操作系统内核从SD卡进入和闪存,主CPU可以引导的操作系统
  6. 提供函数来更新引导监视器图像eepm从SD卡
  7. 初始化内存控制器允许操作系统访问DRAM / SRAM
  8. 初始化时钟和电压
  9. 移交阶段的引导加载程序的启动参数,管理程序、安全操作系统或主要的操作系统
  10. 启动主CPU引导操作系统的内核映像和闪光

通常,启动监控不是主CPU上执行,但由一个小同伴控制器。介绍功能,启动监控容易总结几100 kb的高度platform-hardware-dependent源代码。所以引导工作你认为你不需要担心当第一个硬件样板到现在需要相当长的发展。相反,你宁愿开始编程的高级功能和验证你的新产品,如新GPU,但硬件初始化步骤不能回避。

由于ROM代码开发的复杂性,因为这个任务的关键路径是正确的上市时间窗口,它已经发展成为一个主要的虚拟原型设计用例。董事会的到来以后,我们的经验告诉我们,跟进和验证的操作系统和高级软件可以立即开始(一天)。ROM代码,使用虚拟样机开发的(副总裁),足够的装备和测试不再是一个控制任务的主要软件启动。

有趣的是,VPs ROM代码开发相对容易构建。ROM代码所使用的硬件外设,在很大程度上,商品外设,如UART、计时器、时钟发生器,等在这里,必要的TLM模型通常存在。因此,副总裁可以很容易地使用可用的TLM模型组装,和相应的驱动程序开发或移植可以开始。

其他重要组件所需的各种系统配置控制器程序振荡器、电压调节器,等等这些模型并不复杂。从硬件的角度来看,作为他们主要包括配置寄存器配置总线驱动某些信号。然而,他们棘手和复杂的程序。糟糕的配置可能防止系统启动或甚至可以破坏。有一个副总裁,模型的影响时钟和电压设置正确是非常有助于验证ROM代码在硬件上工作。总结,通过VP的投资回报是相对较高的为这种类型的软件开发。

使用的其他优势项目副总裁在这个早期阶段,副总裁并不真正需要的ROM代码来启动操作系统。许多函数提供的引导监督,如图像加载到RAM / flash,可以立即完成。结果,一个项目依赖关系被打破和操作系统内核移植可以同时启动ROM代码开发。我们已经看到我们的用户启动Android只是三天之后样板已经到来。

经过一年的博客,这是我上一篇“从顶部。“展望未来,我的同事Nithya拉夫将带来一些新的想法和继续为这个博客帖子。谢谢你的兴趣和评论在过去的一年。



留下一个回复


(注意:这个名字会显示公开)

Baidu