stm8s_atomthread

本文详细介绍了如何将Atomthread实时操作系统移植到STM8S微控制器上,包括实时操作系统基础知识、Atomthread特性、STM8S版本特点、移植注意事项、使用指南以及系统架构解析。适合电子和嵌入式设计初学者,提供了双线程LED闪烁实验作为实践示例。
摘要由CSDN通过智能技术生成

STM8S Atomthread 实时操作系统移植

介绍

1.嵌入式操作系统基本知识

  1. 嵌入性、专用性与计算机系统是嵌入式系统的基本元素;跟通用计算机系统(如windows、linux等)相比,嵌入式系统具备专用性强、可剪裁性好、实时性好和功耗低的特点。
  2. 实时操作系统满足条件:
    • 必须是多任务(任务调度或调度器,最核心功能)
    • 任务的切换时间与系统当前任务数无关(调度器对任务切换时间)
    • 中断延时的时间可预知并尽可能短(任务实时性要求,即为CPU对任务响应速度)
  3. 目前,实时系统主要类型:
    • 抢占式(剥夺式)
    • 非抢占式(非剥夺式)

2.实时操作系统介绍:Atomthread

  1. Atomthread完全开源、轻量、便捷,针对于嵌入式操作系统的实时调度。
  2. 具备特性:抢占式、无限的线程(在RAM允许的条件下)、255个优先级、相同优先级的时间片轮、任务同步与互斥、队列、定时器、具备元素的阻塞与非阻塞、线程的堆栈分析等系统基本元素。
  3. 对于初步学习操作系统的非计算机类学生来说是简便的,尤其是电子类学生或从事嵌入式设计的人是有效的系统学习对象。官方原生支持STM8系列CPU,配套电协第5代开发板,相应编写本教程,有助于大家进一步理解单片机系统。
  4. 系统文件组成:
文件名 文件作用 备注
atom.h 系统API 任务控制块、系统错误宏、系统API等
atomkernel.c 系统内核源码 内核功能:上下文切换、中断、TCB控制、信号量等
atommutex.c 互斥源码 **
atomport-template.h 系统宏、类型声明 时间片轮设定
atomqueue.c 队列源码 **
atomsem.c 信号量源码 **
atomtimer.c 定时器源码 系统滴答时钟、应用性定时器

3.注意:

  1. Atomthread官方网站:http://atomthreads.com/
  2. 以下编写当中,涉及到的变量、宏及函数等,通过()提供文件位置,请注意。

Atomthread(STM8版本)使用指南

1.STM8S版本特点
  1. 移植唯一需要修改的汇编文件。
  2. 编译器的特点: IAR编译器的虚拟寄存器、变量空间选择关键字等特点。
  3. Atom官方原生支持使用ST公司的官方库文件,应用代码都将使用库函数而不再是直接操作寄存器。学习需要注意数据结构体的设计和指针的灵活使用。
2.使用Atom基本流程:
  1. 系统初始化:设置空闲堆栈大小
  2. 启动系统时钟
    • 根据实际调节系统时间片轮
    • 根据实际调节滴答定时器
  3. 创建线程
    • 设置任务堆栈大小
    • 创建任务区(任务函数)
  4. 启动系统
3.电协
  1. 电协为广大的学习者,将ST库版本从1.1修改为V2.1(目前最新版本),库函数更完整。同时独自移植了一套直接操作寄存器的Atom版本,提供多种选择。本文,基于库函数版本编写。
  2. 实验平台:
    • IAR V6.3
    • 电协第五代开发板-B版
    • 软件工具:source insight 3.5
  3. 电协修改后的源代码文件结构:
    • kernel:Atom系统内核
    • ports:特定平台(根据不同的芯片选择)
      • lib:库函数
        • inc:库函数头文件
        • src:库函数源文件
      • ports-stm8s:主程序和系统的端口代码,涵盖编译器的选择
      • project:工程文件
    • tests:Atom官方测试代码
    • user:应用程序代码
  4. 学习建议:凡是讲述代码部分,建议正确打开工程,一步步跟着讲述,查看每一个提及到的变量、函数等,这样对系统加深理解。我们是学习实时系统的原理,而不单是使用它,而且要有信心优化系统。

原理:Atomthread系统的整体架构解析

1.程序控制块(atom.h)

操作系统是一种管理软件,负责管理对象的信息之余还按照某种规则对这些对象进行分配、调度,而实现这些操作的前提是需要有一份关于对象的详细信息,我们称之为程序控制块。从代码上看,程序控制块就是一个结构体。在Atom系统里面,程序控制块的组成简化如下图。
这里写图片描述
Atom系统里把上图所示结构体称之为ATOM_TCB(atom.h 4行),系统依赖于此结构来执行系统任务程序。
*注意:任务堆栈使用记录,是由ATOM_STACK_CHECKING宏决定是否存在TCB当中,如果不需要使用堆栈检测功能,可以根据宏来设置。

