0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Kinoma Create的特定应用操作系统

星星科技指导员 来源:嵌入式计算设计 作者:Igor Serikov 2022-06-29 11:29 次阅读

SynthOS 是一种软件工具,用于创建定制的、优化的应用特定操作系统 (ASOS)。使用项目文件中指定的系统约束和配置信息,SynthOS 分析应用程序和驱动程序代码,并生成包含原始用户代码和运行特定 ASOS 要求所需的所有代码的源代码。

SynthOS 生成的 ASOS 是一个高效的多任务内核,可以从低端系统中引入新功能,尤其是小型 8 位或 16 位低速处理器,并使其能够用于高级物联网设备,同时提供安全性,便携性和低功耗。由此产生的 ASOS 是一种 unikernel 形式,一种占用空间小、单一地址空间的系统,它越来越受欢迎,可以直接在虚拟机管理程序或裸机系统上高效运行。

Kinoma Create,如图 1 所示,是一个用于连接设备和物联网的硬件和软件原型系统,基于 Marvell 的 PXA166 处理器。Kinoma Create 旨在与连接环境中的外部硬件和传感器一起工作。

图 1: Kinoma Create 硬件和接口

poYBAGK7x0uAQCilAAEP_LoFIdE989.png

为了将 Kinoma Create 连接到外部硬件,系统背面有一个 50 针接口;这些引脚专用于固定功能。该系统还在前面有两个相同的 8 引脚接头,如表 1 中定义,每个 8 位由两个 8 位 Microchip PIC 16 MCU 之一控制,这些 8 位 Microchip PIC 16 MCU 作为通用 I/O (GPIO) 处理器运行。使用与这些 GPIO 通信的内置 Front Pin 应用程序将这些引脚的功能动态分配给物理引脚。该项目的目标是为两个 GPIO 开发代码,这些 GPIO 可以同时运行多个 I/O 接口,不会丢失数据,但仍适合 PIC 15 MCU 的 4 KB 闪存和 256 字节 RAM

前面板接口上的任何引脚都可以支持表中所示的功能。

表 1: Kinoma Create Front Pin 功能

poYBAGK7x1WAV-toAAF7YcZmTiw210.png

硬件架构

硬件架构如图 2 所示。PIC16 是一款小巧但功能强大的 MCU,具有复杂的接口和配置设置。Kinoma Create 使用两个 PIC16F1508 微控制器,每个都具有以下特性:

· 中档指令集:48 条指令,16 层堆栈

· 闪存程序存储器:4 KB

· RAM:256字节

· 振荡器:16 MHz

· PWM:四个独立

· ADC转换器:12通道10位

· DAC:5位

· 定时器:2个8位,1个16位

控制器时钟来自内部 16 MHz 时钟。在 4 个周期/命令下,它相当于 4 MIPS。与主处理器的通信通过硬件 I 2 C 接口进行。

图 2: SynthOS-Kinoma 创建项目框图

poYBAGK7x1uATv1OAACV8xQTXBA992.png

软件架构

鉴于 PIC16 处理器在内存空间和处理速度方面的限制,SynthOS 适合该项目。SynthOS 创建的 ASOS 在内存使用、处理器能力和速度方面非常高效。它对于像 Kinoma Create 中使用的 Microchip 设备这样的小型 MCU 也很有用。SynthOS 允许在 C 中编写代码。当一个任务需要调用另一个任务或等待另一个任务完成时,会插入 SynthOS 识别的特殊代码行,称为“原语”。

然后在所有任务代码上运行 SynthOS,将每个任务的适当信号量和标志插入到代码中的适当位置。SynthOS 还创建了任务管理代码来安排任务并管理相关的标志和信号量。SynthOS-Kinoma Create Project 的软件架构如图 3 所示。

图 3: SynthOS-Kinoma Create Project 软件功能框图

poYBAGK7x2GADjK5AAFz-c9XM0E034.png

系统初始化

System Init 模块在上电、复位和任何其他初始化条件时设置系统配置和硬件配置。I 2 C 主机通信模块是系统中的主要任务。它与主机通信,从中获取配置信息和数据,并在响应主机请求时发回数据。它使用 PIC 的集成 I 2 C 机制。来自主机的数据分为两类:没有约束的数据和需要根据一组允许值进行验证的数据。后面的数据被保存到一组影子寄存器中,并在影子寄存器模块中处理。

