OSAL全称为Operating System Abstration Layer,翻译为"操作系统抽象层",支持多任务的执行,但它并不是一个传统意义上的操作系统,但是实现了部分类似操作系统的功能。

在TI的mmwave_sdk中的OSAL抽象出下面几个层:

1. CycleprofilerP OSAL Porting Layer
2. DebugP OSAL porting Layer
3. HwiP OSAL Porting Layer
4. MemoryP OSAL Porting Layer
5. SemaphoreP OSAL Porting Layer

文章目录

  • CycleprofilerP OSAL
    • API函数介绍
  • DebugP OSAL
    • 宏定义介绍
    • 外部宏定义介绍
  • HwiP OSAL
    • API函数介绍
  • MemoryP OSAL
    • API函数介绍
  • SemaphoreP OSAL
    • API函数介绍

CycleprofilerP OSAL

这个模块用于测量CPU周期的周期分析器模块

API函数介绍

CycleprofilerP_init 函数

函数原型:

void     CycleprofilerP_init (void)

函数功能:

用于初始化周期分析器

CycleprofilerP_getTimeStamp 函数

函数原型:

uint32_t     CycleprofilerP_getTimeStamp (void)

函数功能:

得到CPU周期计数时间戳

DebugP OSAL

这个模块用于调试使用

宏定义介绍

DebugP_ASSERT_ENABLED

#define DebugP_ASSERT_ENABLED 0

功能描述:

定义用于控制是否启用断言的功能

DebugP_LOG_ENABLED

#define DebugP_LOG_ENABLED 0

功能描述:

定义用于将日志API插入操作系统提供的日志机制中,应用程序开发人员可以根据其要求移植后端日志API

外部宏定义介绍

DebugP_assert

#define DebugP_assert(expression)

功能描述:
异常检测功能,如果表达式的计算结果为true,则API不执行任何操作。如果计算结果为false,则底层的RTOS端口实现将通过其基础处理异常

DebugP_log0

#define DebugP_log0(format)

功能描述:

0个参数的调试功能,"printf"格式字符串

DebugP_log1

#define DebugP_log1(format, p1)

功能描述:

1个参数的调试功能,"printf"格式字符串

DebugP_log2

#define DebugP_log2(format, p1, p2)

功能描述:

2个参数的调试功能,"printf"格式字符串

DebugP_log3

#define DebugP_log3(format, p1, p2, p3)

功能描述:

3个参数的调试功能,"printf"格式字符串

DebugP_log4

#define DebugP_log4(format, p1, p2, p3, p4)

功能描述:

4个参数的调试功能,"printf"格式字符串

HwiP OSAL

这个模块是硬件中断模块

API函数介绍

HwiP_clearInterrupt函数

函数原型:

void     HwiP_clearInterrupt (int32_t interruptNum)

函数功能:

该函数用来清除一个中断

HwiP_create函数

函数原型:

HwiP_Handle  HwiP_create (int32_t interruptNum, HwiP_Fxn hwiFxn, HwiP_Params *params)

函数功能:

该函数用来创建一个中断

HwiP_delete函数

函数原型:

HwiP_Status  HwiP_delete (HwiP_Handle handle)

函数功能:

该函数用来删除一个中断

HwiP_disable函数

函数原型:

uintptr_t    HwiP_disable (void)

函数功能:

该函数用于禁用中断以进入关键区域

HwiP_disableInterrupt函数

函数原型:

void HwiP_disableInterrupt (int32_t interruptNum)

函数功能:

该函数用于关闭一个中断

HwiP_enableInterrupt函数

函数原型:

void HwiP_enableInterrupt (int32_t interruptNum)

函数功能:

该函数用于开启一个中断

HwiP_Params_init 函数

函数原型:

void     HwiP_Params_init (HwiP_Params *params)

函数功能:

将params结构初始化为默认值

HwiP_restore函数

函数原型:

void     HwiP_restore (uintptr_t key)

函数功能:

