OSAL包含以下几个模块:

  • CycleprofilerP OSAL
  • DebugP OSAL
  • HwiP OSAL
  • MemoryP OSAL
  • SemaphoreP OSAL

CycleprofilerP OSAL

Cycle profiler模块用于测量CPU周期

函数介绍:

CycleprofilerP_init

函数原型:

void     CycleprofilerP_init (void)

函数功能:

该函数用于初始化cycle profiler

函数参数:

函数返回值:

CycleprofilerP_getTimeStamp

函数原型:

uint32_t     CycleprofilerP_getTimeStamp (void)

函数功能:

函数参数:

函数返回值:

获取CPU周期计数时间戳

DebugP OSAL

支持Debug

函数介绍:

DebugP_assert

函数原型:

#define DebugP_assert    (       expression  )

函数功能:

异常检查函数。如果表达式计算结果为true,则API什么也不做。如果计算结果为false,则底层RTOS端口实现将通过其机制处理断言。

函数参数:

expression:要计算的表达式

DebugP_log0

函数原型

#define DebugP_log0  (       format  )

函数功能

使用0个参数调试日志函数。底层RTOS端口实现通过其机制处理日志记录

函数参数

format:"printf"格式的字符串

DebugP_log1

函数原型

#define DebugP_log1  (format,p1 )

函数功能

使用1个参数调试日志函数。底层RTOS端口实现通过其机制处理日志记录

函数参数

format:"printf"格式的字符串
p1:格式化字符串的第一个参数

DebugP_log2

函数原型

#define DebugP_log2  (format,p1,p2 )

函数功能

使用2个参数调试日志函数。底层RTOS端口实现通过其机制处理日志记录

函数参数

format:"printf"格式的字符串
p1:格式化字符串的第一个参数
p2:格式化字符串的第二个参数

DebugP_log3

函数原型

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

函数功能

使用3个参数调试日志函数。底层RTOS端口实现通过其机制处理日志记录

函数参数

format:"printf"格式的字符串
p1:格式化字符串的第一个参数
p2:格式化字符串的第二个参数
p3:格式化字符串的第三个参数

DebugP_log4

函数原型

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

函数功能

使用4个参数调试日志函数。底层RTOS端口实现通过其机制处理日志记录

函数参数

format:"printf"格式的字符串
p1:格式化字符串的第一个参数
p2:格式化字符串的第二个参数
p3:格式化字符串的第三个参数
p4:格式化字符串的第四个参数

宏定义介绍

DebugP_ASSERT_ENABLED

#define DebugP_ASSERT_ENABLED   0

功能描述:

启用断言
定义用于控制是否启用断言的功能。可以通过更改文件或通过makefile为调试生成启用此标志。

DebugP_LOG_ENABLED

#define DebugP_LOG_ENABLED   0

功能描述:

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

HwiP OSAL

RTOS移植接口的硬件中断模块

函数介绍

HwiP_clearInterrupt

函数原型:

void HwiP_clearInterrupt(int32_t     interruptNum)

函数功能:

该函数清除一个单一的中断

函数参数:

interruptNum:要清除的中断号

函数返回值:

HwiP_create

函数原型:

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

函数功能:

该函数创建一个中断

函数参数:

interruptNum:中断向量Id
hwiFxn:硬件中断的输入功能
params:指向实例配置参数的指针。NULL表示使用默认参数。HwiP默认参数在HwiP_Params_init中注名。

函数返回值:

成功后,返回HwiP_Handle句柄,失败后返回NULL值。

HwiP_delete

函数原型:

HwiP_Status HwiP_delete(HwiP_Handle  handle)

函数功能:

该函数删除一个中断

函数参数:

handle:HwiP_create返回的句柄

函数返回值:

HwiP_disable

函数原型:

uintptr_t HwiP_disable(void)

函数功能:

用于禁用中断以进入关键区域的功能
此函数可以多次调用,但必须按相反的顺序解开。例如,

uintptr_t key1, key2;
key1 = HwiP_disable();
key2 = HwiP_disable();
HwiP_restore(key2);
HwiP_restore(key1);

