b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

rtos的书_freertos_rtos有哪些

电脑杂谈  发布时间:2017-04-08 11:13:57  来源:网络整理

rtos的书_freertos_rtos有哪些

结合实际一起看,效果会好的多。

书籍上讲的多是理论,可以自己再去找个开源的嵌入式OS,一起看着代码实现,就会好的多了。比如FreeRTOS,可以也买本书,学会编译,并在电脑里当成个应用跑起来,学会自己创建进程、协程后,进入对应的API实现看看。内核的调度、优先级、内存管理、资源管理、抢占式任务切换等等。

选择嵌入式OS是因为足够小,毕竟要为这个事情读Linux源码就是个大坑。FreeRTOS拥有大部分现代OS的各种核心功能,用来学习真是个好的例子。我也是学了FreeRTOS后,才逐渐让数年前操作系统的知识变得灵活起来了。

举几个例子,在FreeRTOS中的实现:

rtos有哪些_rtos的书_freertos

1. 线程管理:

给每个线程建立个私有的堆栈,每次程里调用任何的函数,所需的参数传递、本地变量等都是放程私有堆栈里的。这样各个线程之间不会发生混乱。该堆栈的建立一般还有个最大长度值,以免浪费内存过多,同时也限制了递归过深的情况。需要OS应用一开始就进行一个估算,调用栈会有多深。

2. 内存管理:

一般是先从物理内存里申请一大块内存,建立针对这块内存的分配表,每当有申请内存就记录一条,释放内存就选择时机将剩余内存合并。分配策略有多种,比如按照顺序,或者优先选择符合条件的最小空闲段。每个线程都建立自己的堆,有助于提高内存分配效率。

3. 进程/线程切换:

使用系统硬件上的定时器,每隔一定时间就发生一次硬件中断,此时当前进程/线程被停止,所有寄存器被保存到进程私有栈里。两次中断之间实际执行任务代码的部分,就叫做一个时间片。然后调用中断处理函数。这个中断处理函数就是OS内核里的任务切换功能,会重新选择处于就绪(ready)状态的各个任务中优先级最高的那个来运行。所以,理解并实现这个中断处理函数,就是理解任务切换的关键。rtos的书放心代码不长。

4. OS内核调用:

现代的CPU,包括一些嵌入式MCU,都会严格区分user space和kernel space。两者的各种资源相对独立,甚至堆栈都不同。当user application需要调用内核提供的服务时,往往是将自己要调用的内核调用符号、参数、返回值放到内存中指定位置,然后触发一个软件中断。比如Cortex-M系列的SVCall,或者DOS的80中断。此时就切换到了kernel mode。rtos的书此模式下的中断处理函数会根据系统调用内容分发调用请求,执行结束后,再根据返回地址跳转回去。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-40178-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 黄奕丹
        黄奕丹

        成为网络红人找网络推手阿建合作

      • 薛戎
        薛戎

        此君明白人

      热点图片
      拼命载入中...