从主机发送的一些数据会使系统进入不稳定状态或与其他数据发生冲突。此类数据保存在影子寄存器模块中的一组影子寄存器中,并与相应寄存器的允许值进行比较。只有在验证为允许值后才会加载到寄存器中并在系统中生效。如果系统在影子寄存器的数据中检测到错误,它不会将该数据加载到相应的寄存器中,但会指示错误。

模拟输入和 A/D 模块处理模拟输入。该模块使用 PIC 的内部 10 位模数转换器并将数据存储在主机可以通过 I 2 C 接口检索的寄存器中。

数字 I/O 端口管理器

数字 I/O 端口管理器模块处理数字 I/O 端口状态和 I/O。此功能在此模块和其他一些模块之间划分。在验证设置之间没有冲突(例如,同时定义为电源和接地的引脚)之后,在影子寄存器模块中将引脚设置为电源、接地或 NC。

PWM 端口管理器模块控制脉宽调制 (PWM) 输出,并在中断服务程序 (ISR) 中执行。PWM 使用两个寄存器定义,第一个定义周期时间,第二个定义周期时间内信号为高电平的时间段。PWM 机制依靠定时器中断来生成所需的波形。由于 PIC 的功能有限,系统仅限于三个 PWM 输出。

在带外围设备的 I 2 C 模块中,PIC 是 I 2 C 网络上的主设备。时钟和数据由 PIC 通过旋转引脚上的位来模拟 I 2 C 协议生成。如果需要,系统可以发送单字节数据消息或进行缓冲区传输。

中断服务程序 (ISR)

PIC 的有限功能和中断支持架构需要偏离标准的带有 SynthOS 的 ISR 实现。PIC 实际上只有一个中断向量,所有中断都指向同一个地址。检测活动中断并做出响应是固件的责任。该架构要求固件在退出 ISR 和重置中断标志之前支持中断。出于这个原因,该系统在 ISR 中执行主机 I 2 C 和 PWM 以最小化代码大小并最大化性能。

ASOS 管理系统的不同任务并让它们并行运行,从而实现更高的效率。SynthOS 将任务定义为 Init Task、Loop Task、Call Task 或 ISR,并且必须在项目文件中指定系统中的每种任务类型。我们创建了一个项目文件来指定每个任务的类型及其属性,例如任务的优先级和频率,所有这些都显示在清单中。

图 4:显示 SynthOS-Kinoma Create 项目文件的清单。

poYBAGK7x2mAB8E0AAHHh81IMVo924.png

接下来,我们将描述 SynthOS-Kinoma 创建项目的任务。初始化任务在软件初始化期间执行一次。由于这个实现相对简单,并且由于内存限制,我们将所有系统初始化都移到了一个任务中。该任务包括系统配置、中断设置和变量初始化。

循环任务

循环任务由 ASOS 使用 SynthOS 项目文件中选择的调度程序定义的算法定期执行。由于 PIC 的内存有限,我们在这个项目中只使用 Loop Tasks,这也简化了配置文件和 SynthOS 生成的调度程序。

I 2 C Master 任务管理与主机在 I2C 总线上的通信。影子任务通过使用影子寄存器验证来自主机处理器的信息,并且只有在影子寄存器中的数据被验证后才更新系统配置和数据。

模拟输入任务在后台运行,从主机指定的端口读取模拟输入并将其保存在共享内存中。调用任务是不执行的,除非它是由正在执行的任务专门启动的。在这个实现中,我们没有使用任何调用任务。

中断服务程序在中断发生时执行,就像在典型的嵌入式系统中一样。系统中的 ISR 或者是用于 PWM 的定时器中断,它根据主机处理器定义的占空比管理 PWM 时序,或者是管理与主机处理器通信的 I 2 C 主机中断。

使用 SynthOS 实现系统后,GPIO 可以按预期工作,允许多个 I/O 同时运行而不会丢失任何数据,支持多个 A/D 和数字 I/O、多达四个 PWM,以及一个 I 2 C 接口八个引脚,仅由一个 PIC MCU 支持。考虑到功能,系统内存利用率在 3360 字节闪存(82% 利用率)和 198 字节 RAM(77% 利用率)下非常高效。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    18251

    浏览量

    222079
  • 寄存器
    +关注

    关注

    30

    文章

    5025

    浏览量

    117709
  • 定时器
    +关注

    关注

    23

    文章

    3146

    浏览量

    112028
