文章目录

  • 什么是SYS/BIOS
  • SYS/BIOS和TI-RTOS有什么关系
  • SYS/BIOS和XDCtools有什么关系
    • SYS/BIOS作为包的集合
    • 使用XDCtools配置SYS/BIOS
    • XDCtools模块和运行时的API
  • SYS/BIOS包和API
    • SYS/BIOS Object Creation
    • POSIX Thread Support

什么是SYS/BIOS

SYS/BIOS是一个可伸缩的实时内核。它是为需要实时调度和同步或实时检测的应用程序而设计的。SYS/BIOS提供了抢占式多线程、硬件抽象、实时分析和配置工具。SYS/BIOS有助于最小化目标上的内存和CPU的需求。

SYS/BIOS和TI-RTOS有什么关系

TI-RTOS是针对TI设备的可扩展、一站式嵌入式工具生态系统。它从实时多任务内核(SYS/BIOS)扩展到一个完整的RTOS解决方案,包括附加的中间组件和设备驱动程序。通过提供预先测试和预集成的基本系统软件组件,TI-RTOS可以使开发者能够更加专注于应用程序的开发。

SYS/BIOS是TI-RTOS产品的"TI-RTOS内核"组件,这个两个名字都指向的是相同的组件。

SYS/BIOS和XDCtools有什么关系

XDCtools提供TI-RTOS及其组件(包括SYS/BIOS)所需的底层核心工具。要使用SYS/BIOS,必须同时安装XDCtools和SYS/BIOS

XDCtools对SYS/BIOS用户很重要,因为:

  • XDCtools提供用户用来配置应用程序使用的SYS/BIOS和XDCtools模块的技术。
  • XDCtools提供用于构建配置文件的工具。此构建步骤生成源代码文件,然后编译这些文件并与应用程序代码链接。
  • XDCtools提供了许多模块和运行时的API,SYS/BIOS利用这些模块和API进行内存分配、日志记录、系统控制等。

XDCtools有时被称为“RTSC”(Real Time Software Components),这是Eclipse生态系统中的开源项目名称,它提供可重用的软件组件(称为"包")以用于嵌入式系统。

SYS/BIOS作为包的集合

SYS/BIOS和XDCtools是一组"包",每个包都提供了产品功能的一个子集。XDCtools使用包的命名约定来帮助可读性,并确保从不同来源传递的包不会发生命名空间冲突,这会给系统集成商带来问题。XDCtools的命令规则和Java很相似。

SYS/BIOS包符合这个约定,名称由一个分层命名模式组成,每个级别用句点(".")分隔,例如“ti.sysbios.knl”。这样命名的好处就是反映了安装SYS.BIOS的文件系统中包的物理布局,“ti.sysbios.knl”这个包就可以再下面的文件路径中找到。

E:\mmWaveSDK\bios_6_73_01_01\packages\ti\sysbios\knl

下面的这张图说明了创建应用程序的工具体系结构

XDCtools提供的xdc.runtime包包含应用程序可以与SYS/BIOS中的模块和api一起使用的模块和api。

使用XDCtools配置SYS/BIOS

配置是使用SYS/BIOS一个必要的部分,用于以下目的:

  • 指定了应用程序将使用的模块和包
  • 它可以静态地为应用程序使用的模块创建对象
  • 它验证显示和隐式使用的模块集,以确保它们是兼容的
  • 它静态地为系统、模块和对象设置参数,以更改其运行时行为

应用程序地配置存储在一个或多个扩展名为"*.cfg"的脚本文件中。XDCtools对这些文件进行解析,以生成相应的C源代码、C头文件和链接器命令文件,然后将这些文件编译并链接到最终的应用程序中。个人感觉和makefile文件作用差不多

下面的图描述了典型的SYS/BIOS应用程序的构建流程

配置文件(*.cfg)使用类似JavaScript的语法来设置属性和调用对象提供的方法。可以使用下列的几种方式修改配置文件:

1. 使用CSS中的虚拟配置工具(XGCONF)进行配置
2. 在CCS的XGCONF编辑器的cfg Script选项卡中编辑配置文本
3. 直接使用text编辑器编辑*.cfg文件