函数参数:

函数返回值:

必须传递给HwiP_restore以重新启用中断的key值

HwiP_disableInterrupt

函数原型:

void HwiP_disableInterrupt(int32_t   interruptNum)

函数功能:

该函数用来禁用单个中断

函数参数:

interruptNum:要禁用的中断号

函数返回值:

HwiP_enableInterrupt

函数原型:

void HwiP_enableInterrupt(int32_t    interruptNum)

函数功能:

该函数用来使能单个中断

函数参数:

interruptNum:要启用的中断号

函数返回值:

HwiP_Params_init

函数原型:

void HwiP_Params_init(HwiP_Params * params)

函数功能:

初始化params结构体为默认值

默认参数是:

-name:NULL
-arg:0
-priority:~0

函数参数:

params:指向实例配置参数的指针

函数返回值:

HwiP_restore

函数原型:

void HwiP_restore(uintptr_t key)

函数功能:

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

函数参数:

key:HwiP_disable函数返回的key值

函数返回值:

MemoryP OSAL

RTOS移植接口的内存管理模块

函数介绍

MemoryP_ctrlAlloc

函数原型

void* MemoryP_ctrlAlloc  (   uint32_t    size,uint8_t    alignment )

函数功能

用于为控制操作分配内存的函数

函数参数

size:需要内存的大小
alignment:对齐方式(字节)

函数返回值

成功时指向已分配内存的指针,失败时指向NULL指针

MemoryP_ctrlFree

函数原型

void MemoryP_ctrlFree(void * ptr,uint32_t size )

函数功能

该函数用于释放先前分配的控制内存的函数

函数参数

ptr:指向要清理的内存指针
size:要清理内存的大小

函数返回值

MemoryP_dataAlloc

函数原型

void* MemoryP_dataAlloc(uint32_t     size,uint8_t    alignment)

函数功能

用于为数据操作分配内存的函数

函数参数

size:需要内存的大小
alignment:对齐方式(字节)

函数返回值

成功时指向已分配内存的指针,失败时指向NULL指针

MemoryP_dataFree

函数原型

void MemoryP_dataFree    (   void *  ptr,uint32_t    size )

函数功能

用于释放先前分配的数据内存的函数

函数参数

ptr:指向要清理的内存指针
size:要清理内存的大小

函数返回值

MemoryP_getStats

函数原型

void MemoryP_getStats(MemoryP_Stats *    stats)

函数功能

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

函数参数

stats:指向内存统计结构的指针

函数返回值

SemaphoreP OSAL

RTOS移植接口的信号量模块

函数描述:

SemaphoreP_create

函数原型

SemaphoreP_Handle SemaphoreP_create  (   uint32_t    count,SemaphoreP_Params *   params )

函数功能

创建一个信号量

函数参数

count:信号量的初始计数
params:对于二进制信号量,只有0或1的值有效

函数返回值

执行成功返回信号量句柄,执行失败返回NULL值

SemaphoreP_delete

函数原型

SemaphoreP_Status SemaphoreP_delete  (   SemaphoreP_Handle   handle  )

函数功能

删除信号量

函数参数

handle:信号量句柄

函数返回值

函数的状态:
-SemaphoreP_OK:删除信号实例成功
-SemaphoreP_FAILED:删除信号量实例失败

SemaphoreP_Params_init

函数原型

void SemaphoreP_Params_init  (   SemaphoreP_Params *     params  )

函数功能

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

-mode:SemaphoreP_Mode_COUNTING
-name:NULL

函数参数

params:指向实例配置参数的指针

函数返回值

SemaphoreP_pend

函数原型

SemaphoreP_Status SemaphoreP_pend    (   SemaphoreP_Handle   handle,uint32_t     timeout )

函数功能

挂起一个信号量

函数参数

handle:信号量句柄
timeout:等待信号量释放的时延(以毫秒为单位)

函数返回值

