您的浏览器不支持CSS3,建议使用Firfox、Chrome等浏览器,以取得最佳显示效果

EasyBoot项目介绍

硬件嵌入式相关 291℃ 0 3年前 (2014-11-27)

一、Bootloader的概念

    在嵌入式操作系统中,BootLoader是在OS内核运行之前运行。可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用OS准备好正确的环境。目前业内Bootloader有:Bios-lt、Bootldr、vivi、U-BOOT。其中以U-BOOT最为常见。

二、EasyBoot是一款什么样的Bootloader?

EasyBoot是一款面向开发人员,专门为ARM开发的开源Bootloader,用于引导LINUX系统的启动。EasyBoot以简单易用,方便二次开发为原则,有着整洁清晰的架构,用户只需调用相关的API,即可完成二次开发或者添加新的硬件支持。它具有完善的驱动管理子系统,动态内存管理子系统,和友好shell用于与用户交互。所有的命令都具有消息通信和逻辑执行的功能,即用户可以通过将简单的命令间进行组合完成复杂的动作。

三、EasyBoot的驱动子系统

为了管理众多硬件驱动,EasyBoot设计了一套驱动子系统,对于系统自带的驱动,用户可以调用driver_register进行注册并且使用,甚至用户可以在运行时对硬件驱动进行替换从而使其适应于不同的硬件平台,由于驱动子系统的存在,用户层完全与硬件层隔离并且得到一致的四个接口——open read write ioctl。Open函数用于打开一个硬件设备并且取得设备文件描述符fd,描述符相当于句柄,基于描述符,用户可以通过read write ioctl对该硬件设备进行操作。

如果系统内没有对用户的硬件进行支持,那么用户可以自行开发设备驱动并且调用DEVICE_EXPORT将其导出对系统可见,即可调用注册函数进行注册并且使用该驱动。

 

四、EasyBoot 的动态内存管理

EasyBoot用户可以根据硬件配置情况安排系统镜像在内存中的位置,而后EasyBoot会自动将剩余的内存搜集作为堆空间,用户即可使用malloc和free等函数进行动态内存分配与释放。动态内存管理会在适当的时机对内存进行碎片处理。

五、EasyBoot 的shell

EasyBoot的命令将会在实现上与Bash保持一致,包括管道 |,逻辑 && ||,判断if [ a –lt b ]  … endif等用法。

 

六、EasyBoot正在做的努力

   EasyBoot开始于今年11月份,已经顺利在mini2440上成功启动LINUX KERNEL 2.6X,目前已经实现了驱动管理子系统和动态内存管理。并且shell的设计已经初步完成,下一步会进行具体的编码和测试。项目目前由我一人开发和维护。

七、EasyBoot的未来

  EasyBoot将会实现以下功能:

  • tftp 下载功能
  • FLASH烧录功能
  • 安全性能加强,会启用虚拟地址,所有的内存使用请求由系统进行管理用户没有任意读写内存的权限,防止因为内存访问不当而引起的系统崩溃。
  • 引入总线机制,提高代码复用率,这在将来兼容多种硬件设备时将会变得十分有用
  • 实现动态驱动加载。这时EasyBoot将体现出强大的灵活性,用户可以随时开发驱动并且动态加载到系统中,也就是说用户可以随时随地,在不必面对系统源码修改的情况下拓展EasyBoot。

八、如何获取和使用EasyBoot

   所有源码都可以在github(https://github.com/EmbolismSoil/EasyBoot

)上得到,下载解压后输入make即可得到EasyBoot.bin镜像,烧录到FLASH中即可运行。

由于目前尚未完成第一次迭代,EasyBoot仅支持mini2440,如果你想要在自己的硬件平台上使用,请把硬件型号或者详细参数发送到我的邮箱,我会提供支持你硬件平台的版本。

九、如何加入EasyBoot

EasyBoot欢迎所有对它感兴趣的人。如果你会使用git,你克隆项目并且进行自己分支上的开发。如果不会使用git,你可以到EasyBoot项目主页(https://github.com/EmbolismSoil/EasyBoot)下载源码并且将修改后的代码 或者补丁通过邮件提交给我。

 

  十、联系方式

   希望能与诸位对LINUX内核以及嵌入感兴趣的同好者相互交流。

EasyBoot的github地址:

https://github.com/EmbolismSoil/EasyBoot

我的邮箱:

[email protected]

[email protected]

QQ:743703241

 

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

0

暂无评论

评论前:需填写以下信息,或 登录

用户登录

忘记密码?