Cortex-M3 + μC/OS-II嵌入式系统开发入门与应用

当前位置:首页 > 计算机网络 > 操作系统/系统开发 > Cortex-M3 + μC/OS-II嵌入式系统开发入门与应用

出版社:人民邮电
出版日期:2010-8
ISBN:9787115231055
作者:陈瑶,李佳,宋宝华
页数:303页

章节摘录

插图:   实时性:响应外部事件的时间必须在限定的时间范围内,在某些情况下还需要是确定的、可重复实现的,不管当时系统内部状态如何,都必须是可预测的。 抢占式调度:为确保响应时间,实时操作系统必须允许高优先级的任务一旦进入就绪状态,就可以马上抢占正在运行的低优先级任务的执行权。 具有异步响应能力:异步事件是指无一定时序关系、随机发生的事件。如实时控制设备出现异常等突发事件,都属于随机事件。实际环境中,嵌入式实时系统需要处理多个外部事件,这些事件往往同时出现,而且发生的时刻也是随机的。实时操作系统应有能力对这类同时发生的外部事件进行有效的处理。 内存锁定:必须具有将程序部分代码锁定在内存的能力,将频繁访问的数据锁定在内存,减少了为获得该数据而访问磁盘的时间,从而保证了快速的响应时间。 具有优先级调度机制:实时操作系统必须允许用户定义中断和任务的优先级,并具有相应的优先级调度机制。 同步/互斥机制:提供对共享数据的同步和互斥手段。 实时操作系统能对外部事件和信号在限定的时间范围内作出响应,它所强调的是实时性、可靠性和灵活性。实时操作系统一般与实时应用软件相结合成为有机整体:用实时操作系统来管理和调度实时应用软件的各项任务,为应用软件提供良好的运行和开发环境。一般来说,实时操作系统以库的形式提供系统调用来实现对上层实时应用程序的支持;而应用程序通过链接实时操作系统的库来实现实时任务调度。

前言

Concx-M3是ARM公司推出的最新的针对微控制器应用的内核,它提供了业界领先的高性能和低成本的解决方案,将成为MCU(Micro Controller Unit,微控制单元)应用的热点和主流。Concx-M3是一个32位的核,在传统的单片机领域中,有一些不同于通用32位CPU应用的要求,谭军博士曾说,在工控领域,用户要求具有更快的中断速度,而Concx-M3采用了Tail-Chaining中断技术,完全基于硬件进行中断处理,最多可减少12个时钟周期,在实际应用中可减少 70%的中断。完全符合用户的需求。 Codex-M3采用了新型的单线调试(Single Wire)技术,专门拿出一个引脚来做调试,从而-节约了大笔调试工具的费用。同时,Codcx-M3中还集成了大部分存储器、控制器,这样工程师可以直接在MCU外连接Flash,降低了设计和应用的难度。

内容概要

李佳,高级软件工程师,曾任职于微软中国研究院。现任职于东软集团,担任项目经理一职,负责客户关系管理系统在电信行业中的应用。从事软件开发近10年时间,曾主持开发过某省教育厅学籍学历查询系统。清华大学土木水利学院实验室管理信息系统。网上购物平台等各种大型系统。熟悉各种开发语言和工具,尤其擅长C#。对软件开发有深刻的认识,具有丰富的应用型软件开发经验。
宋宝华

华清远见金牌讲师,著有《Linux设备驱动开发详解》,译有《Essential Linux Device Drivers》,曾为思科、阿尔卡特、朗讯、四方、意法半导体等知名企业提供嵌入式Linux企业培训和技术服务,受到企业广泛好评。活跃于Linux社区,已给Linux内核贡献了逾2万行代码。

陈瑶

华清远见特邀顾问,任教于北京工业大学计算机学院,计算机软件与理论系。长期以来从事软件工程和嵌入式开发方面的教学与科研工作。曾于2004年作为访问学者在美国Llniversity of Massachusetts进修。参加过多项国家自然科学基金、北京市自然科学基金项目,发表多篇论文。

书籍目录