该函数用于恢复中断以退出关键区域

MemoryP OSAL

这个模块是内存管理模块,内存管理模块允许应用程序执行内存分配和清除。这个模块提供各自的API为:Data Buffer、Control Buffer

API函数介绍

MemoryP_ctrlAlloc

函数原型:

void *   MemoryP_ctrlAlloc (uint32_t size, uint8_t alignment)

函数功能:

该函数用于为控制操作分配空间

MemoryP_ctrlFree

函数原型:

void MemoryP_ctrlFree (void *ptr, uint32_t size)

函数功能:

该函数用于为控制操作释放空间

MemoryP_dataAlloc

函数原型:

void *   MemoryP_dataAlloc (uint32_t size, uint8_t alignment)

函数功能:

该函数用于为数据操作分配空间

MemoryP_dataFree

函数原型:

void     MemoryP_dataFree (void *ptr, uint32_t size)

函数功能:

该函数用于为数据操作释放空间

MemoryP_getStats

函数原型:

void     MemoryP_getStats (MemoryP_Stats *stats)

函数功能:

该函数用于获取数据内存统计的信息

SemaphoreP OSAL

这个模块是信号量模块

API函数介绍

SemaphoreP_create

函数原型:

SemaphoreP_Handle    SemaphoreP_create (uint32_t count, SemaphoreP_Params *params)

函数功能:

该函数用于创建一个信号量

SemaphoreP_delete

函数原型:

SemaphoreP_Status    SemaphoreP_delete (SemaphoreP_Handle handle)

函数功能:

该函数用于删除一个信号量

SemaphoreP_Params_init

函数原型:

void     SemaphoreP_Params_init (SemaphoreP_Params *params)

函数功能:

初始化参数结构体为默认值

SemaphoreP_pend

函数原型:

SemaphoreP_Status    SemaphoreP_pend (SemaphoreP_Handle handle, uint32_t timeout)

函数功能:

该函数用于挂起一个信号量

SemaphoreP_post

函数原型:

SemaphoreP_Status    SemaphoreP_post (SemaphoreP_Handle handle)

函数功能:

该函数用于释放一个信号量
SemaphoreP_postFromClock

函数原型:

SemaphoreP_Status    SemaphoreP_postFromClock (SemaphoreP_Handle handle)

函数功能:

该函数用于释放来自ClockP的信号量

SemaphoreP_postFromISR

函数原型:

SemaphoreP_Status    SemaphoreP_postFromISR (SemaphoreP_Handle handle)

函数功能:

该函数用于释放来自ISR的信号量

参考文献:

  1. 《mmWave SDK Module Documentation》

