《STM32F103x微控制器与μC/OS-Ⅱ操作系统》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:贾丹平,桂珺主编;刘博,赵柏山,徐耀松副主编
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2017
  • ISBN:7121303548
  • 页数:327 页
图书介绍:

第1章 嵌入式系统概述 1

1.1 嵌入式系统简介 1

1.1.1 嵌入式系统定义 1

1.1.2 嵌入式系统的特点 2

1.1.3 嵌入式系统的应用领域 3

1.2 嵌入式系统的组成 4

1.3 嵌入式处理器 5

1.3.1 嵌入式处理器的分类 5

1.3.2 嵌入式处理器的选型原则 6

1.4 嵌入式操作系统 7

1.5 ARM处理器简介 10

1.5.1 ARM处理器的进化过程 10

1.5.2 ARM处理器的开发工具 12

1.6 嵌入式系统的设计方法 13

1.6.1 嵌入式系统的总体结构 13

1.6.2 嵌入式系统设计过程 14

1.6.3 嵌入式系统的软/硬件协同设计技术 15

思考与练习 16

第2章 ARM Cortex-M3内部结构 17

2.1 Cortex-M3简介 17

2.2 指令集 20

2.3 流水线 21

2.4 寄存器组 22

2.5 操作模式和特权等级 25

2.6 异常、中断和向量表 26

2.7 存储器映射 29

2.8 调试支持 30

思考与练习 30

第3章 STM32F1系列微控制器简介 31

3.1 基于Cortex-M3内核的STM32F1微控制器概述 31

3.2 STM32F1微控制器的系统结构 33

3.3 STM32F1微控制器的存储器结构与映射 34

3.4 STM32F1微控制器的嵌入式闪存 36

3.5 STM32F1微控制器的启动配置 37

3.6 STM32F1微控制器的电源控制 38

3.7 STM32F1微控制器的复位 39

3.8 STM32F1微控制器的调试端口 41

思考与练习 41

第4章 建立MDK-ARM5.0开发平台 42

4.1 MDK-ARM简介 42

4.2 CMSIS标准简介 44

4.3 STM32标准外设库 45

4.4 安装MDK-ARM5.0 49

4.5 创建工程模板 52

思考与练习 57

第5章 复位与时钟控制器 58

5.1 STM32F103x微控制器时钟模块简介 58

5.1.1 HSE时钟 60

5.1.2 HSI时钟 60

5.1.3 PLL 61

5.1.4 LSE时钟 61

5.1.5 LSI时钟 61

5.1.6 系统时钟的选择 62

5.1.7 时钟安全系统 62

5.1.8 RTC时钟 62

5.1.9 看门狗时钟 62

5.1.10 时钟输出 62

5.1.11 片上外设时钟 63

5.2 RCC库函数说明 63

5.2.1 库函数RCC_DeInit 65

5.2.2 库函数RCC_HSEConfig 65

5.2.3 库函数RCC_WaitForHSEStartUp 65

5.2.4 库函数RCC_AdiustHSICalibrationValue 66

5.2.5 库函数RCC_HSICmd 66

5.2.6 库函数RCC_PLLConfig 66

5.2.7 库函数RCC_PLLCmd 67

5.2.8 库函数RCC_SYSCLKConfig 67

5.2.9 库函数RCC_GetSYSCLKSource 68

5.2.10 库函数RCC_HCLKConfig 68

5.2.11 库函数RCC_PCLK1Config 69

5.2.12 库函数RCC_PCLK2Config 69

5.2.13 库函数RCC_ITConfig 70

5.2.14 库函数RCC_USBCLKConfig 70

5.2.15 库函数RCC_ADCCLKConfig 70

5.2.16 库函数RCC_LSEConfig 71

5.2.17 库函数RCC_LSICmd 71

5.2.18 库函数RCC_RTCCLKConfig 72

5.2.19 库函数RCC_RTCCLKCmd 72

5.2.20 库函数RCC_GetClocksFreq 72

5.2.21 库函数RCC_AHBPeriphClockCmd 73

5.2.22 库函数RCC_APB2PeriphClockCmd 73

5.2.23 库函数RCC_APB1PeriphClockCmd 74

5.2.24 库函数RCC_APB2PeriphResetCmd 75

5.2.25 库函数RCC_APB1PeriphResetCmd 75

5.2.26 库函数RCC_BackupResetCmd 75

5.2.27 库函数RCC_ClockSecuritySystemCmd 76

5.2.28 库函数RCC_MCOConfig 76

