【2】uC/OS-III应用开发————>启动流程(STM32F767)

  1. 简述:
    1. 上电启动,分为三个阶段
      1. CPU内核的初始化,ARM公司编写,所用CPU的.s文件
      2. 外设模块的初始化
      3. OS相关操作的初始化、启动、调度等等
  2. 系统的启动
    1. 上电执行启动文件里面的复位函数Reset_Handler
    2. 复位函数中调用C库函数_main跳转到主程序
    3. 调用SystemInit来进行系统初始化
  3. 外设模块
    1. 初始化系统时钟
    2. 中断分组
    3. 外设:GPIO、串口...等等
    4. 注:这些外设的初始化一般放在BSP_Init()函数中
  4. OS系统启动相关操作
    1. 系统初始化:OSInit()函数
      1. 初始化操作系统相关的全局变量、链表结构
      2. 空闲任务的初始化
      3. 时钟节拍任务的初始化
      4.  空闲与时钟节拍这两个任务是必须存在的,否则系统无法运行
    2. 空闲任务:OS_TickTaskInit()
      1. 空闲任务的相关信息由系统默认指定,用户不能轻易修改
      2. 空闲任务是一个无限的死循环
      3. 其优先级最低,任务比它高的任务都能抢占它得到CPU的使用权
      4. CPU不会停止工作,当其它任务都处于阻塞中,系统才会运行空闲任务
    3. CPU(时间戳)初始化CPU_TS_TmrInit()
      1. 利用内核中的DWT中的CYCCNT(向上计数器),记录内核时钟运行的个数
      2. 内核时钟跳动一次,该计数器加1
      3. CYCCNT精度非常高,其精度取决于内核的频率
      4. 例如STM32F7时钟为216M,精度 = 1/216M = 4.6ns
      5. 主要用于测试任务执行效率
    4. SysTick初始化OS_CPU_SysTickInit()
      1. 时钟节拍的频率表示操作系统每1秒钟产生多少个tick
      2. tick:操作系统节拍的时钟周期,系统以固定的频率产生中断(时基中断)并且在中断中处理与时间相关的事件,推动任务向前运行
      3. 时钟节拍依赖于硬件定时器,Crotex-m中经常使用的SysTick时钟是MCU的内核定时器
      4. 默认频率为1000Hz,频率过高,增加系统负担,过低,影响任务切换
    5. 内存初始化Mem_Init()
      1. 系统采用一块连续的大数组作为系统管理的内存
      2. 使用前先将管理的内存进行初始化
    6. 启动函数OSStart()
      1. 创建完任务的时候,需要开启调度器,让系统开始运行
    7. 主函数main.c
      1. 参考上节
  5. 下载验证
  6. 总结
    1. 本节无例程,只是对uC/OS-III的启动流程分析
  7. 参考资料:
    1. 正点原子《STM32F767 UCOS开发手册》
    2. 野火《uC/OS-III内核应用与开发》
    3. 《嵌入式实时操作系统 uC/OS-III原理及应用(第二版)》
    4. 官方源码
  8. 硬件平台:
    1. 正点原子阿波罗F767
  9. 软件平台:
    1. MDK5.2.5
  10. 库版本:
    1. TM32Cube_FW_F7_V1.4.0
  11. uC/OS-III版本
    1. UCOSIII 3.04
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
-1,ALIENTEK阿波罗STM32F767开发板入门资料 | |--MDK5.21A安装手册.pdf---------------------------------安装编译器指导文档 | |--STLINK调试补充教程.pdf-------------------------------ST LINK安装使用教程 | |--阿波罗STM32F767开发板常见问题汇总.pdf----------------阿波罗开发板客户常见问题及解决办法,请仔细阅读 | |--阿波罗STM32F767开发板入门教程&FAQ;.pdf----------------拿到开发板后必读 | |---2,ALIENTEK阿波罗STM32F767开发板视频教程 | |--1,程序下载方法1:ISP串口下载------------------------教您如何安装CH340驱动和使用串口下载代码 | |--2,程序下载方法2:JTAG程序下载-----------------------教您如何安装ST LINK驱动和使用ST LINK下载代码 | |--3,新建工程模板-基于固件库---------------------------教您如何新建基于HAL库的工程模板 | |--4,新建工程模板-基于寄存器---------------------------教您如何新建基于寄存器的工程模板 | |--阿波罗STM32F767开发板综合实验简介.rmvb---------------开发板综合实验演示视频,体验STM32F767的强大 | |--其他视频教程-----------------------------------------见:B盘等其他光盘 (待录制....) | |---3,ALIENTEK阿波罗STM32F767开发板原理图 | |--ATK-2.8' TFTLCD_V2.3.pdf-----------------------------ALIENTEK 2.8寸MCU屏模块原理图&PCB;尺寸图 | |--ATK-3.5' TFTLCD_V1.5.pdf-----------------------------ALIENTEK 3.5寸MCU屏模块原理图&PCB;尺寸图 | |--ATK-4.3' TFTLCD_V1.6.pdf-----------------------------ALIENTEK 4.3寸MCU屏模块原理图&PCB;尺寸图 | |--ATK-7' TFTLCD_V2.3.pdf-------------------------------ALIENTEK 7寸MCU屏模块原理图&PCB;尺寸图 | |--ATK-4342-RGBLCD_V1.4.pdf-----------------------------ALIENTEK 4.3寸RGB屏模块原理图&PCB;尺寸图 | |--ATK-7' RGBLCD_V1.3.pdf-------------------------------ALIENTEK 7寸RGB屏模块原理图&PCB;尺寸图 | |--Apollo STM32F4&F7;_MotherBoard_V1.5.pdf---------------ALIENTEK 阿波罗STM32F4/F7开发板底板原理图&PCB;尺寸 | |--Apollo STM32F767_CORE_V1.6.pdf-----------------------ALIENTEK STM32F767核心板原理图&PCB;尺寸 | |--ATK-OV5640-AF_V1.1.pdf-------------------------------ALIENTEK OV5640摄像头模块原理图&PCB;尺寸 | |--阿波罗STM32F767开发板IO引脚分配表.xlsx---------------ALIENTEK 阿波罗IO分配总表,必看 | |---4,程序源码 | |--1,标准例程-寄存器版本.rar---------------------------寄存器版本标准例程(主例程,共63个) | |--2,标准例程-HAL库版本.rar----------------------------HAL库版本标准例程(主例程,共64个) | |--3,扩展例程.rar--------------------------------------含普通、LWIP、emWIN、ucOS、FreeRTOS等扩展例程 | |--4,STM32启动文件.rar---------------------------------包含一个.s启动文件,新建工程需要用到 | |--5,ATKNCR(数字字母手写识别库).rar--------------------ALIENTEK提供的数字/字母手写识别库 | |--6,ATKQR(二维码识别库).rar---------------------------ALIENTEK提供的二维码&条形码识别库 | |--7,ATKFREC(人脸识别库).rar---------------------------ALIENTEK提供的人脸识别库 | |---5,SD卡根目录文件 | |--NAND测试文件-----------------------------------------综合测试实验,存放在NAND FLASH盘的一些测试文件 | |--PICTURE----------------------------------------------含一些测试图片,图片显示实验需要用 | |--SYSTEM-----------------------------------------------含字库/图标等文件,系统/字库更新时需要用 | |--测试用文件-------------------------------------------测试用的一些文件,综合实验测试时可用到 | |---6,软件资料 | |--1,软件----------------------------------------------包含开发板需要用到的各种软件,必看!! | |--2,UCOS学习资料--------------------------------------UCOSII/III的学习参考资料 | |--3,EMWIN学习资料-------------------------------------emWIN/STemWIN的学习参考资料以及源码 | |--4,LWIP学习资料--------------------------------------lwIP的学习参考资料以及源码 | |--5,UCGUI学习资料-------------------------------------ucGUI的学习参考资料 | |--6,FAT及FATFS资料------------------------------------FAT/fatfs文件系统的学习参考资料 | |--7,CAN学习资料---------------------------------------CAN总线学习资料 | |--8,WAV文件格式说明-----------------------------------WAV文件格式学习参考资料 | |--9,AVI学习资料---------------------------------------AVI文件格式学习参考资料 | |--10,MDK手册------------------------------------------KEIL/RVMDK学习资料,熟悉编译器用 | |--11,图片编解码---------------------------------------BMP/JPEG/JPG/GIF等图片编解码学习资料 | |--12,字库资料-----------------------------------------GBK/GB2312/UNICODE等字库学习资料 | |--13,NES&SMS;资料--------------------------------------包含NES学习资料和大量NES&SMS;游戏 | |--14,FreeRTOS学习资料---------------------------------FreeRTOS的学习参考资料 | |---7,硬件资料 | |--1,ALIENTEK阿波罗STM32F767开发板及模块元器件封装库---含AD9/99SE两个版本的开发板及模块封装库 | |--2,芯片资料------------------------------------------阿波罗F767开发板板载各芯片数据手册 | |--3,液晶资料------------------------------------------ALIENTEK各尺寸液晶驱动IC资料 | |--4,OV5640资料----------------------------------------OV5640摄像头芯片使用及参考资料 | |--5,MPU9250资料---------------------------------------MPU9250六轴传感器使用及参考资料 | |--6,SD卡资料------------------------------------------SD卡学习资料,包括SD卡规范,协议等 | |--7,PWM DAC相关资料-----------------------------------PWM DAC原理及介绍 | |--8,NRF24L01模块资料----------------------------------NRF24L01无线模块的学习资料 | |--9,SPDIF资料-----------------------------------------SPDIF学习资料 | |--PCB设计资料.pdf--------------------------------------PCB设计学习资料,供参考学习 | |--硬件工程师手册_全.pdf--------------------------------华为的硬件工程师手册,硬件设计参考学习 | |---8,STM32参考资料 | |--1,STM32CubeF7固件包---------------------------------ST官方的STM32CubeF7源码 | |--2,STM32 USB 学习资料--------------------------------ST官方的USB库源码及学习资料 | |--3,STM32 IAP学习资料---------------------------------IAP相关的学习资料 | |--STM32F7与STM32F4的复位序列比较.pdf-------------------ST出的STM32F7与F4复位序列比较,供参考 | |--Cortex M3权威指南(中文).pdf--------------------------中文版CM3权威指南,供参考 | |--Cortex M7 Generic User Guide.pdf---------------------ARM出的CM7指导文件,供参考 | |--Cortex M7 Technical Reference Manual.pdf-------------ARM出的CM7技术参考手册,学习CM7内核必看 | |--STM32 MPU说明.pdf------------------------------------ST出的STM32系列MPU使用说明,学习MPU必看 | |--Level 1 cache on STM32F7 Series.pdf------------------ST出的STM32F7 L1 Cache的介绍,使用L1 Cache必看 | |--STM32F7 Cache Oveview.pdf----------------------------ST出的STM32F7 Cache简介,学习Cache必看 | |--ST MCU 最新选型手册.pdf------------------------------ST的MCU选型手册,供选型用 | |--STM32F7编程手册.pdf----------------------------------ST出的F7内核编程手册,学习内核必看 | |--STM32F7xx参考手册.pdf--------------------------------STM32F767英文原版参考手册,供参考 | |--STM32F7中文参考手册.pdf------------------------------STM32F7系列中文参考手册,必看 | |---9,增值资料 | |--1,ALIENTEK 产品资料 | | |--1,ATK-HC05蓝牙串口模块--------------------------ALIENTEK 蓝牙串口模块资料 | | |--2,ATK-NEO-6M GPS模块----------------------------ALIENTEK GPS模块资料 | | |--3,ATK-7' TFTLCD电容触摸屏模块-------------------ALIENTEK 7寸电容屏模块(V1版本 CPLD方案)资料 | | |--4,ATK-SIM900A 模块------------------------------ALIENTEK SIM900A GSM/GPRS模块资料 | | |--5,ATK-RM04 WIFI模块资料-------------------------ALIENTEK RM04 WIFI模块资料 | | |--6,ATK-VS1053 MP3模块----------------------------ALIENTEK VS1053 MP3模块资料 | | |--7,ATK-0.96' OLED模块----------------------------ALIENTEK 0.96寸OLED模块资料 | | |--8,ATK-USB-UART模块------------------------------ALIENTEK USB转TTL串口模块资料 | | |--9,ATK-4.3' TFTLCD电容触摸屏模块-----------------ALIENTEK 4.3寸电容触摸屏模块资料 | | |--10,ATK-OV2640摄像头模块-------------------------ALIENTEK OV2640摄像头模块资料 | | |--11,ATK-MPU6050六轴传感器模块--------------------ALIENTEK MPU6050六轴传感器模块资料 | | |--12,ATK-7' TFTLCD V2电容触摸屏模块---------------ALIENTEK 7寸电容屏模块(V2版本 1963方案)资料 | | |--13,ATK-ESP8266 WIFI模块-------------------------ALIENTEK ESP8266串口WiFi模块资料 | | |--14,ATK-AS608指纹识别模块------------------------ALIENTEK AS608光学指纹识别模块资料 | | |--15,ATK-OV5640摄像头模块-------------------------ALIENTEK OV5640摄像头模块资料 | | |--16,ATK-S1216 GPS+北斗定位模块-------------------ALIENTEK GPS&北斗双模定位模块资料 | | |--17,ATK-SIM800C GSM模块--------------------------ALIENTEK SIM800C GSM/GPRS模块资料 | | |--18,ATK-2MD4850步进电机驱动器--------------------ALIENTEK 步进电机驱动器资料 | | |--19,ATK-4342 4.3' RGB屏模块----------------------ALIENTEK 4.3寸RGB屏模块资料 | | |--20,ATK-7016&7084; 7' RGB屏模块-------------------ALIENTEK 7寸RGB屏模块资料 | | |--21,ATK-QR 二维码&条形码识别库-------------------ALIENTEK二维码&条形码识别库使用资料 | |--ALIENTEK产品选型手册_201609.pdf----------------------ALIENTEK产品选型手册,方便大家选型购买 | |---STM32F767 EMWIN开发手册.pdf------------------------------ALIENTEK emWIN教程,含移植和例程讲解等 |---STM32F767 LWIP开发手册.pdf-------------------------------ALIENTEK lwIP教程,含移植和例程讲解等 |---STM32F767 UCOS开发手册.pdf-------------------------------ALIENTEK ucOSII/III教程,含移植和例程讲解等 |---STM32F767 FreeRTOS开发手册.pdf---------------------------ALIENTEK FreeRTOS教程,含移植和例程讲解等 |---STM32F7 开发指南-HAL库版本_V1.1.pdf----------------------ALIENTEK 寄存器版本F7教程,是开发板主要教程 |---STM32F7 开发指南-寄存器版本_V1.1.pdf---------------------ALIENTEK HAL库版本F7教程,是开发板主要教程 |---联系我们.pdf---------------------------------------------ALIENTEK 资料下载、售后、技术支持、产品购买等

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值