POSIX和CMSIS接口

POSIX标准系统接口

简介

POSIX(Portable Operating System Interface of UNIX),可移植操作系统接口,它定义了操作系统应该为应用程序提供的接口,其中X代表UNIX,是对Unix API的传承。POSIX标准意在期望获得源代码级别的软件可移植性。换句话说,为一个POSIX兼容的操作系统编写的程序,应该可以在任何其它的POSIX操作系统(即使是来自另一个厂商)上编译执行。
因此,这一标准带来的好处就是在一个POSIX兼容的操作系统编写的符合其标准的应用程序可以直接在其他POSIX支持的操作系统中无需修改而能够直接编译运行。

进一步理解

完成同一功能,不同内核提供的系统调用(也就是一个函数)是不同的,例如创建进程,linux下是fork函数,windows下是creatprocess函数。好,我现在在linux下写一个程序,用到fork函数,那么这个程序该怎么往windows上移植?我需要把源代码里的fork通通改成creatprocess,然后重新编译!

posix标准的出现就是为了解决这个问题。linux和windows都要实现基本的posix标准,linux把fork函数封装成posix_fork(随便说的),windows把creatprocess函数也封装成posix_fork,都声明在unistd.h里。

这样,程序员编写普通应用时候,只用包含unistd.h,调用posix_fork函数,程序就在源代码级别可移植了。

知识补充

现代的POSIX OS一般是多线程的。讨论POSIX OS时,必然要研究进程和线程。
在现代操作系统中,进程支持多线程。进程是资源管理的最小单元;而线程是程序执行的最小单元。一个进程的组成实体可以分为两大部分:线程集合和资源集合。进程中的线程是动态的对象;代表了进程指令的执行。资源,包括地址空间、打开的文件、用户信息等等,由进程内的线程共享。线程有自己的私有数据:程序计数器,栈空间以及寄存器(可以认为线程自己保存着CPU的状态,而和其他线程共享内存空间)。

想要进一步了解可以进入POSIX标准总体分析一文。

POSIX框架图

在这里插入图片描述

CMSIS标准

简介

CMSIS是Cortex Microcontroller Software Interface Standard的缩写,中文为Cortex系列微控制器软件接口标准。此标准是ARM公司,芯片供应商以及软件供应商共同制定的,旨意降低软件开发成本。它规定了处理器内核与外设的接口,统一了内核访问外设寄存器的方法,从而简化了软件的开发,提高了软件的重用。

CMSIS是一组工具、api、框架和工作流程,有助于简化软件重用,减少微控制器开发人员的学习曲线,加速项目构建和调试,从而减少新应用程序上市的时间。

CMSIS最初是一个独立于供应商的硬件抽象层,基于Arm Cortex®-M处理器,后来扩展到支持入门级的Arm Cortex- a处理器。为了简化访问,CMSIS定义了通用的工具接口,并通过向处理器和外设提供简单的软件接口来实现一致的设备支持。

CMSIS是在各种硅和软件供应商的密切合作下定义的,并提供了与外设、实时操作系统和中间件组件的接口的通用方法。它旨在支持来自多个供应商的软件组件的组合。

CMSIS的结构

CMSIS 包含以下组件:

  • CMSIS-CORE:提供与 Cortex-M0、Cortex-M3、Cortex-M4、SC000 和 SC300 处理器与外围寄存器之间的接口
  • CMSIS-DSP:包含以定点(分数 q7、q15、q31)和单精度浮点(32 位)实现的 60 多种函数的 DSP 库
  • CMSIS-RTOS API:用于线程控制、资源和时间管理的实时操作系统的标准化编程接口
  • CMSIS-SVD:包含完整微控制器系统(包括外设)的程序员视图的系统视图描述 XML 文件

此标准可进行全面扩展,以确保适用于所有 Cortex-M 处理器系列微控制器。其中包括所有设备:从最小的 8 KB 设备,直至带有精密通信外设(例如以太网或 USB)的设备。(内核外设功能的内存要求小于 1 KB 代码,低于 10 字节 RAM)。

框架图

在这里插入图片描述
其中CMSIS-RTOS的理解见下图:
在这里插入图片描述
注:CMSIS-RTOS在用户的应用代码和第三方的RTOS Kernel直接架起一道桥梁,一个设计在不同的RTOS之间移植,或者在不同Cortex MCU直接移植的时候,如果两个RTOS都实现了CMSIS-RTOS,那么用户的应用程序代码完全可以不做修改。

进一步理解

CMSIS的创建是为了帮助行业标准化。它使一致的软件层和设备支持跨广泛的开发工具和微控制器。CMSIS不是一个会带来开销的巨大的软件层,也没有定义标准的外围设备。因此,硅行业可以使用这一通用标准来支持Arm Cortex基于处理器的各种设备。
在这里插入图片描述
详细说明见官方文档:CMSIS INTRODUCTION

小结

随着5G和智能化的来临,物联网(IoT)的发展也变得更加快速。当前的物联网领域已经形成了庞大的生态系统,市场上的微控制器(MCU)供应商和嵌入式操作系统(一般也是实时操作系统)也多达几十个,开发者面对的嵌入式软件工程越发复杂。为减少开发工作量并降低产品存在缺陷的风险,软件重用变得越来越重要。因此各标准组织和相关利益厂商,都在积极制定和推动软件接口标准。
![(https://img-blog.csdnimg.cn/ca22b3a6f0e84b0c8a412e2ff14459fc.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5b-D5rC45ZCR6Ziz,size_20,color_FFFFFF,t_70,g_se,x_16)

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值