5.2.29 库函数RCC_GetFlagStatus 76

5.2.30 库函数RCC_ClearFlag 77

5.2.31 库函数RCC_GetITStatus 77

5.2.32 库函数RCC_ClearITPendingBit 78

5.3 使用RCC库函数建立系统时钟 78

5.3.1 建立系统时钟的一般流程 78

5.3.2 实例 79

思考与练习 79

第6章 I/O端口模块 81

6.1 概述 81

6.2 GPIO库函数说明 83

6.2.1 库函数GPIO_DeInit 84

6.2.2 库函数GPIO_AFIODeInit 84

6.2.3 库函数GPIO_Init 84

6.2.4 库函数GPIO_StructInit 86

6.2.5 库函数GPIO_ReadInputDataBit 86

6.2.6 库函数GPIO_ReadInputData 87

6.2.7 库函数GPIO_ReadOutputDataBit 87

6.2.8 库函数GPIO_ReadOutputData 87

6.2.9 库函数GPIO_SetBits 88

6.2.10 库函数GPIO_ResetBits 88

6.2.11 库函数GPIO_WriteBit 88

6.2.12 库函数GPIO_Write 88

6.2.13 库函数GPIO_PinLockConfig 89

6.2.14 库函数GPIO_EventOutputConfig 89

6.2.15 库函数GPIO_EventOutputCmd 90

6.2.16 库函数GPIO_PinRemapConfig 90

6.2.17 库函数GPIO_EXTILineConfig 91

思考与练习 91

第7章 中断和事件 92

7.1 嵌套向量中断控制器 92

7.2 外部中断/事件控制器 95

7.3 NVIC库函数说明 96

7.3.1 库函数NVIC_PriorityGroupConfig 97

7.3.2 库函数NVIC_Init 97

7.3.3 库函数NVIC_SetVectorTable 99

7.3.4 库函数NVIC_SystemLPConfig 100

7.4 EXTI库函数说明 100

7.4.1 库函数EXTI_DeInit 101

7.4.2 库函数EXTI_Init 101

7.4.3 库函数EXTI_StructInit 102

7.4.4 库函数EXTI_GenerateSWInterrupt 103

7.4.5 库函数EXTI_GetFlagStatus 103

7.4.6 库函数EXTI_ClearFlag 103

7.4.7 库函数EXTI_GetITStatus 103

7.4.8 库函数EXTI_ClearITPendingBit 104

思考与练习 104

第8章 系统时基定时器 105

8.1 概述 105

8.2 SysTick库函数说明 106

思考与练习 106

第9章 实时时钟和备份寄存器 107

9.1 实时时钟简介 107

9.2 后备寄存器简介 111

9.3 RTC库函数说明 112

9.3.1 库函数RTC_ITConfig 112

9.3.2 库函数RTC_EnterConfigMode 113

9.3.3 库函数RTC_ExitConfigMode 113

9.3.4 库函数RTC_GetCounter 113

9.3.5 库函数RTC_SetCounter 113

9.3.6 库函数RTC_SetPrescaler 114

9.3.7 库函数RTC_SetAlarm 114

9.3.8 库函数RTC_WaitForLastTask 114

9.3.9 库函数RTC_WaitForSynchro 114

9.3.10 库函数RTC_GetFlagStatus 115

9.3.11 库函数RTC_ClearFlag 115

9.3.12 库函数RTC_GetITStatus 115

9.3.13 库函数RTC_ClearITPendingBit 116

9.4 BKP库函数说明 116

9.4.1 库函数BKP_DeInit 116

9.4.2 库函数BKP_Init 117

9.4.3 库函数BKP_TamperPinCmd 117

9.4.4 库函数BKP_ITConfig 117

9.4.5 库函数BKP_RTCOutputConfig 117

9.4.6 库函数BKP_SetRTCCalibrationValue 118

9.4.7 库函数BKP_WriteBackupRegister 118

9.4.8 库函数BKP_ReadBackupRegister 119

9.4.9 库函数BKP_GetFlagStatus 119

9.4.10 库函数BKP_ClearFlag 119

9.4.11 库函数BKP_GetITStatus 119

9.4.12 库函数BKP_ClearITPendingBit 120

思考与练习 120

第10章 嵌入式闪存 121

10.1 嵌入式闪存简介 121

10.1.1 嵌入式闪存的组织方式 121

10.1.2 嵌入式闪存的读操作 122

10.1.3 嵌入式编程和擦除控制器 123

10.2 FLASH库函数说明 128

