完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
嵌入式系统中的几个关键基本概念!
boot loader:看名字就知道,这是在系统启动时使用的,最重要的功能就是加载 操作系统。其它包括一些硬件的初始化,或者其它的一些自定义功能,例如OS升级什 么的。 启动流程: 一般的arm/MIPS 架构的CPU都有一个固定的地址,硬件上 电后,CPU就去这个地址读取第一条指令。 通常硬件上都会把这个地址连接在非 易失存储器(简单的理解就是掉电不丢失,一般是FLASH)上。也就是说,这个阶段 的代码都是运行在FLASH上的,所以,这个FLASH必须是可以随机访问的。这些代码通 常都是汇编写成的,初始化CPU,内存等等硬件相关的一些指令。 内存初始化完 毕后,就可以将代码拷贝到内存里了。在内存里运行,就可以写了,速度上也要快很 多。 之后继续其它设备的初始化,比如串口,网口什么的。现在用不着的设备不 做初始化,等OS起来以后再说。 再往后就准备启动OS了。嵌入式设备为了节省 FLASH的容量,通常OS都是压缩过的,所以boot loader就必须将OS从FLASH上,解压 到内存当中去。然后跳转到OS在内存中的第一个函数中去。这个地址就是双方约定好 的了,因为boot loader并不关心OS到底是什么,它只管将CPU交给OS,它的使命就结 束了。如果这个地址双方不一致,那就彻底悲剧了…… 设备驱动: 就是可 以屏蔽硬件特性,让操作系统中的应用程序可以更好的操作硬件。比如现在有一块屏 ,4*4个点阵,单色。没有驱动的时候,我只要告诉硬件,在(0,0),(0,1), (0,3),(0,4)这几个点亮一下,就可以在屏幕最上方显示一条线了。但是应用 程序不可能这样去做啊,不可能每个字,每条线都用点阵去画吧。所以,我就可以写 一个程序,将点亮4个点封装成函数,第一个参数作为变量,给操作系统。这样应用 程序只需要调这个函数,就可以在任意地方画一条横线了。字符显示也是类似的。那 什么还要有操作系统呢,不直接给应用程序?因为应用程序不需要关心硬件,这块屏 可大可小,或者可显示多种颜色。操作系统就是在中间作为标准,抽象出一个显示设 备,底下是驱动跟硬件配合,提供操作接口,上面是应用程序去调用接口。 在网上看到这篇好文章,希望对大学有所帮助,呵呵! 更多内容欢迎交流: qq:2859780203(曹老师) 欢迎大家进入华南地区最大的单片机嵌入式学习群:247452389。共同交流、学习。 |
|
相关推荐
|
|
kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
|
|
|
|
|
|
741 浏览 0 评论
3557 浏览 0 评论
如何使用python调起UDE STK5.2进行下载自动化下载呢?
2435 浏览 0 评论
开启全新AI时代 智能嵌入式系统快速发展——“第六届国产嵌入式操作系统技术与产业发展论坛”圆满结束
2881 浏览 0 评论
获奖公布!2024 RT-Thread全球巡回线下培训火热来袭!报名提问有奖!
30972 浏览 11 评论
72708 浏览 21 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-18 10:22 , Processed in 0.523658 second(s), Total 67, Slave 49 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号