Xiaojie雷达之路---TI实战笔记---OSAL详解相关推荐

  1. Xiaojie雷达之路---TI实战笔记---MRR_MSS_CLIAdvancedFrameCfg详解

    本篇文章主要是对MSS项目中的源文件中mss_pa_cli.c的函数进行MRR_MSS_CLIAdvancedFrameCfg详解 函数源程序如下: static int32_t MRR_MSS_CL ...

  2. Xiaojie雷达之路---TI实战笔记---MSS代码详细解读

    文章目录 前言 基础知识 文章中会用到的专业术语 毫米波雷达的初始化流程(在MSS中) 本案例中要用的其他知识 UART MailBox Semaphore 代码解读 main函数 MRR_MSS_i ...

  3. Xiaojie雷达之路---TI实战笔记---BPM MIMO

    雷达信号和调制波形如下图所示: 第一个是固定载频矩阵脉冲,第二个是线性调频脉冲,第三个是相位编码脉冲 固定载频和线性调频这两种类型的脉冲很常见 本篇文章主要是配置相位编码脉冲 当+时初始相位为0deg ...

  4. Xiaojie雷达之路---TI实战笔记---ESM Driver说明

    ESM驱动提供API来配置和处理来自ESM H/W模块的错误 ESM头文件在应用程序中应该被包含如下: #include <ti/drivers/esm/esm.h> 驱动初始化 ESM驱 ...

  5. Xiaojie雷达之路---TI实战笔记---对AWR1843+DCA1000采集的数据进行解析

    这篇文章主要是介绍对AWR1843和DCA1000采集的数据进行解析 下面两张图要必须看懂,才能进行以后的操作: 图1: 这张图片主要说明的意思是对于每个tx的chirp,每个rx都会接收到 从上面这 ...

  6. Xiaojie雷达之路---TI实战笔记---CCS调试模式

    文章目录 前言 基础知识 毫米波雷达的两种调试模式 mmwave_automotive_toolbox_3_1_0工具箱 开发工具 案例演示 工程导入 工程重新编译 烧录xwr18xx_ccsdebu ...

  7. Xiaojie雷达之路---TI实战笔记---chirp、profile、frame、advframe

    什么是chirp? chirp是雷达发射的一种信号,频率随着时间线性增加,最多可以定义512个chirp,如下图所示: Chirp Timing Parameters: Idle time:上一次ch ...

  8. Xiaojie雷达之路---EDMA Driver External Functions详解

    文章目录 getNumInstances init open configErrorMonitoring configChannel startDmaTransfer isTransferComple ...

  9. Xiaojie雷达之路---Mailbox Driver External Functions详解

    文章目录 init Config_init open write read readFlush 本文主要讲解为了使用驱动程序Mailbox而需要调用的所有导出的API init 函数原型: int32 ...

  10. Xiaojie雷达之路---Mailbox深挖

    Hello,大家好,我是Xiaojie,欢迎大家能够和Xiaojie来一起学习毫米波雷达知识,本片文章主要是对Mailbox通信进行深挖: 有关Mailbox的源码解析已经在<Xiaojie雷达 ...

最新文章

  1. 关于Activity class {package/class} does not exist
  2. 自动驾驶定位技术-粒子滤波实践
  3. iOS-mac下 svn的使用
  4. 手把手Tinyxml入门,C++ VS2010
  5. Android Activity中加入View后进行后台截屏截图
  6. redis和mysql实现原理_redis和mysql结合数据一致性方案
  7. 运维自动化 第二章 openpyxl的用法,读写excel内容
  8. 聊一聊Load Average
  9. 开发者需要理解的分布式原语
  10. 新分类!全总结!最新Awesome-SLU-Survey资源库开源!
  11. Leetcode--7. 整数反转
  12. 为啥我的Python这么慢 (一)
  13. 10-2-文章分页展示
  14. python画饼图存在的问题_python_使用matplotlib画饼状图(pie)
  15. Android应用开发入门教程(经典版)
  16. Xilinx平台SRIO介绍(六)SRIO收发测试
  17. SolidWorks2008破解版及安装方法
  18. 简单制作登录注册页面
  19. 中标麒麟系统下(Neokylin7)达梦数据库的安装(DM8)
  20. 【组合数学】二项式定理与组合恒等式 ( 二项式定理 | 三个组合恒等式 递推式 | 递推式 1 | 递推式 2 | 递推式 3 帕斯卡/杨辉三角公式 | 组合分析方法 | 递推式组合恒等式特点 )

热门文章

  1. 计算机专业 英语词汇大全(持续更新)
  2. Linux尖角号符号怎么打出来,六角星号怎么打出来
  3. wifi发射功率各国标准_智能插座背后的两种无线协议——WiFi与ZigBee
  4. tarjan算法 java_最大强连通图算法 Tarjan算法 (图论)
  5. MAC 电脑安装jdk
  6. 1 Arduino开发软件和下载程序
  7. 基于springboot助学贷款管理毕业设计源码061528
  8. 中国队拿下口罩人脸识别世界第一!还将推全球最大公开人脸数据集
  9. 微信登录OpenId和UnionId区别
  10. c语言调用DOS命令删除文件,DOS删除命令怎么使用?用DOS命令删除文件的方法