ΜC/OS-III内核实现与应用开发实战指南:基于STM32
举报
全新正版 极速发货
作者:
刘火良 杨森
出版社:
机械工业出版社
ISBN:
9787111628248
出版时间:
2019-06
装帧:
平装
开本:
16开
ISBN:
9787111628248
出版时间:
2019-06
售价
¥
72.94
5.7折
定价
¥129.00
品相
全新
上书时间 2024-11-25
卖家超过10天未登录
商品描述:
作者简介 刘火良,野火STM32开发板创始人,嵌入式软件工程师,长期从事STM32软硬件开发,网络教程《零死角玩转STM32》作者,著有《STM32库开发实战指南》。 目录 前言引言部分 从0到1教你写C/OS内核章 新建工程—软件仿真21.1 新建本地工程文件夹21.2 使用KEIL新建工程21.2.1 New Project21.2.2 Select Device For Target31.2.3 Manage Run-Time Environment31.3 在KEIL工程中新建文件组41.4 在KEIL工程中添加文件41.5 调试配置61.5.1 设置软件仿真61.5.2 修改时钟大小61.5.3 添加头文件路径7第2章 裸机系统与多任务系统82.1 裸机系统82.1.1 轮询系统82.1.2 前后台系统92.2 多任务系统10第3章 任务的定义与任务切换133.1 多任务系统中任务的概念143.2 创建任务153.2.1 定义任务栈153.2.2 定义任务函数163.2.3 定义任务控制块173.2.4 实现任务创建函数183.3 操作系统初始化223.4 启动系统243.5 任务切换273.6 main()函数333.7 实验现象37第4章 任务时间片运行394.1 SysTick简介394.2 初始化SysTick404.3 编写SysTick中断服务函数414.4 main()函数424.5 实验现象44第5章 空闲任务与阻塞延时455.1 实现空闲任务455.1.1 定义空闲任务栈455.1.2 定义空闲任务的任务控制块465.1.3 定义空闲任务函数475.1.4 空闲任务初始化475.2 实现阻塞延时485.3 main()函数505.4 实验现象52第6章 时间戳536.1 时间戳简介536.2 时间戳的实现536.3 时间戳代码546.3.1 CPU_Init()函数546.3.2 CPU_TS_Init()函数556.3.3 CPU_TS_TmrInit()函数566.3.4 BSP_CPU_ClkFreq()函数576.3.5 CPU_TS_TmrFreqSet()函数586.3.6 CPU_TS_TmrRd()函数586.3.7 OS_TS_GET()函数596.4 main()函数596.5 实验现象61第7章 临界段627.1 临界段简介627.2 Cortex-M内核快速关中断指令627.3 关中断637.4 开中断637.5 临界段代码的应用647.6 测量关中断时间687.6.1 测量关中断时间初始化687.6.2 测量优选关中断时间697.6.3 获取优选关中断时间707.7 main()函数717.8 实验现象71第8章 就绪列表728.1 优先级表的定义及函数728.2 就绪列表的定义及函数808.3 main()函数888.4 实验现象88第9章 多优先级899.1 定义优先级相关全局变量899.2 修改OSInit()函数899.3 修改任务控制块909.4 修改OSTaskCreate()函数909.5 修改OS_IdleTaskInit()函数929.6 修改OSStart()函数939.7 修改PendSV_Handler()函数939.8 修改OSTimeDly()函数949.9 修改OSSched()函数959.10 修改OSTimeTick()函数979.11 main()函数989.12 实验现象1010章 时基列表10310.1 实现时基列表10310.1.1 定义时基列表变量10310.1.2 修改任务控制块10410.1.3 实现时基列表相关函数10610.2 修改OSTimeDly()函数11310.3 修改OSTimeTick()函数11410.4 main()函数11410.5 实验现象1141章 时间片11511.1 实现时间片11511.1.1 修改任务控制块11511.1.2 实现时间片调度函数11611.2 修改OSTimeTick()函数11811.3 修改OSTaskCreate()函数11811.4 修改OS_IdleTaskInit()函数12011.5 main()函数12011.6 实验现象1222章 任务的挂起和恢复12412.1 实现任务的挂起和恢复12412.1.1 定义任务的状态12412.1.2 修改任务控制块12512.1.3 编写任务挂起和恢复函数12612.2 main()函数13112.3 实验现象1333章 任务的删除13413.1 实现任务删除13413.2 main()函数13613.3 实验现象136第二部分 C/OS-III内核应用开发4章 移植C/OS-III到STM3213814.1 获取STM32的裸机工程模板13814.2 下载C/OS-III源码13814.3 C/OS-III源码文件介绍14114.3.1 EvalBoards14114.3.2 C-CPU14114.3.3 C-LIB14314.3.4 C/OS-III14314.4 移植到STM32工程14514.4.1 在工程中添加文件分组14514.4.2 添加文件到对应分组14514.4.3 添加头文件路径到工程中14614.4.4 具体的工程文件修改14714.4.5 修改源码中的bsp.c与bsp.h文件14914.5 按需配置最适合的工程15114.5.1 os_cfg.h15114.5.2 cpu_cfg.h15314.5.3 os_cfg_app.h15414.6 修改app.c15514.7 下载验证1575章 创建任务15815.1 硬件初始化15815.2 创建单任务16015.2.1 定义任务栈16015.2.2 定义任务控制块16015.2.3 定义任务主体函数16015.2.4 创建任务16115.2.5 启动任务16315.2.6 app.c16315.3 下载验证单任务16615.4 创建多任务16615.5 下载验证多任务1716章 C/OS-III的启动流程17216.1 “万事俱备,只欠东风”法17216.2 “小心翼翼,十分谨慎”法17316.3 两种方法的适用情况17516.4 系统的启动17516.4.1 系统初始化17516.4.2 CPU初始化17916.4.3 SysTick初始化18216.4.4 内存初始化18316.4.5 OSStart()函数18316.4.6 app.c1847章 任务管理18717.1 任务的基本概念18717.2 任务调度器的基本概念18817.3 内容摘要 本书基于野火STM32全系列开发板介绍uC/OS-III内核实现与应用开发,全书分为两部分,第壹部分先教你如何从0到1把uC/OS-III内核写出来,从底层的汇编开始讲解任务如何定义、如何切换,还讲解了阻塞延时如何实现、如何支持多优先级、如何实现任务延时列表以及时间片等uC/OS的核心知识点;第二部分讲解uC/OS-III内核组件的应用以及使用uC/OS-III进行多任务编程。本书内容翔实,案例丰富,配有大量示例代码,适合作为嵌入式领域科技工作者的参考书,也适合相关专业的学生学习参考。 精彩内容 如何学习本书本书从0开始教你如何把C/OS-III写出来,既讲解源码实现,也讲解API如何使用。当你拿到本书开始学习时一定会惊讶,原来RTOS(Real Time Operation System,实时操作系统)的学习并没有那么复杂,原来自己也可以写操作系统,成就感立马爆棚。全书内容循序渐进,不断迭代,前一章都是后一章的基础,因此最好从头开始阅读,不要跳跃。在学习时务必做到两点:一是不能一味地看书,要把代码和书本结合起来学习,一边看书,一边调试代码。如何调试代码呢?即单步执行每一条程序,看程序的执行流程和执行效果与自己所想的是否一致;二是在每学完一章之后,必须将配套的例程重写一遍(切记不要复制,哪怕是一个分号,但可以照书录入),以做到举一反三,确保真正理解。在自己写的时候肯定会错漏百出,这个时候要认真纠错,好好调试,这是你提高编程能力的最好机会。记住,编写程序不是一气呵成的,而是要一步一步地调试。本书的编写风格本书以C/OS-III官方源码为蓝本,抽丝剥茧,不断迭代,教你逐步写出C/OS-III。书中涉及的数据类型、变量名称、函数名称、文件名称、文件存放的位置都完全按照C/OS-III官方的方式来实现。学完本书之后,可以无缝地切换到原版的C/OS-III中使用。要注意的是,在实现的过程中某些函数中会去掉一些形参和冗余的代码,只保留核心的功能,但这并不会影响学习。注意,本书的目的并不是让你自己写一个操作系统,而是让你了解C/OS-III是如何写出来的,着重讲解原理实现,当你学完这本书之后,再学习其他RTOS将会事半功倍。本书的技术论坛如果在学习过程中遇到问题,可以到野火电子论坛www.firebbs.cn发帖交流,开源共享,共同进步。鉴于水平有限,本书难免有错漏之处,热心的读者也可把勘误发送到论坛上以便改进。祝你学习愉快,C/OS-III的世界,野火与你同行。
孔网啦啦啦啦啦纺织女工火锅店第三课
开播时间:09月02日 10:30
即将开播,去预约
直播中,去观看