10.2.1 库函数FLASH_SetLatency 129

10.2.2 库函数FLASH_HalfCycleAccessCmd 129

10.2.3 库函数FLASH_PrefetchBufferCmd 130

10.2.4 库函数FLASH_Unlock 130

10.2.5 库函数FLASH_Lock 130

10.2.6 库函数FLASH_ErasePage 130

10.2.7 库函数FLASH_EraseAllPages 131

10.2.8 库函数FLASH_EraseOptionBytes 131

10.2.9 库函数FLASH_ProgramWord 131

10.2.10 库函数FLASH_ProgramHalfWord 131

10.2.11 库函数FLASH_ProgramOptionByteData 132

10.2.12 库函数FLASH_EnableWriteProtection 132

10.2.13 库函数FLASH_ReadOutProtection 133

10.2.14 库函数FLASH_UserOptionByteConfig 133

10.2.15 库函数FLASH_GetUserOptionByte 133

10.2.16 库函数FLASH_GetWriteProtectionOptionByte 134

10.2.17 库函数FLASH_GetReadOutProtectionStatus 134

10.2.18 库函数FLASH_GetPrefetchBufferStatus 134

10.2.19 库函数FLASH_ITConfig 134

10.2.20 库函数FLASH_GetFlagStatus 135

10.2.21 库函数FLASH_ClearFlag 135

10.2.22 库函数FLASH_GetStatus 135

10.2.23 库函数FLASH_WaitForLastOperation 136

思考与练习 136

第11章 USART串口模块 137

11.1 USART串口简介 137

11.1.1 功能概述 138

11.1.2 发送器 139

11.1.3 接收器 140

11.1.4 产生分数比特率 141

11.1.5 多处理器通信 142

11.1.6 LIN模式 143

11.1.7 USART同步模式 143

11.1.8 单线半双工 144

11.1.9 智能卡模式 145

11.1.10 红外模式 146

11.1.11 USART的中断请求 147

11.2 USART库函数说明 148

11.2.1 库函数USART_DeInit 149

11.2.2 库函数USART_Init 149

11.2.3 库函数USART_StructInit 151

11.2.4 库函数USART_Cmd 151

11.2.5 库函数USART_ITConfig 151

11.2.6 库函数USART_DMACmd 152

11.2.7 库函数USART_SetAddress 152

11.2.8 库函数USART_WakeUpConfig 152

11.2.9 库函数USART_ReceiverWakeUpCmd 153

11.2.10 库函数USART_LINBreakDetectiLengthConfig 153

11.2.11 库函数USART_LINCmd 153

11.2.12 库函数USART_SendData 154

11.2.13 库函数USART_ ReceiveData 154

11.2.14 库函数USART_SendBreak 154

11.2.15 库函数USART_SetGuardTime 154

11.2.16 库函数USART_SetPrescaler 155

11.2.17 库函数USART_SmartCardCmd 155

11.2.18 库函数USART_SmartCardNackCmd 155

11.2.19 库函数USART_HalfDuplexCmd 155

11.2.20 库函数USART_IrDAConfig 156

11.2.21 库函数USART_IrDACmd 156

11.2.22 库函数USART_GetFlagStatus 156

11.2.23 库函数USART_ClearFlag 157

11.2.24 库函数USART_GetITStatus 157

11.2.25 库函数USART_ClearITPendingBit 158

思考与练习 158

第12章 SPI模块 159

12.1 SPI简介 159

12.1.1 引脚概述 160

12.1.2 数据传输模式 161

12.1.3 SPI从模式 162

12.1.4 SPI主模式 163

12.1.5 状态标志 163

12.1.6 利用DMA的SPI通信 164

12.1.7 SPI中断 164

12.2 SPI库函数说明 164

12.2.1 库函数SPI_DeInit 165

12.2.2 库函数SPI_Init 165

12.2.3 库函数SPI_StructInit 167

12.2.4 库函数SPI_Cmd 167

12.2.5 库函数SPI_I2S_ITConfig 168

12.2.6 库函数SPI_I2S_DMACmd 168

12.2.7 库函数SPI_I2S_SendData 168

12.2.8 库函数SPI_I2S_ReceiveData 169

12.2.9 库函数SPI_NSSIntemalSoftwareConfig 169

12.2.10 库函数SPI_SSOutputCmd 169

12.2.11 库函数SPI_DataSizeConfig 170

12.2.12 库函数SPI_TransmitCRC 170

12.2.13 库函数SPI_CalculateCRC 170