XDCtools模块和运行时的API

XDCtools包含了几个模块,这些这模块在运行的时候提供SYS/BIOS应用程序成功运行所需的基本系统服务。大多数模块位于XDCtools中的xdc.runtime包中,在默认情况下,在build期间所有的SYS/BIOS应用程序都会自动被添加到xdc.runtime包中

XDCtools提供的在C代码和配置文件中使用的功能可以大致分为四类,如下表:

Category Modules Description
System Services System 基本的低级"系统"服务
Startup 允许在main()之前运行由不同模块定义的函数
Defaults 为未显示设置值的模块设置时间日志记录、断言检查和内存使用选项
Main 设置应用于应用程序代码的事件日志记录和断言检查选项
Program 设置运行时内存大小、程序生成选项以及内存段和段的选项。这个模块用作配置对象模型的"根"。这个模块在xdc.cfg的包中
Memory Management Memory 静态或动态创建/释放堆内存
Diagnostics Log and Loggers 允许记录事件,然后将这些事件传递给日志处理程序
Error 允许抛出、检查和处理由任何模块定义的错误
Diags 允许在每个模块的配置或运行时启用/禁用诊断
Timestamp and Providers 提供时间戳API,用于将调用转发到特定于平台的时间戳器(或由CSS提供的时间戳器)
Text 提供字符串管理服务以最小化目标上所需的字符串数据
Synchronization Gate 防止对关键数据结构的并发访问
Sync 使用wait()和signal()函数在线程之间提供基本同步

SYS/BIOS包和API

SYS/BIOS提供了下列的包:

Package Description
ti.sysbios.family.* 包含特定于目标/设备的功能
ti.sysbios.gates 包含IGateProvider接口的多个实现,可在各种情况下使用。其中包括GateHwi、GateSwi、GateTask、GateMutex和GateMutexPri
ti.sysbios.hal 包含Hwi,Timer,Seconds和Cache模块
ti.sysbios.heaps 提供XDCtools IHeap接口的几种实现。其中包括HeapBuf(固定大小的缓冲区)、HeapMem(可变大小的缓冲区)和HeapMultiBuf(多个固定大小的缓冲区)
ti.sysbios.interfaces 包含要实现的模块的接口,例如,基于设备或平台
ti.sysbios.knl 包含SYS/BIOS内核的模块,包括Swi,Task,Idle和Clock。还包含与进程通信相关的模块:Event、Mailbox和Semaphore
ti.sysbios.utils 包含加载模块,该模块提供全局CPU负载和线程特定负载

SYS/BIOS Object Creation

一些模块支持实例对象的创建。这些模块包括Hwi、Task、Swi、Semaphore、Mailbox、Queue、Event、Clock、Timer以及各种的类型的Gate和Heap模块。例如,任务模块允许创建多个任务对象。每个任务对象对应于具有自己的function,priority和timing。

POSIX Thread Support

SYS/BIOS还提供POSIX线程(pthread)api的子集。这些包括pthread线程、互斥锁、读写锁、屏蔽和田间变量。

参考文献:

  1. 《TI-RTOS Kernel (SYS/BIOS) User’s Guide》

