哈尔滨达内IT教育培训机构 |
linux培训机构推荐哈尔滨哪家?小编推荐达内教育培训机构,美国上市公司(NASDAQ:TEDU),专注IT职业教育18年,10000名员工,采用“先学习,就业后付款”的模式,提供优质的java培训,python培训,大数据培训,web前端培训.是专业的IT培训机构.
嵌入式Linux底层系统包含哪些东西?
嵌入式LINUX里含有bootloader, 内核, 驱动程序、根文件系统这块。
一、bootloader
它就是一个稍微复杂的裸板程序。但是要把这裸板程序看懂写好一点都不容易。Windows下好用的工具弱化了我们的编程能力。很多人一玩嵌入式就用ADS、KEIL。能回答这几个问题吗?
Q:一上电,CPU从哪里取指令执行?
A:一般从Flash上指令。
Q:但是Flash一般是只能读不能直接写的,如果用到全局变量,这些全局变量在哪里?
A:全局变量应该在内存里。
Q:那么谁把全局变量放到内存里去?
A:长期用ADS、KEIL的朋友,你能回答吗?这需要"重定位"。在ADS或KEIL里,重定位的代码是制作这些工具的公司帮你写好了。你可曾去阅读过?
Q:内存那么大,我怎么知道把"原来存在Flash上的内容"读到内存的"哪个地址去"?
A:这个地址用"链接脚本"决定,在ADS里有scatter文件,KEIL里也有类似的文件。但是,你去研究过吗?
Q:你说重定位是把程序从Flash复制到内存,那么这个程序可以读Flash啊?
A:是的,要能操作Flash。当然不仅仅是这些,还有设置时钟让系统运行得更快等等。
先自问自答到这里吧,对于bootloader这一个裸板程序,其实有3部分要点:
①对硬件的操作
对硬件的操作,需要看原理图、芯片手册。这需要一定的硬件知识,不要求能设计硬件,但是至少能看懂; 不求能看懂模拟电路,但是要能看懂数字电路。
这方面的能力在学校里都可以学到,<微机原理>、<数字电路>这2本书就足够了。想的话,就先放掉这块吧,不懂就GOOGLE、发贴。
另外,芯片手册是肯定要读的,别去找中文的,就看英文的。开始是非常痛苦,以后就会发现那些语法、词汇一旦熟悉后,读任何芯片手册都很容易。
②对ARM体系处理器的了解
对ARM体系处理器的了解,可以看杜春蕾的<ARM体系架构与编程>,里面讲有汇编指令,有异常模式、MMU等。也就这3块内容需要了解。
③程序的基本概念:重定位、栈、代码段数据段BSS段等
程序的基本概念,王道当然是去看<编译原理>了。可惜,这类书是天书级别的。若非超级天才还是别去看了。
对于bootloader,可以先看<ARM体系架构与编程>,然后自己写程序把各个硬件的实验都做一遍,比如GPIO、时钟、SDRAM、UART、NAND。把它们都弄清楚了,组台在一起就很容易看懂u-boot了 。
总结一下,看懂硬件原理图、看芯片手册,这都需要自己去找资料。
二、内核
想的人,先跨过内核的学习,直接学习怎么写驱动。
想成为高手,内核必须深刻了解。注意,是了解,要对里面的调度机制、内存管理机制、文件管理机制等等有所了解。
尊重原创文章,转载请注明出处与链接:http://news.peixun360.com/860092/ 违者必究! 以上就是 哈尔滨达内IT教育培训机构 小编为您整理 linux培训机构推荐哈尔滨哪家 的全部内容。