第1部分
第1章 走进arm微处理器 3
1.1 arm体系结构的源头——arm公司 3
1.2 arm处理器的发展历程 4
1.3 arm体系结构 5
1.3.1 arm cortex处理器技术特点 6
1.3.2 arm cortex系列处理器比较 7
1.4 arm v7新增指令 12
1.4.1 位操作指令 13
1.4.2 比特反转指令 13
1.4.3 16-bit常数操作 13
1.4.4 调转表指令 14
1.4.5 it指令 14
1.4.6 检查是否为零并跳转指令(cbz) 14
第2章 cortex-m3处理器体系结构 16
2.1 cortex-m3综述 16
2.2 cortex-m3编程模式 17
2.2.1 cortex-m3的工作模式和工作状态 18
2.2.2 特权访问和用户访问 18
2.2.3 cortex-m3的寄存器组织 18
.2.2.4 cortex-m3的数据类型 19
2.2.5 cortex-m3的存储器格式 20
2.3 cortex-m3的存储器管理 21
2.3.1 存储器映射 21
2.3.2 bit-banding机制 23
2.4 cortex-m3的异常处理 24
2.4.1 异常优先级 26
2.4.2 异常处理的堆栈使用 27
2.4.3 cortex-m3特有的异常处理机制 29
2.4.4 异常退出 30
2.4.5 复位异常 31
2.4.6 中止(abort)异常 34
2.5 cortex-m3的电源管理 37
2.5.1 sleeping 37
2.5.2 sleepdeep 38
2.6 嵌套向量中断控制器nvic 38
2.7 存储器保护单位mpu 41
2.8 cortex-m3开发平台——stm32v100评估板介绍 43
第3章 arm开发环境realview mdk平台搭建 46
3.1 常用arm开发工具 46
3.1.1 免费平台gnu 47
3.1.2 realview developmentsuite开发工具 48
3.1.3 arm硬件仿真器multi-ice与multi-trace 49
3.1.4 multi 2000 50
3.1.5 hitool for arm 50
3.1.6 realview mdk 50
3.2 realview mdk概述 51
3.3 realview mdk的使用 54
3.3.1 创建工程 54
3.3.2 编译、链接工程 57
3.3.3 程序调试 59
3.3.4 工程选项设置 60
3.4 仿真工具——ulink2 61
3.5 realview mdk工程实例 62
第4章 基于realview开发环境的嵌入式软件开发 66
4.1 realview编译器的缺省行为 66
4.1.1 semihosting 66
4.1.2 c库结构 69
4.1.3 默认存储器映射 70
4.1.4 链接程序放置规则 71
4.1.5 应用程序启动 71
4.2 调整c库使其适应目标硬件 73
4.2.1 c库函数重定向 73
4.2.2 从最终代码映像中去掉semihosting 74
4.3 映像文件存储器映射调整 74
4.3.1 关于分散加载 74
4.3.2 scatter文件语法 78
4.3.3 scatter文件典型用法 85
4.3.4 等效的简单映像分散载入描述 91
4.4 复位和初始化 95
4.4.1 初始化序列 95
4.4.2 向量表 96
4.4.3 rom/ram重映射 97
4.4.4 与局部存储器设置有关的考虑事项 100
4.4.5 栈指针初始化 100
4.4.6 硬件初始化 102
第5章 stm32f103处理器内部资源c编程与实例 104
5.1 i/o控制模块c编程与实例 104
5.1.1 实例内容与目标 104
5.1.2 i/o控制模块操作原理 104
5.1.3 i/o控制实例操作步骤 109
5.1.4 i/o控制实例参考程序及说明 109
5.2 中断控制模块c编程与实例 112
5.2.1 实例内容与目标 112
5.2.2 中断模块nvic的操作原理 113
5.2.3 中断控制实例操作步骤 115
5.2.4 中断控制实例参考程序及说明 116
5.3 a/d转换和dma编程实例 119
5.3.1 实例内容与目标 119
5.3.2 a/d转换控制器与dma控制器操作原理 119
5.3.3 a/d转换和dma编程实例操作步骤 126
5.3.4 a/d转换和dma编程实例参考程序及说明 126
5.4 实时钟rtc编程实例 133
5.4.1 实例内容与目标 133
5.4.2 stm32f103实时钟操作原理 134
5.4.3 实时钟rtc编程实例操作步骤 135
5.4.4 实时钟rtc编程实例参考程序及说明 136
5.5 串行外设接口spi编程实例 139
5.5.1 实例内容与目标 139
5.5.2 spi接口操作原理 139
5.5.3 spi接口实例操作步骤 144
5.5.4 spi接口实例参考程序及说明 144
5.6 can总线编程实例 149
5.6.1 实例内容与目标 149
5.6.2 can总线操作原理 149
5.6.3 can总线编程实例操作步骤 156
5.6.4 can总线实例参考程序及说明 157
5.7 窗口看门狗wwdg实例 163
5.7.1 实例内容与目标 163
5.7.2 wwdg操作原理 164
5.7.3 看门狗实例操作步骤 166
5.7.4 看门狗实例参考程序及说明 166
5.8 uart编程实例 169
5.8.1 实例内容与目标 169
5.8.2 uart编程原理 169
5.8.3 串口编程实例操作步骤 180
5.8.4 串口编程实例参考程序及说明 180
第2部分
第6章 μc/os-ⅱ操作系统基础及其移植开发初步 189
6.1 实时操作系统基本原理与技术 189
6.1.1 实时操作系统基本特征 189
6.1.2 实时操作系统的关键技术指标 190
6.1.3 实时操作系统基本术语 191
6.2 μc/os-ⅱ应用程序开发 192
6.2.1 μc/os-ⅱ的变量类型 192
6.2.2 应用程序的基本结构 193
6.2.3 μc/os-ⅱ api介绍 194
6.2.4 μc/os-ⅱ多任务实现机制 195
6.3 μc/os-ⅱ在stm32f103处理器上的移植 196
6.3.1 移植条件 196
6.3.2 移植步骤 197
第7章 μc/os-ⅱ的内核机制 203
7.1 μc/os-ⅱ的内核结构 203
7.1.1 临界段 203
7.1.2 任务 204
7.1.3 任务状态 205
7.1.4 任务调度 206
7.1.5 中断处理 208
7.1.6 μc/os-ⅱ初始化 209
7.1.7 μc/os-ⅱ启动 209
7.2 μc/os-ⅱ的任务管理 211
7.2.1 任务建立 211
7.2.2 任务堆栈 214
7.2.3 堆栈检验 214
7.2.4 改变任务优先级 217
7.2.5 挂起任务 220
7.2.6 恢复任务 222
7.2.7 删除任务 224
7.2.8 请求删除任务 227
7.3 μc/os-ⅱ的时间管理 229
7.3.1 任务延时 230
7.3.2 时/分/秒延时函数 231
7.3.3 恢复延时任务 233
7.3.4 系统时间 235
7.4 任务之间通信与同步 236
7.4.1 事件控制块ecb 237
7.4.2 初始化任务控制块 240
7.4.3 使任务进入就绪态 240
7.4.4 使任务进入等待某事件发生状态 243
7.4.5 由于等待超时而将任务置为就绪态 243
7.4.6 信号量 244
7.4.7 邮箱 252
7.4.8 消息队列 261
7.5 内存管理 274
7.5.1 内存控制块 274
7.5.2 建立内存分区 275
7.5.3 分配内存块 278
7.5.4 释放内存块 279
7.5.5 等待内存块 280
第8章 基于μc/os-ⅱ的程序设计实例 283
8.1 实例介绍 283
8.2 实例分析 283
8.2.1 实例任务划分 283
8.2.2 实例任务设计与优先级分配 284
8.3 任务实现详解 285
8.3.1 键盘任务 286
8.3.2 显示任务 293
8.3.3 使用延时函数的采样任务 296
8.3.4 使用时钟节拍钩子函数的采样任务 297
8.3.5 使用定时中断的采样任务 299
8.3.6 使用高优先级中断的采样任务 301
8.3.7 串口发送任务 302
参考文献 304

