〔写在OS边上〕定性note】的更多相关文章

转载:http://tieba.baidu.com/p/1273477757 0 neta 有的时候我们在读书或者看文档.——啊,原来这东西的框架就是这样而已,很直白么.有的时候我们在读代码.——于是也不免有一点抱怨:作者多写一点注释又不会累死.(尤其是在作者花了相当篇幅威胁某个禁止他测试DDoS attacker的管理员但懒得多写点解释的情况下.)不过读完了代码稍微回顾一下的话,又会发现[其实这里那里的根本就不需要注释].如果只求行尸走肉般的实现,OS也是这么一种东西. 有的时候我会想起以前从…
一.上篇回顾 上一篇文章中,我们完成了两个任务使用PendSV实现了互相切换的功能,下面我们接着其思路往下做.这次我们完成OS基本框架,即实现一个非抢占式(已经调度的进程执行完成,然后根据优先级调度等待的进程)的任务调度系统,至于抢占式的,就留给大家思考了.上次代码中Task_Switch实现了两个任务的切换,代码如下: void Task_Switch() { if(g_OS_Tcb_CurP == &TCB_1) g_OS_Tcb_HighRdyP=&TCB_2; else g_OS_…
一直想写个类似uCOS的OS,近段时间考研复习之余忙里偷闲,总算有点成果了.言归正传,我觉得OS最难的部分首先便是上下文切换的问题,他和MCU的架构有关,所以对于不同的MCU,这部分需要移植.一旦这个问题解决了,整个OS算是成功了一半了,当然,是对于简单的OS. 好了,要写一个OS,首先需要一个开发板和仿真器.我的开发板是STM32F4DISCOVERY,自带ST-LINK V2仿真器,板载MCU为STM32F407VGT6,支持FPU,32位ARM Cortex-M4F核,1024KB FLA…
一.什么是PendSV PendSV是可悬起异常,如果我们把它配置最低优先级,那么如果同时有多个异常被触发,它会在其他异常执行完毕后再执行,而且任何异常都可以中断它.更详细的内容在<Cortex-M3 权威指南>里有介绍,下面我摘抄了一段. OS 可以利用它“缓期执行”一个异常——直到其它重要的任务完成后才执行动 作.悬起 PendSV 的方法是:手工往 NVIC的 PendSV悬起寄存器中写 1.悬起后,如果优先级不够 高,则将缓期等待执行. PendSV的典型使用场合是在上下文切换时(在不…
一.安装IAR for ARM6.5 二.新建工程 1.选择处理器:STM32F407VG,暂不使用FPU 2.必要的路径配置和宏定义 3.使用SWO重定向IO输出 4.使用ST-LINK仿真器 5.下载配置 6.设置CPU频率,防止SWO输出乱码 三.代码调试 四.工程下载 stepbystep_stm32_os_template.rar…
在 windows 中写操作系统,需要一系列的辅助工具.在此,要感谢川谷秀实!所有工具,都在 z_tools 文件夹中.有了大师的帮助,不妨也来尝试在 windows 中写一把 OS. 源代码及工具可到 x01.Lab.Download 中下载.进入 src 文件夹,只有两个文件,一个是 run.bat, 一个是 boot.s.boot.s  都是大同小异的,skip!run.bat 内容如下: ..\z_tools\nask boot.s boot.bin boot.txt ..\z_tool…
iOS冰与火之歌(番外篇) 基于PEGASUS(Trident三叉戟)的OS X 10.11.6本地提权 蒸米@阿里移动安全 0x00 序 这段时间最火的漏洞当属阿联酋的人权活动人士被apt攻击所使用的iOS PEGASUS(又称Trident三叉戟)0day漏洞了.为了修复该漏洞,苹果专门发布了一个iOS 9.3.5版本.这个漏洞的厉害之处在于可以直接从沙盒内对内核进行攻击(无需沙盒逃逸),并且同时影响iOS(9.3.4)和OS X (10.11.6).因此,本篇文章将会从PEGASUS漏洞形…
os.O_WRONLY | os.O_CREATE | O_EXCL           [如果已经存在,则失败] os.O_WRONLY | os.O_CREATE                         [如果已经存在,会覆盖写,不会清空原来的文件,而是从头直接覆盖写] os.O_WRONLY | os.O_CREATE | os.O_APPEND  [如果已经存在,则在尾部添加写]…
High Precision Timers in iOS / OS X The note will cover the do's and dont's of using high precision timers on iOS and OS X. High Precision Timers in iOS / OS X Do I need a high precision timer? A suggestion for synchronizing with display updates How…
os模块的功能主要包括文件系统部分和进程管理部分,这里介绍其中与文件系统相关的部分. 当请求操作系统执行操作失败时,os模块抛出内置异常 exceptions.OSError 的实例,可以通过 os.error 访问这个类型,OSError的实例有三种属性: errno:操作系统错误的错误代码 strerror:描述错误的字符串: filename:操作在哪个文件上出错. 1. os模块提供的有用属性: 1.1 curdir >>> os.curdir '.' 表示当前目录的字符串,Un…