![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
操作系统类
文章平均质量分 64
Amao_come_on
这个作者很懒,什么都没留下…
展开
-
操作系统的硬件环境
一、中央处理器 CPU1. 每个CPU都拥有自己的指令系统。2. CPU由运算器、控制器、寄存器和高速缓存组成。3. 寄存器具有最快的访问速度,高速缓存位于CPU和内存之间,访问速度大于内存,低于寄存器。4. CPU中的寄存器分为:用户可见寄存器、控制和状态寄存器。5. 用户可见寄存器有:数据寄存器、地址寄存器和条件码寄存器。6. 控制和状态寄存器有转载 2014-06-24 00:11:58 · 683 阅读 · 0 评论 -
μC/OS-II学习之:任务,信号量、邮箱、队列及其区别 (转)
一:UCOS是一种抢占式的多任务操作系统,如果最高优先级的任务不主动放弃CPU的使用的话,其他任务是无法运行的,通常情况下,高优先级的任务在使用完CPU或其他资源后都要主动放弃,可以通过延时函数或者时等待一些信号量之类的让自己挂起。但是如果最高优先级任务一直使用CPU,那就跟单任务没有什么区别了。二:可以通过等待信号量,消息等是当前任务挂起,或者通过通过延时函数将任务挂起,从而让其他优先级的任转载 2013-03-08 12:30:48 · 701 阅读 · 0 评论 -
编程调试和诊断的五大规则
http://www.csdn.net/article/2013-07-04/2816104-top-5-debugging-and-diagnostic转载 2013-07-05 13:45:26 · 430 阅读 · 0 评论 -
ThreadX线程的执行和调度
任务,进程,线程嵌入式应用程序面临的一个主要问题就是如何在不同任务中分配处理器。在实时操作系统中,有时用进程和线程来代替任务的使用。进程是一个完全独立的程序有自己的地址空间,线程是一个半独立的程序段,在进程内执行。多个线程共用所属进程的地址空间,线程管理的开支是很小的。-----------------------------线程执行应用程序线程的调度、执行时操作系统最重要的行转载 2014-05-22 21:49:16 · 6460 阅读 · 0 评论 -
嵌入式系统开发所需要的基础
基本功:C语言(包括数据结构),汇编语言,微机原理,操作系统(熟悉操作系统的基本原理)嵌入式系统开发流程:启动代码(用汇编,不同体系结构对应不同的汇编,arm汇编)bootloader(uboot)Linux Kernel(用汇编,熟悉框架,熟悉修改和裁剪)FileSystem(实现简单的一些库以及系统调用。)Application内核代码里面普遍使用单向链表,双原创 2013-05-18 00:35:45 · 720 阅读 · 0 评论 -
详解Windows内存分页机制
偶的博客: http://hi.baidu.com/hu3167343 大家支持下,谢谢了.昨天新买了两本书, 看到了内存分页部分, 特此记录下, 没什么技术含量, 错误之处还请大牛指点.大多数现代的操作系统都支持虚存, 这使得系统上的每个程序都拥有自己的地址空间. 每当程序读取内存时, 都必须指定一个地址. 对于每个进程, 该地址必须转换为实际的物理内存地址. 例如, 若我们转载 2013-05-30 16:05:01 · 1212 阅读 · 0 评论 -
使用GDB调试Coredump文件
写C/C++程序经常要直接和内存打交道,一不小心就会造成程序执行时产生Segment Fault而挂掉。一般这种情况都是因为数组越界访问,空指针或是野指针读写造成的。程序小的话还比较好办,对着源代码仔细检查就能解决。但是对于代码量较大的程序,里边包含N多函数调用,N多数组指针访问,这时想定位问题就不是很容易了(此时牛人依然可以通过在适当位置打printf加二分查找的方式迅速定位:P)。懒人的话还是转载 2013-05-29 17:02:11 · 616 阅读 · 0 评论 -
实现一个最简单的嵌入式操作系统
http://www.eepw.com.cn/article/23089.htm转载 2013-07-08 00:08:36 · 618 阅读 · 0 评论 -
多核处理器核间通信技术研究
http://www.doc88.com/p-397940778884.html转载 2014-02-16 00:39:24 · 1929 阅读 · 0 评论 -
System V 的IPC机制
7.3 System V 的IPC机制 为了提供与其它系统的兼容性,Linux也支持三种system Ⅴ的进程间通信机制:消息、信号量(semaphores)和共享内存,Linux对这些机制的实施大同小异。我们把信号量、消息和共享内存统称System V IPC的对象,每一个对象都具有同样类型的接口,即系统调用。就像每个文件都有一个打开文件号一样,每个对象也都有唯一的识别号,进程可以通过系转载 2014-02-26 21:38:40 · 764 阅读 · 0 评论 -
uboot 源码官方下载地址
最近打算开始学习uboot,得好好加油。 U-Boot,全称 Universal Boot Loader,是遵循GPL条款的开放源码项目。从FADSROM、8xxROM、PPCBOOT逐步发展演化而来 所有版本的u-boot源代码压缩包都可以在ftp://ftp.denx.de/pub/u-boot/下载。关于u-boot源代码的信息,看http://www.denx.de转载 2014-04-14 09:09:28 · 1416 阅读 · 0 评论 -
关于安卓跟LINUX的关系
Android 和 MOTO V8 的系统完全是两个概念。现在各个手机网站的编辑大脑都是严重萎缩的,根本就不能理解 Linux 是什么。 Linux 仅仅是内核,根本就不是一个完整的操作系统。一个完整的操作系统,包括内核,功能库,用户界面三个主要部分。一个应用程序,主要运行的并不是依靠内核来运行,它主要是借助功能库提供程序功能函数支持,用户界面层提供显示和交互的功能函数支持,内核只转载 2013-04-23 16:57:33 · 3328 阅读 · 0 评论 -
BSS段,数据段,代码段,堆内存和栈
BSS段,数据段,代码段,堆内存和栈来自:山下奉武 >配色:字号:大中小BSS段,数据段,代码段,堆内存和栈2012-10-09 | 阅: 转: | 分享转载 2013-04-20 13:50:24 · 705 阅读 · 0 评论 -
什么是软件架构?
级别: 初级Peter Eeles, 高级 IT 架构师, IBM2006 年 4 月 15 日本文来自于 Rational Edge:这篇关于软件架构的较新规则的介绍,是一个关于“架构”的四篇系列文章的的第一篇。作者以定义规则的关键术语开始,继续探索设计出色的架构对于架构所部署的环境所起的作用。我们毫不怀疑世界正变得越来越依靠软件。软件是诸如无处不在的手机,和复杂转载 2013-05-10 14:30:57 · 615 阅读 · 0 评论 -
操作系统原理
http://www.21edu8.com/pcnet/basic/1235/show.html?1235-0-0转载 2013-05-12 16:52:21 · 496 阅读 · 0 评论 -
同步通信和异步通信的主要区别是什么?
简单来说,同步通信是一种比特同步通信技术,要求发收双方具有同频同相的同步时钟信号,只需在传送报文的最前面附加特定的同步字符,使发收双方建立同步,此后便在同步时钟的控制下逐位发送/接收。 相对于同步通信,异步通信在发送字符时,所发送的字符之间的时隙可以是任意的。但是接收端必须时刻做好接收的准备(如果接收端主机的电源都没有加上,那么发送端发送字符就没有意义,因为接收端根本无法接收)。发送转载 2013-05-13 15:50:11 · 4692 阅读 · 0 评论 -
操作系统有哪些?
Windows 开发商 MicrosoftWindows98/meWindows2000/XPWindows Server2003Windows Vista Windows98/me是基于MS-DOS的混合的16/32位操作系统正慢慢的退出PC舞台了,2000/XP以及Server2003都是基于WindowsNT的32位操作系统,XP/Server2003已经有64位版本了。转载 2013-05-14 12:05:19 · 2044 阅读 · 0 评论 -
外设寄存器的访问
F2812中有大量的外设寄存器,在具体的应用中,要把这些寄存器根据实际需要进行配置。这也是程序在初始化期间需要做的主要工作,在配置完成后,才可以进入正常的流程,即业务逻辑处理阶段。以我的应用为例,F2812主要完成下列工作:2路A/D采样,2路PWM输出,6路GPIO输出。在此基础上,我将进行运算处理,实现主要功能。传统的寄存器访问方式,通过Macro定义实现。在TI提供的头文件中,提供了转载 2013-05-29 23:43:29 · 1555 阅读 · 0 评论 -
进程/线程同步的方式和机制,进程间通信
一、进程/线程间同步机制。临界区、互斥区、事件、信号量四种方式临界区(Critical Section)、互斥量(Mutex)、信号量(Semaphore)、事件(Event)的区别1、临界区:通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。在任意时刻只允许一个线程对共享资源进行访问,如果有多个线程试图访问公共资源,那么在有一个线程进入后,其他试图访问公共资源的转载 2014-06-21 10:52:42 · 403 阅读 · 0 评论 -
多线程死锁问题
前天俺们谈到了加锁,但是在使用加锁的同时又会带来一个问题,就是死锁。什么叫死锁?所谓死锁: 是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。 那么为什么会产生死锁呢?1.因为系统资源不足。2.进程运行推进的顺序不合适。 3.资源分配不当。 学过操作系统的朋友都知道转载 2014-09-25 11:18:23 · 437 阅读 · 0 评论 -
中断函数
C51的中断函数的格式为:void FuncIr(void) interrupt x [using y]以下是梦游的一些分析: 一、中断函数是一个特殊的函数,没有参数,也没有返回值;但是程序中允不允许使用return呢?答案是允许的,不过只能用"return;",不能用"return(z);";用在一些需要快速返回的地方,对应的汇编会有多个ret语句,相对效率会高一些。转载 2014-10-22 12:44:15 · 10511 阅读 · 0 评论 -
中断服务函数的编写要求
中断是嵌入式系统中重要的组成部分,但是在标准C中不包含中断。许多编译开发商在标准C上增加了对中断的支持,提供新的关键字用于标示中断服务程序 (ISR),类似于__interrupt、#program interrupt等。当一个函数被定义为ISR的时候,编译器会自动为该函数增加中断服务程序所需要的中断现场入栈和出栈代码。 中断服务程序需要满足如下要求: (1)不能返回值; (2)转载 2014-10-22 10:58:16 · 6841 阅读 · 0 评论 -
函数的嵌套与递归调用
函数的嵌套与递归调用函数的嵌套调用 C 语言中函数的定义都是相互平行的、相互独立的,也就是说在函数定义时,函数体内不能包含另一个函数的定义,即函数不能嵌套定义,但可以嵌套调用。在一个函数的调用过程中又调用另一个函数,这就是函数的嵌套调用。函数嵌套调用的执行过程如图。 这是两层嵌套,具体执行过程是: ①执行main的开头部分; ②遇调用time函数语句,程序流程转向执转载 2014-10-22 11:13:00 · 824 阅读 · 0 评论 -
C语言中的main函数参数及返回值
我们经常看到main函数不带参数。因此main后都是空括号。C代码 main() { ... } 实际上,main函数必须带参数,这个参数可以认为是main函数的形式参数。C语言规定main函数的参数只能有两个,习惯上这两个参数写为argc和argv。因此,main函数的函数头可写为:C代码 main (a转载 2014-10-21 20:20:07 · 890 阅读 · 0 评论 -
(原创)攻击方式学习之(3) - 缓冲区溢出(Buffer Overflow)
http://www.cnblogs.com/coderzh/archive/2008/09/06/1285693.html转载 2014-11-09 10:21:04 · 471 阅读 · 0 评论 -
ISR之不能做什么
中断是嵌入式系统中重要组成部分,很多编译器开发商都让标准c支持中断,并引入关键字_interrupt.但是:1、ISR不能有返回值;2、ISR不能传递参数;3、ISR应该是短而高效的,在ISR中做浮点运算是不明智的;4、ISR中不应该有重入和性能上的问题,因此不应该使用pintf()函数。转自CSDN1.ISR 不能有返回值。为什么?2.ISR 不能转载 2014-10-22 19:08:28 · 815 阅读 · 0 评论 -
关于ARM中断处理的问题----《ARM嵌入式系统开发-软件设计与优化》第九章中疑问
是这样的,书中讲的是如何处理中断,对于这一节中嵌套中断的处理,时能CPSR的IRQ位即是打开中断,为什么要使用栈帧,原因是这样的,ARM在IRQ中断引发时,并不进行压栈动作,只是简单的将PC值赋为中断向量位置地址,将返回值赋值给R14,注意此时返回地址并没有压栈,只是在R14中,如果在中断处理程序中使用BL指令,那么R14的值将会被覆盖,这样中断返回的地址变为BL指令调用函数的返回地址,这就会导致转载 2014-10-22 20:40:28 · 767 阅读 · 0 评论 -
第十章--中断处理 (专注于嵌入式Linux内核和驱动开发)
http://blog.chinaunix.net/uid-25445243-id-4052877.html专注于嵌入式Linux内核和驱动开发转载 2014-10-22 20:49:10 · 443 阅读 · 0 评论 -
如何在linux下检测内存泄漏
简介: 本文针对 linux 下的 C++ 程序的内存泄漏的检测方法及其实现进行探讨。其中包括 C++ 中的 new 和 delete 的基本原理,内存检测子系统的实现原理和具体方法,以及内存泄漏检测的高级话题。作为内存检测子系统实现的一部分,提供了一个具有更好的使用特性的互斥体(Mutex)类。1.开发背景在 windows 下使用 VC 编程时,我们通常需要 DEBUG 模式下转载 2014-10-22 20:51:01 · 378 阅读 · 0 评论 -
缓冲、中断和DMA技术
http://www.360doc.com/content/10/0730/11/1871462_42465665.shtml转载 2014-11-10 13:12:45 · 634 阅读 · 0 评论 -
ARM堆栈及特殊指令
ARM7支持四种堆栈模式:满递减(FD)、满递增(FA)、空递减(ED)、空递增(EA)FD:堆栈地址从上往下递减,且指针指向最后一个入栈元素。FA:堆栈地址从下往上递增,且指针指向最后一个入栈元素。ED:堆栈地址从上往下递减,且指针指向下一个可用空位。EA:堆栈地址从下网上递增,且指针指向下一个可用空位。ADSC编译器只支持FD,ucos堆栈模式只能配置递增或递减,关转载 2014-11-10 13:17:29 · 590 阅读 · 0 评论 -
中断和硬件的关系
http://www.360doc.com/content/10/0929/13/1317564_57292513.shtml转载 2014-11-15 09:55:54 · 585 阅读 · 0 评论 -
ucos试验代码实例2:互斥型信号量的应用实例--防止任务优先级反转现象的出现
续实验1-----ucos试验代码实例1:任务优先级反转在运行效果中明显看到,中等优先级的任务2抢夺了高优先级的任务1的运行权为了防止出现任务优先级反转,要使用互斥型信号量,此文就是实例与《ucos试验代码实例1:任务优先级反转》代码相比,修改了如下1.main函数中 创建互斥型信号量,允许占用信号量的任务短暂使用0优先级 Sem=OSMut转载 2014-11-16 20:00:34 · 1838 阅读 · 0 评论 -
ucos试验代码实例1:任务优先级反转
任务优先级反转:原理是,信号量是稀缺资源,当一个低优先级的任务霸占了信号量,高优先级任务想要用这个信号量只好等待,于是呢,在这个间隙里,中优先级的任务(当然,这个任务是不想用该信号量的)就获得了CPU的使用权,等低优先级任务在中优先级任务的压迫下缓慢的完成了信号量的使用并做了释放,这时高优先级的任务才得以获得信号量继续运行。这样,看实际效果呢,中优先级任务就事实上比高优先级任务更加优先了,转载 2014-11-16 15:21:28 · 2341 阅读 · 0 评论 -
嵌入式系统优先级反转问题的分析 (1)
发布时间:2006.12.18 05:02 来源:电子产品世界 作者:电子产品世界摘要: 本文介绍了嵌入式系统任务调度优先级反转的一个实例。通过实例的讨论对嵌入式系统优先级反转有一个更深入的了解,有助于在编程中避免此类问题的发生。关键词:嵌入式实时系统;VxWorks;多任务;优先级反转。引言VxWorks是美国Wind River转载 2014-11-16 15:30:53 · 759 阅读 · 0 评论 -
C语言嵌入式系统编程注意事项
http://blog.chinaunix.net/uid-22237858-id-68306.html转载 2014-11-16 20:42:21 · 474 阅读 · 0 评论 -
多线程中的使用共享变量的问题
一组并发线程运行在一个进程的上下文中,每个线程都有它自己独立的线程上下文,例如:栈、程序计数器、线程ID、条件码等,每个线程和其它的线程一起共享除此之外的进程上下文的剩余部分,包括整个用户的虚拟地址空间,当然也共享同样的打开的文件的集合。,这里有一点要特别注意,就是寄存器是从不共享的,而虚拟存储器总是共享的。有了共享就要防止在对共享变量进行操作的过程中得到一个不可知的值,在Linux内核中转载 2014-11-16 21:54:50 · 463 阅读 · 0 评论 -
关于SOC中的总线AXI/AHB/APB
很多SOC系统中,同时有多种总线互联方式,比如AXI/APB并存,或者AHB/APB并存,甚至三者同时并存于同一个系统。 我的理解,在功能上,一个总线应该就够了,比如AXI肯定能够满足AHB和APB的应用需求。 所以,为什么在同一个系统中,只实现一种高级别的总线格式,这样既可以资源开销,有可能降低系统的复杂度。 特别对于大系统的FPGA验证,很难在一片FPGA中放下所有资源,而FPGA片间的连线资转载 2014-10-21 13:45:06 · 5255 阅读 · 0 评论 -
AMBA总线新一代标准AXI分析和应用
http://www.dzsc.com/data/html/2009-7-21/77744.html微计算机信摘要:随着多核、多级内存及众多外设的 SoC 设计的复杂化,急需一种性能更好、更加灵活的片上互连总线体系结构。AXI 是ARM 新推出的新一代AMBA 片上总线,AXI 的一序列新特点满足了高性能、高带宽、高速度的现代SoC 设计的要求。本文介绍了AXI 的新特性,并和旧一转载 2014-10-21 14:38:25 · 999 阅读 · 0 评论 -
总线错误和段错误问题的定位
对现在的很多初级的程序原来说如果遇到总线错误(bus error)或者段错误(segementation fault/ core dump)是一件非常折磨人的事,让人一时间找不到什么好的方法也不知从何处下手去解决这个问题;和许多人一样,我很快也遇到了这样的问题: 出现这个错误时,错误信息对引起这种事件的的错误的源代码并没有做简单或者详细的解释;知识简单的显示error:segem转载 2014-10-22 11:10:13 · 596 阅读 · 0 评论