函数的状态:

  • SemaphoreP_OK:获取信号量
  • SemaphoreP_TIMEOUT:超时。未获取信号量
  • SemaphoreP_FAILED:非超时故障

SemaphoreP_post

函数原型

 SemaphoreP_Status SemaphoreP_post   (   SemaphoreP_Handle   handle  )

函数功能

释放一个信号量

函数参数

handle:信号量句柄

函数返回值

函数的状态:

  • SemaphoreP_OK:释放信号量
  • SemaphoreP_FAILED:释放信号量失败

SemaphoreP_postFromClock

函数原型

SemaphoreP_Status SemaphoreP_postFromClock   (   SemaphoreP_Handle   handle  )

函数功能

从ClockP函数释放(信号)信号量

函数参数

handle:信号量句柄

函数返回值

函数状态:

  • SemaphoreP_OK:释放信号量
  • SemaphoreP_FAILED:释放信号量失败

SemaphoreP_postFromISR

函数原型

SemaphoreP_Status SemaphoreP_postFromISR (   SemaphoreP_Handle   handle  )

函数功能

从ISR释放信号量

函数参数

handle:信号量句柄

函数返回值

函数状态:

  • SemaphoreP_OK:释放信号量
  • SemaphoreP_FAILED:释放信号量失败

参考文献:

  1. 《mmWave SDK Module Documentation》

Xiaojie雷达之路---TI实战笔记---OSAL layer说明相关推荐

  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雷达之路---Mailbox深挖

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

  9. Xiaojie雷达之路---TDM-MIMO及雷达处理流程仿真

    Hello,大家好,我是Xiaojie,欢迎大家能够和Xiaojie来一起学习毫米波雷达知识,本篇文章主要目的是介绍TDM-MIMO及雷达信号处理流程的仿真.一起来看看吧!!! 前言 在以前简单的仿真 ...

  10. Xiaojie雷达之路再回首---TI文档总结

    Hello,大家好,我是Xiaojie,学习TI的毫米波雷达将近快连两年了,从刚刚开始什么都不懂截止到现在,在学习过程中慢慢摸索前进,摸索的过程是真的很痛苦,这篇文章呢,主要总结一下TI的相关文档,也 ...

最新文章

  1. python的id方法_python中id()函数的实用研究实例
  2. 耗时 3 天,上亿数据如何做到秒级查询?
  3. Linux-/proc目录简介
  4. ELK日志管理之——logstash部署
  5. 遥感RS植被指数大全整理
  6. 程序员面试金典 - 面试题 16.20. T9键盘(数组)
  7. asp.net捕获全局未处理异常的几种方法
  8. python基础 实战作业 ---Excel基本读写与数据处理
  9. 对php程序的理解,小魏谈对于php程序的理解
  10. 202012没有oracle加密,Windows2012远程桌面提示"这可能是由于 CredSSP 加密 Oracle 修正" 修复方法...
  11. 特性Attibute定义和使用
  12. spring-boot配置文件中server.context-path不起作用
  13. linux服务器家目录,linux服务器根目录空间不足
  14. 39份AICon全球人工智能与机器学习技术大会 · 北京站2021(PPT汇总)
  15. 查看华为huawei状态码
  16. 梯度、散度、旋度与麦克斯韦方程组
  17. IPS、VA、TN屏构造和优缺点对比
  18. 木秀于林,不惧风摧「博客出书的故事④」
  19. 杰里之. 输出 3 路 PMW【篇】
  20. Python爬取链家网上的房源信息

热门文章

  1. AR 第一大单,微软 219 亿美元为美军打造高科技头盔
  2. c#IntPtr简例
  3. PostgreSQL的JDBC驱动---jdbc的链接数据库
  4. PHP中如何获取字符串的长度
  5. mysql实现用拼音搜索中文的数据库实现
  6. 随机信号分析基础——基础篇(数字特征)
  7. UG NX 12 对象的隐丽与顺复显示
  8. 手机秒变门禁卡,支持加密卡
  9. 如何对 List集合进行排序
  10. 计算机毕设(附源码)JAVA-SSM基于的网上拍卖系统