嵌入式linux培训班之网络、文件系统和可执行格式

  创客学院嵌入式培训讲师:一些嵌入式Linux应用并不需要网络支持,因此在配置核心的时候,你一定不要将网络部分的代码编译在内。这将为你节省很多空间;同样的道理,请务必保证你的内核只支持一种或者两种必要的文件系统;如果你的嵌入式应用只需要一种可执行文件格式,那么你一定要关掉其他的ELF(Executable and Linking Format,可执行和连接格式)。



  嵌入式linux培训班之网络、文件系统和可执行格式:

  通常情况下,参考“建立内核”的menu文件是一个好主意。如果你使用make menumconfig来配置内核,你可以在任何时候输入“?”来获得当前高亮选项的帮助信息。开发嵌入式设备驱动程序的时候,允许内核支持装载模块将为你带来方便。通过这种方法,在你需要支持一种新特性的时候,你只需要回头重新编译你需要的模块,把它们拷贝到你的设备上,加载它们就可以了。没有可加载模块支持的时候,你就不得不重新编译整个内核。当你开发一些设备的驱动程序的时候,为了节省一些RAM或者一些ROM,你可以重新编译整个内核,并不允许加载模块,而是把驱动程序直接编译到内核里面去。但是你还是应该好好计算一下,这样做究竟可以节省下多少空间,是否真的值得——毕竟允许加载模块对于系统以后升级有巨大的好处。

  1、就地执行

  还有一种可以节约内存的办法就是在长期存储器,例如ROM或者闪存中运行你的程序。这种方法被称作“就地执行”(Execute.in.Place,缩写为xp)。

  在桌面系统上,你的应用程序存储在硬盘上,程序必须被读到内存才能执行。然而在多数的嵌入式设备中,并没有作为外存储器的硬盘,而是以某种记忆设备,例如ROM或者闪存代替。跟硬盘驱动器的不同在于,记忆设备是CPU可以直接寻址的,就像RAM。你可以使用这些可以直接寻址的记忆设备缩小你的系统对于RAM的需求。于是在内核被启动以后就不需要把应用程序拷贝到RAM再执行,而是直接寻址到应用程序存储的地址,开始执行。运行的效果跟把应用程序拷贝到内存以后执行是一样的。考虑到处理器、内存和闪存的速度,就地执行可能会使系统性能大大下降。

  2、实时操作系统

  在多数情况下,完成一个任务计算机到底需要多少时间并不重要。例如,当我敲击键盘的时候,总是希望单词立刻出现在屏幕上,可是“立刻”到底是多少时间昵?可能是千分之几十秒,也可能是千分之几百秒。你是没有办法分辨50毫秒(大约是1秒的1/20)以下的时间差别的。但是这一点时间对于一些计算机上的应用来说可能是非常严重的。例如,你的一个应用程序指挥一个机器人的手,从一叠东西上面取下一片,然后把这片东西,精确地移动到计算机键盘上的某个位置,在这个过程中,手臂的动作要精确,应用程序的时间控制就一定要精确,这就是你为什么需要实时系统。

  以上就是对嵌入式linux培训班之网络、文件系统和可执行格式的详细介绍,了解更多嵌入式linux开发技术知识,请关注创客学院IT技术博文和嵌入式视频教程。


查看更多关于“嵌入式开发培训”的相关资讯>>

the end

评论(0)