编辑推荐

《Cortex-M3 +μC/OS-II嵌入式系统开发入门与应用》:详细介绍Cortex—M3的内核结构、编程模式及其开发工具从Cortex-M3 +μC/OS-II上的移植入手,介绍在Cortex—M3平台上用μC/OS-II操作系统开发的方法通过一个Cortex-M3 +μC/OS-II完整应用实例全面了解开发过程《Cortex-M3 +μC/OS-II嵌入式系统开发入门与应用》介绍了Cortex—M3内核和在Cortex-M3平台上用pCOS操作系统开发的方法,内容涵盖:走进ARM微处理器Cortex—M3处理器体系结构ARM开发环境RealView MDK平台搭建基子ReaIView开发环境的嵌入式软件开发STM32F103处理器内部资源C编程与实例μCOS-II操作系统基础及其移植开发初步μCOS-II的内核机制基于μCOS-II的程序设计实例

作者简介

《Cortex-M3 +μC/OS-II嵌入式系统开发入门与应用》首先讲解了Cortex-M3处理器的架构及RealViewMDK开发平台的相关知识,然后对μC/OS-Ⅱ的内核移植、驱动开发、应用程序开发进行了介绍,最后综合运用所学知识介绍了一个μC/OS-Ⅱ的程序设计实例。
《Cortex-M3 +μC/OS-II嵌入式系统开发入门与应用》内容由浅入深,为加深理解,列举了很多程序设计的相关实例。
《Cortex-M3 +μC/OS-II嵌入式系统开发入门与应用》适合嵌入式初学者、嵌入式开发人员以及高校相关专业师生阅读。