12.2.14 库函数SPI_GetCRC 170

12.2.15 库函数SPI_GetCRCPolynomial 171

12.2.16 库函数SPI_BiDirectionalLineConfig 171

12.2.17 库函数SPI_I2S_GetFlagStatus 171

12.2.18 库函数SPI_I2S_ClearFlag 172

12.2.19 库函数SPI_I2S_GetITStatus 172

12.2.20 库函数SPI_I2S_ClearITPendingBit 172

思考与练习 173

第13章 I2C模块 174

13.1 I2C简介 174

13.1.1 功能描述 175

13.1.2 I2C从模式 176

13.1.3 I2C主模式 177

13.1.4 错误条件 179

13.1.5 SDA/SCL线控制 180

13.1.6 DMA请求 180

13.1.7 I2C的中断 181

13.2 I2C库函数说明 182

13.2.1 库函数I2C_DeInit 183

13.2.2 库函数I2C_Init 183

13.2.3 库函数I2C_StructInit 184

13.2.4 库函数I2C_Cmd 185

13.2.5 库函数I2C_ITConfig 185

13.2.6 库函数I2C_DMACmd 186

13.2.7 库函数I2C_SendData 186

13.2.8 库函数I2C_ReceiveData 186

13.2.9 库函数I2C_DMALastTransferCmd 186

13.2.10 库函数I2C_GenerateSTART 187

13.2.11 库函数I2C_GenerateSTOP 187

13.2.12 库函数I2C_AcknowledgeConfig 187

13.2.13 库函数I2C_OwnAddress2Config 187

13.2.14 库函数I2C_DualAddressCmd 188

13.2.15 库函数I2C_GeneralCallCmd 188

13.2.16 库函数I2C_Send7bitAddress 188

13.2.17 库函数I2C_ReadRegister 189

13.2.18 库函数I2C_SoftwareResetCmd 189

13.2.19 库函数I2C_SMBusAlertConfig 189

13.2.20 库函数I2C_TransmitPEC 190

13.2.21 库函数I2C_PECPositionConfig 190

13.2.22 库函数I2C_CalculatePEC 190

13.2.23 库函数I2C_GetPEC 190

13.2.24 库函数I2C_ARPCmd 191

13.2.25 库函数I2C_StretchClockCmd 191

13.2.26 库函数I2C_FastModeDutyCycleConfig 191

13.2.27 库函数I2C_GetLastEvent 191

13.2.28 库函数I2C_CheckEvent 192

13.2.29 库函数I2C_GetFlagStatus 192

13.2.30 库函数I2C_ClearFlag 193

13.2.31 库函数I2C_ GetITStatus 193

13.2.32 库函数I2C_ClearITPendingBit 194

思考与练习 194

第14章 DMA控制器 195

14.1 DMA简介 195

14.2 DMA库函数说明 199

14.2.1 库函数DMA_DeInit 200

14.2.2 库函数DMA_Init 200

14.2.3 库函数DMA_StructInit 201

14.2.4 库函数DMA_Cmd 202

14.2.5 库函数DMA_ITConfig 202

14.2.6 库函数DMA_GetCurrDataCounte 203

14.2.7 库函数DMA_GetFlagStatus 203

14.2.8 库函数DMA_ClearFlag 203

14.2.9 库函数DMA_GetITStatus 203

14.2.10 库函数DMA_ClearITPendingBit 204

思考与练习 204

第15章 FSMC模块 205

15.1 FSMC简介 205

15.2 与非总线复用模式的异步16位NOR闪存接口 207

15.2.1 FSMC的配置 207

15.2.2 时序计算 209

15.2.3 硬件连接 210

15.2.4 从外部NOR闪存存储器执行代码 211

15.3 与非总线复用的16位SRAM接口 211

15.3.1 FSMC配置 211

15.3.2 时序计算 212

15.3.3 硬件连接 213

15.4 与8位的NAND闪存存储器接口 213

15.4.1 FSMC配置 213

15.4.2 时序计算 215

15.4.3 硬件连接 217

15.4.4 错误校验码计算 217

15.5 FSMC库函数说明 218

思考与练习 219

第16章 模数转换器模块 220

16.1 ADC简介 220

16.1.1 功能描述 221

16.1.2 自校准 223

16.1.3 可编程的采样时间 224

16.1.4 外部触发转换 224

16.1.5 双ADC模式 225

16.1.6 温度传感器 226

16.1.7 ADC的中断事件 227

16.2 ADC库函数说明 227