2.任务(kernel.h)
### 回答1: 《STM8S参考手册_CHv4》是STM8S系列微控制器的参考手册,用于帮助开发者理解和使用STM8S系列微控制器的功能和特性。 参考手册_CHv4详细介绍了STM8S系列微控制器的体系结构、寄存器、中断控制器、时钟控制、电源管理、GPIO、串口通信、定时器、ADC、EEPROM等相关模块和功能。手册内提供了详细的寄存器描述、时序图和准确的操作指导,使开发者能够充分利用STM8S微控制器的性能和功能。 本手册首先介绍了STM8S系列微控制器的整体架构和核心部件。随后详细介绍了寄存器的功能和编程方法,使开发者能够灵活地控制和配置微控制器。中断控制器的章节详细介绍了中断的分类、触发方式和中断向量表的设置方法,帮助开发者正确处理和利用中断。 时钟控制章节介绍了STM8S微控制器内部和外部时钟源的选择和配置方法,帮助开发者实现可靠的时钟系统。电源管理部分讲述了低功耗模式的配置和使用方法,帮助开发者在需要最小功耗的应用中进行合理的功耗管理。 接下来的章节分别介绍了GPIO、串口通信、定时器、ADC和EEPROM等重要的功能模块的配置和使用方法。这些模块广泛应用于各种嵌入式系统中,通过本手册的指导,开发者能够更好地理解和应用这些模块。 总之,《STM8S参考手册_CHv4》作为STM8S系列微控制器的权威指南,为开发者提供了详尽的技术资料和实用的开发手册。开发者可以通过学习和应用本手册中的知识,更好地充分利用STM8S微控制器的性能和功能,开发出高效、可靠的嵌入式系统。 ### 回答2: 《STM8S 参考手册 CHV4》是以STM8S系列微控制器为基础的参考手册。该手册详细介绍了STM8S系列微控制器的特性、功能和使用方法。 首先,手册提供了有关STM8S系列微控制器的概述,包括其体系结构、特点和应用领域。它介绍了微控制器的硬件组件,例如中央处理器(CPU)、存储器、时钟和复位系统。此外,手册还提供了有关外设接口和通信接口(如串行通信接口、通用异步收发器等)的详细信息。 手册还介绍了如何使用STM8S系列微控制器进行编程。它解释了编程环境的设置和配置,并提供了编程示例和代码片段,以帮助用户快速上手。手册还介绍了如何使用微控制器的开发工具和调试功能,以及如何进行软件和硬件调试。 此外,手册还提供了STM8S系列微控制器的特性和功能的详细说明。它涵盖了各个外设模块的特点和工作原理,包括通用输入/输出(GPIO)端口、定时器、看门狗定时器、模数转换器等。它还介绍了微控制器的电源管理机制和低功耗模式,以及扩展模块和外设的使用方法。 总之,《STM8S 参考手册 CHV4》是一本全面而详细的参考手册,适用于开发人员和工程师使用STM8S系列微控制器进行嵌入式系统开发。它提供了丰富的信息和实用的示例,帮助用户了解STM8S微控制器的特性和功能,并能够快速将其应用到实际项目中。 ### 回答3: STM8S Reference Manual CHv4是STMicroelectronics公司发布的一份关于STM8S微控制器的参考手册。这个参考手册旨在提供关于STM8S微控制器系列的详细技术规格、功能和应用的全面指南。 手册的第一部分包括了对STM8S微控制器系列概述、特点和优势的介绍。它还介绍了每个器件的主要特征,如处理器内核、存储器、外设和时钟系统。此外,手册还介绍了STM8S系列的不同产品线和封装选项。 手册的第二部分详细介绍了STM8S微控制器的每个外设模块,包括GPIO、定时器、串口通信接口、模数转换器等。每个外设模块都有详细的说明,包括寄存器的功能、使用方法和配置选项。手册还提供了一些典型的应用示例,以帮助工程师更好地了解如何使用这些外设模块来设计和开发应用程序。 手册的第三部分介绍了STM8S微控制器的编程模型和编程工具。它详细讲解了如何使用C语言和汇编语言来编写STM8S微控制器的软件程序,并提供了一些代码示例和编程指南。此外,手册还介绍了可用的开发工具,如ST-LINK调试器和IAR嵌入式工具链。 最后,手册提供了有关STM8S微控制器的详细技术规格和尺寸图。这些信息包括器件的电气特性、温度范围、引脚定义和包装尺寸等。这些规格信息对于工程师在设计和选型时非常重要。 总之,STM8S Reference Manual CHv4是一本全面详实的STM8S微控制器参考手册,对工程师了解和使用STM8S微控制器系列提供了广泛的技术信息和指导。无论是初学者还是有经验的嵌入式系统设计人员,都能从中获得有益的帮助。
评论 69
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值