- 博客(86)
- 收藏
- 关注
翻译 线程自定义数据
线程自定义数据 每个线程都有一个32位的自定义数据,这个数据可以被应用程序用来传输任何数据相关概念 每个线程都有一个32位的自定义数据区,这个自定义数据只能被线程自己访问,并且可以被应用程序传输任何数据。默认情况下自定义数据是0 note:中断服务函数是没有自定义数据的,因为中断服务函数是在一个单一共享的内核中断处理上下文中操作的自定义数据的实现使用自定义数据
2017-07-09 16:30:50 329
翻译 线程调度
线程调度 内核调度器是基于优先级实现的,他可以使应用程序线程共享CPU相关概念线程状态 一个已经是就绪状态的线程是不会被阻止其运行的,并有可能被调度器选择为当前线程 线程优先级 调度算法协作时间片抢占时间片调度器上锁线程睡眠忙等待推荐用法配置选项APIs
2017-07-09 10:45:07 419
翻译 线程生命周期
线程生命周期 线程是一个内核对象,应用程序通过线程可以处理一些中断服务函数不能处理的那些执行时间太长或者逻辑太复杂的任务相关概念 一个应用程序可以定义任务数量的线程,每个线程在派生的时候都会返回一个线程ID,应用程序可以通过线程ID来引用线程。一个线程有一下几个属性: ①每个线程独自拥有的一块内存区域“栈”,这个栈的空间大小可以根据线程处理的任务需要指定 ②内核
2017-07-09 10:29:30 351
原创 嵌入式软件分层
首先需要说明为什么要分层?这样做会有什么好处? 解耦:通过代码分层实现“高内聚”和“低耦合”,每个层、模块间在功能上独立 扩展性/可维护性强:因为各层及模块间功能相互独立,没有严格依赖关系,所以它的扩展性/可维护性比较强 移植性:每一层都实现指定功能,与其他模块通过指定接口建立联系,所以移植起来比较方便 问题简单化:通过功能逐步细化,可以把复杂的功能简单化,简化代码
2017-07-09 09:45:56 4242 1
翻译 Zephyr内核到1.5版本的改进
Zephyr内核从1.0到1.5版本发生了很大改变,这些改变给开发人员带来了很大方便,具体如下:①消除微内核和超微内核构建类型的分离②消除微内核应用程序中的MDEF③更简单易用的内核API④宽松了内核对象的使用限制⑤通过合并重复的服务减少内存消耗⑥通过减少上下文的切换减少开销、提高性能更加详细的改变如下描述:⑴应用程序设计相关早期独立的微内核和超微内核被
2017-07-02 16:07:39 351
翻译 Zephyr源码树
理解Zephyr源码树结构相当于理解整个操作系统源码分布结构,这对于我们理解源码会有些帮助。下面列出了源码树中顶级目录,每个顶级目录下还会有一个或多个子目录。arch:不同架构指定的内核代码和片上系统代码,每一个架构有一个单独目录,在这个单独目录中包括如下内容:①架构相关的源文件②架构相关的头文件,里面包含不同架构的私有APIs③架构相关的片上系统代码boards:
2017-07-02 10:26:31 1356
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人