TI-RTOS---TI-RTOS简介相关推荐

  1. TI DSP 6657 SRIO 简介

    TI DSP 6657 SRIO 简介 SRIO 协议介绍 TI 的 KeyStone 系列设备中实现了 RapidIO 协议,实现 RapidIO 的部分外设,被 TI 称为 SRIO (Seria ...

  2. 基于STM32的UCOSIII入门教学(一)第1讲 RTOS背景知识简介

    border="0" width="363" height="333" src="//music.163.com/outchain ...

  3. 嵌入式 RTOS多任务操作系统简介

    任务管理 1. 单任务系统 裸机编程主要是采用超级循环(super-loops)系统,又称前后台系统.应用程序是一个无限的循环,循环中调用相应的函数完成相应的操作,这部分可以看做后台行为,中断服务程序 ...

  4. TI XDC工具入门简介

    1.XDC(Express DSP Component)是TI提供的一个命令行工具,它可以生成并使用实时软件组件包. 2.以上两图说明了XDC的工作方式:通过相关文件设定操作指令,读入源码.库文件以及 ...

  5. 什么是RTOS?RTOS与普通操作系统的区别

    一:什么是RTOS RTOS(Real-Time Operating System),实时操作系统.实时性是其最大特征,实时操作系统中都要包含一个实时任务调度器,这个任务调度器与其它操作系统的最大不同 ...

  6. Android 6 ti dsp,TI DSP TMS320C66x学习笔记之内联指令(c6x.h中文注释)(六)

    /*****************************************************************************/ /* C6X.H v7.4.12 */ ...

  7. TI CC32XX SDA中SimpleLink Academy教程翻译(RTOS部分的基础介绍非常易懂)

    SimpleLink MCU平台是业界最广泛的基于ARM Cortex-M的有线和无线微控制器组合. 目录 一.Debug Printing 1.printf 2.Display_printf 3.S ...

  8. [TI TDA4 J721E]PROCESSOR-SDK-J721E RTOS Linux 开发环境搭建 基于 ubuntu 18.04

              首先感谢阅读,如果您也对TDA4相关的开发感兴趣,我们这边有个学习交流微信群,可以入群和大家一起交流学习. 资历较浅,水平有限,如遇错误,请大家多指正! 保持开源精神,共同分享.进 ...

  9. RTOS原理及功能简介

    文章目录 1 RTOS原理及功能简介 1.1 RTOS概述 1.2 RTOS工作原理简介 1.3 RTOS如何解决前后台代码结构存在的问题 1 RTOS原理及功能简介 1.1 RTOS概述 百度百科的 ...

  10. 基于TI AM335x ARM Cortex-A8 CPU 核心板

    核心板简介 基于TI AM335x ARM Cortex-A8 CPU,主频高达1GHz,运算能力高达2000DMIPS,搭配DDR3,兼容eMMC和NAND FLASH,性价比高: pin to p ...

最新文章

  1. 我国科学家首次揭示“时空”记忆在猕猴大脑中表征的几何结构
  2. 常用巡检语句(oracle)
  3. 解决C++代码单元测试中的难题-不可验证和IO调用
  4. Spring Boot定时任务-Quartz基本使用
  5. C#LeetCode刷题之#443-压缩字符串​​​​​​​(String Compression)
  6. 缅因大学欧洛诺分校计算机科学,一分钟带大家了解美国名校缅因大学优势!
  7. python googletrans_Python使用googletrans报错的解决方法
  8. python基础--函数1
  9. rdkit 修改分子
  10. python爬取同花顺_python 同花顺
  11. liteide+g:Goland多版本管理
  12. 三峡大坝水位落差达40层楼高,船舶要如何翻越?
  13. python字符编码问题_python字符串的编码问题
  14. 网卡扫盲一:网卡初步认识
  15. 笔记本一直提示计算机内存不足怎么办,电脑总是提醒内存不足怎么办,电脑提醒内存不足-...
  16. QQ浏览器网页版微信抓包和IPAD微信抓包 Wireshark
  17. “2021流行趋势发布·新品试骑活动”引爆羊城
  18. DistilBERT, a distilled version of BERT
  19. U8接口开发-五大方式对比与剖析
  20. 什么是太阳光模拟器整车全光谱阳光模拟系统?

热门文章

  1. Linux:CentOS7安装
  2. 8051单片机Proteus仿真与开发实例-ULN2003A驱动步进电机仿真
  3. 像素风放置类游戏-突袭盛宴Raid Party
  4. fpm工作流程(转)--写的很完整很明白
  5. 京东CEO刘强东事件在发酵,谎言终被破
  6. VS2012 启动鼠标无法移动问题(个例)解决方案。
  7. Prism4学习笔记(七):State-Based Navigation QuickStart
  8. Bladed 时序风况配置方法
  9. office 论文 页码_毕业论文word里面怎么弄以下这些页码?第一页不显示。 第二三页是I II ,四页开始以下是1234。求详细方法...
  10. 信息爆炸时代的纳米技术-分子通信