8.1 阅读本章所必备的知识 本章和下一章要讲解的内容和 Cortex-M 处理器的内核架构联系非常紧密!阅读本章必须先 对 Cortex-M 处理器的架构有一定的了解,在学习本章的时候一定要配合《权威指南》来学习, 推荐大家仔细阅读《权威指南》中的如下章节: 1、第 3 章 技术综述,通过阅读本章可以对 Cortex-M 处理器的架构有一个大体的了解。 2、第 4 章 架构,强烈建议仔细阅读本章内容,尤其是要理解其中讲解到的各个寄存器。 3、第 5 章 指令集,本章和下一章的内容会涉及到一些有关 ARM 的汇编指令,在阅读的 时遇到不懂的指令可以查阅《权威指南》的第 5 章中相关指令的讲解。 4、第 7 章 异常和中断,大概了解一下 。 5、第 8 章 深入了解异常处理,强烈建议仔细阅读! 6、第 10 章 OS 支持特性, 强烈建议仔细阅读! 《权威指南》中的其他章节大家依据个人爱好来阅读,由于《权威指南》讲解的内容非常 的“底层”,所以看起来可能会感觉晦涩难懂,如果看不懂的话不要着急,看不懂的地方就跳过, 先对 Cortex-M 的处理器有一个大概的了解就行了。笔者第一次看宋岩翻译的那本《ARM Cortex- M3 权威指南》的时候就一点都没看懂,在后面的工作中因为工作需要才硬着头皮看的,不知道 看了多少遍,反正书已经翻烂了,现在看第三版的《权威指南》估计也就能看懂个 40%~50%吧。 8.2 调度器开启过程分析 在本节中会涉及到 ARM 的汇编指令,有关涉及到的 ARM 指令的详细使用情况请参考《权 威指南》的“第 5 章 指令集”。《权威指南》的这一章节对 Cortex-M3/M4 内核的所有指令做了 非常详细的接收,包括指令的含义、使用方法和参考案例等等。 8.2.1 任务调度器开启函数分析 前面的所有例程中我们都是在 main()函数中先创建一个开始任务 start_task,后面紧接着调 用函数 vTaskStartScheduler()。这个函数的功能就是开启任务调度器的,这个函数在文件 tasks.c 中有定义,缩减后的函数代码如下: void vTaskStartScheduler( void ) { BaseType_t xReturn; xReturn = xTaskCreate( prvIdleTask, (1) "IDLE", configMINIMAL_STACK_SIZE, ( void * ) NULL, ( tskIDLE_PRIORITY | portPRIVILEGE_BIT ), &xIdleTaskHandle ); #if ( configUSE_TIMERS == 1 ) //使用软件定时器使能 { if( xReturn == pdPASS ) { xReturn = xTimerCreateTimerTask(); (2) }
- 粉丝: 29
- 资源: 4162
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助