16.2.1 库函数ADC_DeInit 228

16.2.2 库函数ADC_Init 228

16.2.3 库函数ADCS_tructInit 230

16.2.4 库函数ADC_Cmd 231

16.2.5 库函数ADC_ITConfig 231

16.2.6 库函数ADC_DMACmd 231

16.2.7 库函数ADC_ResetCalibration 232

16.2.8 库函数ADC_GetResetCalibrationStatus 232

16.2.9 库函数ADC_StartCalibration 232

16.2.10 库函数ADC_GetCalibrationStatus 233

16.2.11 库函数ADC_SoftwareStartConvCmd 233

16.2.12 库函数ADC_GetSoftwareStartConvStatus 233

16.2.13 库函数ADC_DiscModeChannelCountConfig 233

16.2.14 库函数ADC_DiscModeCmd 234

16.2.15 库函数ADC_RegularChannelConfig 234

16.2.16 库函数ADC_ExternalTrigConvConfig 235

16.2.17 库函数ADC_GetConversionValue 235

16.2.18 库函数ADC_GetDuelModeConversionValue 235

16.2.19 库函数ADC_AutoInjectedConvCmd 236

16.2.20 库函数ADC_InjectedDiscModeCmd 236

16.2.21 库函数ADC_ExternalTrigInjectedConvConfig 236

16.2.22 库函数ADC_ExternalTrigInjectedConvCmd 237

16.2.23 库函数ADC_SoftwareStartinjectedConvCmd 237

16.2.24 库函数ADC_GetsoftwareStartinjectedConvStatus 237

16.2.25 库函数ADC_InjectedChannleConfig 238

16.2.26 库函数ADC_InjectedSequencerLengthConfig 238

16.2.27 库函数ADC_SetInjectedOffset 238

16.2.28 库函数ADC_GetIniectedConversionValue 239

16.2.29 库函数ADC_AnalogWatchdogCmd 239

16.2.30 库函数ADC_AnalogWatchdongThresholdsConfig 239

16.2.31 库函数ADC_AnalogWatchdongSingleChannelConfig 240

16.2.32 库函数ADC_TampSensorVrefintCmd 240

16.2.33 库函数ADC_GetFlagStatus 240

16.2.34 库函数ADC_ClearFlag 241

16.2.35 库函数ADC_GetITStatus 241

16.2.36 库函数ADC_ClearITPendingBit 241

思考与练习 241

第17章 定时器模块 243

17.1 TIM简介 243

17.1.1 计数功能 244

17.1.2 时钟选择 248

17.1.3 捕获/比较通道 250

17.1.4 定时器同步 261

17.2 TIM库函数说明 265

17.2.1 库函数TIM_DeInit 268

17.2.2 库函数TIM_TimeBaseInit 268

17.2.3 库函数TIM_OClInit 269

17.2.4 库函数TIM_ICInit 270

17.2.5 库函数TIM_BDTRConfig 271

17.2.6 库函数TIM_TimeBaseStructInit 272

17.2.7 库函数TIM_OCStructInit 273

17.2.8 库函数TIM_ICStructInit 273

17.2.9 库函数TIM_BDTRStructInit 274

17.2.10 库函数TIM_Cmd 274

17.2.11 库函数TIM_ITConfig 274

17.2.12 库函数TIM_GenerateEvent 275

17.2.13 库函数TIM_DMAConfig 275

17.2.14 库函数TIM_DMACmd 276

17.2.15 库函数TIM_InternalClockConfig 277

17.2.16 库函数TIM_ITRxExternalClockConfig 277

17.2.17 库函数TIM_TIxExternalClockConfig 278

17.2.18 库函数TIM_ETRClockMode1Config 278

17.2.19 库函数TIM_ETRClockMode2Config 279

17.2.20 库函数TIM_ETRConfig 279

17.2.21 库函数TIM_SelectInputTrigger 279

17.2.22 库函数TIM_PrescalerConfig 280

17.2.23 库函数TIM_CounterModeConfig 280

17.2.24 库函数TIM_ForcedOClConfig 281

17.2.25 库函数TIM_ARRPreloadConfig 281

17.2.26 库函数TIM_SelectCOM 281

17.2.27 库函数TIM_SelectCCDMA 281

17.2.28 库函数TIM_CCPreloadControl 282

17.2.29 库函数TIM_OClPreloadConfig 282

17.2.30 库函数TIM_OClFastConfig 282

17.2.31 库函数TIM_ClearOClRef 283