收藏 人收藏

    评论

    相关推荐

    百度副总裁、小度CEO李莹正式发布了小度新一代操作系统DuerOS X

    4月16日,以“创造未来”为主题的2024百度Create AI开发者大会在深圳举办。百度集团副总裁、小度科技CEO李莹正式发布了小度新一代操作系统DuerOS X,该操作系统是小度基于百度
    的头像 发表于 04-18 09:27 219次阅读
    百度副总裁、小度CEO李莹正式发布了小度新一代<b class='flag-5'>操作系统</b>DuerOS X

    带你认识实时操作系统(rtos)

    实时操作系统(RTOS)是为嵌入式系统和实时应用提供一个稳定、可预测和高效运行环境的操作系统。实时操作系统确保了系统能够在严格的时间限制内响
    的头像 发表于 04-16 16:30 119次阅读
    带你认识实时<b class='flag-5'>操作系统</b>(rtos)

    深度解析全球操作系统格局

    操作系统是负责协调、管理和控制计算机硬件与软件资源的程序,是整个计算机的核心系统软件。 按照操作系统面向的设备类型,通用操作系统主要包括桌面操作系统
    的头像 发表于 01-18 15:00 280次阅读
    深度解析全球<b class='flag-5'>操作系统</b>格局

    详解实时操作系统和非实时操作系统

    实时操作系统,当外界事件和数据产生时,系统能以足够快的速度予以处理,其处理结果能在规定的时间内控制生产结果或对系统做出响应,并控制所有实时任务协调一致运行的操作系统
    的头像 发表于 12-26 09:54 1834次阅读
    详解实时<b class='flag-5'>操作系统</b>和非实时<b class='flag-5'>操作系统</b>

    单片机操作系统有哪些

    单片机操作系统(RTOS)是一种专门设计用于单片机的操作系统,它可以提供任务调度、内存管理、设备驱动等功能,帮助程序员更高效地开发嵌入式系统。在本文中,我们将详细介绍几种常见的单片机操作系统
    的头像 发表于 12-08 16:18 1747次阅读

    什么是实时操作系统(RTOS)

    实时操作系统(RTOS)是一种专为实时应用程序设计的操作系统。实时应用程序需要在特定时间内做出预测的响应,因此 RTOS 专注于提供对时间约束的强调,以确保系统能够满足实时性能要求。
    的头像 发表于 11-23 17:14 1641次阅读

    linux属于什么操作系统

    Linux属于一种类UNIX操作系统。Linux,全称GNU/Linux,是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统
    的头像 发表于 11-08 11:01 1722次阅读

    开源操作系统大全

    开源操作系统即公开源代码的操作系统软件,它遵循开源协议使用、编译和发布。自由和开放源代码软件中最著名的是 Linux ,它是一种类 Unix 的操作系统。Linux 可安装在各种计算机硬件设备中
    发表于 10-27 15:13

    汽车操作系统和中间件的关系

    如果嵌入式操作系统(比如FreeRTOS, uCOS或Autosar CP的内核)的开发难度和工作量是1, 那么大型操作系统的开发难度和工作量就是99, 从体量就能看出,一个完整的嵌入式操作系统最多几十M, 而一个大型
    发表于 07-21 11:16 439次阅读
    汽车<b class='flag-5'>操作系统</b>和中间件的关系

    FreeRTOS:一个迷你的实时操作系统内核

    ** 1、FreeRTOS** FreeRTOS是一个迷你的实时操作系统内核。作为一个轻量级的操作系统,功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器
    的头像 发表于 06-29 17:15 516次阅读
    FreeRTOS:一个迷你的实时<b class='flag-5'>操作系统</b>内核

    经典的移动终端操作系统有哪些

    移动终端操作系统,也就是指手机、平板电脑等设备所使用的操作系统。 在移动互联网高度发达的今天,我们使用移动终端操作系统的时长,可能已经远远超过了Windows等桌面操作系统
    发表于 06-20 11:20 1270次阅读
    经典的移动终端<b class='flag-5'>操作系统</b>有哪些

    操作系统接口(1)#操作系统

    操作系统
    学习硬声知识
    发布于 :2023年06月01日 11:31:19

    操作系统生成(1)#操作系统

    操作系统
    学习硬声知识
    发布于 :2023年05月25日 18:29:51

    操作系统课程的特点(1)#操作系统

    操作系统
    学习硬声知识
    发布于 :2023年05月19日 19:29:55

    聊聊操作系统

    说到操作系统,大家都不会陌生。我们天天都在接触操作系统——用台式机或笔记本电脑,使用的是windows和macOS系统;用手机、平板电脑,则是android(安卓)和iOS系统
    的头像 发表于 05-12 11:13 1024次阅读
    聊聊<b class='flag-5'>操作系统</b>