图书封面


 Cortex-M3 + μC/OS-II嵌入式系统开发入门与应用下载



发布书评

 
 


精彩短评 (总计25条)

  •     内容拼凑,讲解不详,有点愧对书名
  •     可以,用得上!
  •     内容清晰 很不错 值得珍藏
  •     需要学习CM3和Ucos的,所以买了这本书。打开一读,发现真是糟蹋了这么好的一个书名啊!书的内容整个就是一个拼凑,一点都没有系统性,而且好多地方跟主题都不搭边。e.g. 介绍实时系统时,... 阅读更多
  •     七拼八凑的,而且没有完整的源代码,都是一些零星的代码段,没法看,一点实用价值都没有,可怜我的30元钱,其他兄弟姐妹们看了评价后千万别买。
  •     和想像的有差距。感觉有的地方有错误。但总的来说,还是不错的。
  •     拿到手就后悔了,里面的排版乱七八糟的,尤其是最后面的ucos例程,跟所谓的作者联系了,他说什么“排版不影响阅读”,你妈~~~前面的处理器介绍都是抄别人的技术手册,一点意义都没有。关键的USB都没有。总之,如果你想买最好先去书店看看再说。... 阅读更多
  •     这书一点用也没有 写的一点都不好!~建议不要买!~谁买谁后悔!~
  •     just so so.大家要挑好书再下手咧
  •     本来以为本书是Cortex-M3和μC/OS-II结合的一本书呢,可实际一看,整个就是两个内容的精减然后再加一块,最后就一个例子,写的还不详细,上当了
  •     我买这本书的出发点是想看下关于移植方面的。谁知道这边书关于移植的也不多。 不过书本的纸质很不错
  •     太快了,前后差几分钟,三本书分成了两个包裹,就是一个目的:赶时间,追求真正的卓越,佩服!!只是可能会增加运费?在此真诚地说声谢谢!!
  •     我只能说:我很不满意!书非常的旧 并且封面和前几页都有褶皱。失望、失望……
  •     ETW
  •     这本书三百多页,可是前200页基本上是在胡扯,搬别人的东西来增加页数的,增加的内容还很烂,昨天拿到书一口气就看了前面的200页不想再看下去了,UCOS章节还没有看,但可以想象内容也一定不昨滴,所以想学STM32或者UCOS的单片机爱好者最好不要像我一样上当。这书不值得。
  •     我买了一本看过之后感觉就是一般数据手册!垃圾至极可谓无人能及!希望朋友们不要再次上当!希望这本书的作者出来道歉!
  •     本书适合,想学嵌入式的人,入门时可以的!!还不错的一本书!!!
  •     本书内容我很喜欢,书的质量也不错
  •     整页整页的抄袭啊。。。攒书真简单
  •     书里面的内容大多是从别的书上或者手册上翻译过来的
  •     商品很好,速度很快,卓越很卓越!!!!
  •     刚刚接触嵌入式的朋友可以参考看看
  •     这本书不适合嵌入式系统的初学者看,因为书讲得很浅显,很简略。适合会嵌入式的人作为一个讲义。
  •     我也买了一本,这本书真的很垃圾啊,垃圾中的垃圾
  •     这本书感觉有一种拼书的感觉,想看STM32不详细,看UCOSII,又不够详细没有什么用。
 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024