17.2.32 库函数TIM_UpdateDisableConfig 283

17.2.33 库函数TIM_EncoderInterfaceConfig 283

17.2.34 库函数TIM_OClPolarityConfig 284

17.2.35 库函数TIM_OClNPolarityConfig 284

17.2.36 库函数TIM_CCxCmd 284

17.2.37 库函数TIM_CCxNCmd 285

17.2.38 库函数TIM_SelectOCxM 285

17.2.39 库函数TIM_UpdateRequestConfig 285

17.2.40 库函数TIM_SelectHallSensor 286

17.2.41 库函数TIM_SelectOnePulseMode 286

17.2.42 库函数TIM_SelectOutputTrigger 286

17.2.43 库函数TIM_SelectSlaveMode 287

17.2.44 库函数TIM_SelectMasterSlaveMode 288

17.2.45 库函数TIM_SetAutoreload 288

17.2.46 库函数TIM_SetComparel 288

17.2.47 库函数TIM_SetIClPrescaler 288

17.2.48 库函数TIM_SetClockDivision 289

17.2.49 库函数TIM_GetCapturel 289

17.2.50 库函数TIM_GetCounter 289

17.2.51 库函数TIM_GetPrescaler 289

17.2.52 库函数TIM_GetFlagStatus 290

17.2.53 库函数TIM_ClearFlag 290

17.2.54 库函数TIM_GetITStatus 291

17.2.55 库函数TIM_ClearITPendingBit 291

思考与练习 291

第18章 看门狗模块 292

18.1 独立看门狗简介 292

18.2 窗口看门狗简介 293

18.3 IWDG库函数说明 295

18.3.1 库函数IWDG_WriteAccessCmd 295

18.3.2 库函数IWDG_SetPrescaler 296

18.3.3 库函数IWDG_SetReload 296

18.3.4 库函数IWDG_ReloadCounter 296

18.3.5 库函数IWDG_Enable 296

18.3.6 库函数IWDG_GetFlagStatus 297

18.4 WWDG库函数说明 297

18.4.1 库函数WWDG_DeInit 297

18.4.2 库函数WWDG_SetPrescaler 297

18.4.3 库函数WWDG_SetWindowValue 298

18.4.4 库函数WWDG_EnableIT 298

18.4.5 库函数WWDG_SetCounter 298

18.4.6 库函数WWDG_Enable 298

思考与练习 299

第19章 μC/OS-Ⅱ操作系统概述 300

19.1 μC/OS-Ⅱ简介 300

19.2 实时系统概念 300

19.2.1 前后台系统 301

19.2.2 代码的临界段 301

19.2.3 任务 301

19.2.4 内核 302

19.2.5 调度 303

19.2.6 可重入型 303

19.2.7 不可剥夺型内核 303

19.2.8 可剥夺型内核 303

19.2.9 时间片轮番调度法 304

19.2.10 任务优先级 304

19.2.11 死锁 304

19.2.12 同步 304

19.2.13 任务间的通信 305

19.2.14 时钟节拍 305

19.2.15 临界段 306

19.3 内核结构 306

19.3.1 任务控制块 306

19.3.2 任务调度 307

19.3.3 给调度器上锁和开锁 307

19.3.4 空闲任务 308

19.3.5 统计任务 308

19.3.6 μC/OS中的中断处理 308

19.3.7 时钟节拍 309

19.3.8 μC/OS-Ⅱ初始化与启动 309

思考与练习 309

第20章 任务管理与通信 310

20.1 任务管理 310

20.1.1 建立任务 311

20.1.2 任务堆栈 311

20.1.3 删除任务 311

20.1.4 请求删除任务 312

20.1.5 改变任务的优先级 312

20.1.6 挂起任务 313

20.1.7 恢复任务 313

20.2 任务之间的通信 313

20.2.1 事件控制块 313

20.2.2 信号量 315

20.2.3 邮箱 316

20.2.4 消息队列 318

思考与练习 320

第21章 时间管理和内存管理 321

21.1 时间管理 321

21.1.1 任务延时函数 321

21.1.2 按时分秒延时函数 322

21.1.3 让处在延时期的任务结束延时 322

21.1.4 系统时间 322

21.2 内存管理 323

21.2.1 内存控制块 323

21.2.2 建立一个内存分区 323

21.2.3 分配一个内存块 324

21.2.4 释放一个内存块 324

21.2.5 查询一个内存分区的状态 324

21.2.6 等待一个内存块 325

思考与练习 325

参考文献 326