- 博客(9)
- 资源 (4)
- 收藏
- 关注
原创 随想录(cpu缓存、cache同步和乱序执行)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 以前学习计算机体系结构的时候,也会涉及到cpu缓存、多核和乱序方面的知识,但是真正用代码来表示相关知识的内容,却不是很多。所以,今天打算用三个例子来说明这些内容。缓存的内容比较简单,后面的内容复杂一点,不过没有关系,我们一步一步来说明。这些例子有的网上已经存在了,原来博文的作者已经
2012-09-29 22:59:49 4024
原创 嵌入式操作系统内核原理和开发(实时调度)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 和很多通用的操作系统相比, 实时操作系统有自己的一个特点,那就是实时调度。通用操作系统的线程优先级一般是可以变化的,而实时系统的线程优先级却是不变的。之所以这么设计,是为了保证高优先级的任务在第一时间获得调度,这样才能保证调度的实时性。因为实时系统是严格按照优先级搞定调度的,所以不管什
2012-09-26 22:35:16 4370
原创 嵌入式操作系统内核原理和开发(消息队列)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 消息队列是线程交互的一种方法,任务可以通过消息队列来实现数据的沟通和交换。在嵌入式系统上,这可以说这是用的最多的一种方法。通过消息队列,无论是发送者,还是接受者都可以循环地处理各种消息。而我们知道,存储消息最好的方式就是循环队列,如果消息已满,那么发送者可以把自己pend到等待队列
2012-09-23 09:11:52 6139
原创 嵌入式操作系统内核原理和开发(事件)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 在很多操作系统的书上,其实互斥和同步是放在一起进行介绍的。互斥,比较简单,就是对某一份资源或者几份资源进行抢占获取。而同步是什么意思呢,就是某一个线程等待另外一个线程的通知,只有收到了通知,它才会去干某些事情。 通常情况下,如果是抢占的话,那么两个人使用的必须是同一个锁,而同步
2012-09-20 22:53:44 4187 1
原创 嵌入式操作系统内核原理和开发(互斥量)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 今天下午打开邮箱,打开rawos作者给我发的邮件,甚是惊喜。感谢他对我的支持,因为自己阅读过很多os的代码,包括ucos、rtthread、vxWorks、linux等等,所以阅读rawos对于我来说不算特别辛苦的事情。除了某些细节之外,我对整个系统的设计还算得上是比较了解的,所以
2012-09-16 16:18:20 6287 2
原创 软件性能计时
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 在单元测试中,有一部分的内容就是计算各个函数计算时间,这样可以知道性能瓶颈在哪里。所以,如何对软件进行性能计时一直是我关注的一个话题。就我目前的认知来说,不同的环境对软件性能其实要求是不一样的,所以有的软件可能是秒级,有的是毫秒级的,而有的则是cpu周期级别的。下面,我们就可以一一开始
2012-09-15 22:08:07 3771
原创 嵌入式操作系统内核原理和开发(信号量)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 之前因为工作的原因,操作系统这块一直没有继续写下去。一方面是自己没有这方面的经历,另外一方面就是操作系统比较复杂和琐碎,调试起来比较麻烦。目前在实际项目中,使用的实时操作系统很多,很多国内的朋友也写过操作系统,有些项目现在还在维护和修改中,这是十分难得的。就我知道和熟悉的就有三个系统
2012-09-13 22:57:48 4759 7
原创 随想录(设计软件模块的接口)
【声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 开发软件是一件复杂而且辛苦的工作,不同的模块之间的逻辑需要考虑,应用层与底层的关系也需要考虑。模块之间的关系处理不好,就会给软件的编写质量带来影响。当然不管软件是怎么设计的,有一件事情都是需要好好注意的,那就是软件的接口问题。软件分层也罢,模块协作也罢,我们都必须设计好相互之间的接口关系
2012-09-12 23:09:47 4711
原创 随想录(编写简单资源管理代码)
【声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 不管编写什么软件,我们都会涉及到模块的编写。说是模块,其实就是管理一片资源,这些资源的概念很广,可以是内存、锁、socket、字符串、文件、空间大小等等。所以不管是什么模块,你需要注意下面几个方面,当然这也是给外界提供的基本接口函数。 (1)模块初始化 (2)申请模块资源
2012-09-03 22:44:50 2375
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人