Xiaojie雷达之路---TI实战笔记---OSAL layer说明
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:释放信号量失败
参考文献:
- 《mmWave SDK Module Documentation》
Xiaojie雷达之路---TI实战笔记---OSAL layer说明相关推荐
- Xiaojie雷达之路---TI实战笔记---MRR_MSS_CLIAdvancedFrameCfg详解
本篇文章主要是对MSS项目中的源文件中mss_pa_cli.c的函数进行MRR_MSS_CLIAdvancedFrameCfg详解 函数源程序如下: static int32_t MRR_MSS_CL ...
- Xiaojie雷达之路---TI实战笔记---MSS代码详细解读
文章目录 前言 基础知识 文章中会用到的专业术语 毫米波雷达的初始化流程(在MSS中) 本案例中要用的其他知识 UART MailBox Semaphore 代码解读 main函数 MRR_MSS_i ...
- Xiaojie雷达之路---TI实战笔记---BPM MIMO
雷达信号和调制波形如下图所示: 第一个是固定载频矩阵脉冲,第二个是线性调频脉冲,第三个是相位编码脉冲 固定载频和线性调频这两种类型的脉冲很常见 本篇文章主要是配置相位编码脉冲 当+时初始相位为0deg ...
- Xiaojie雷达之路---TI实战笔记---ESM Driver说明
ESM驱动提供API来配置和处理来自ESM H/W模块的错误 ESM头文件在应用程序中应该被包含如下: #include <ti/drivers/esm/esm.h> 驱动初始化 ESM驱 ...
- Xiaojie雷达之路---TI实战笔记---对AWR1843+DCA1000采集的数据进行解析
这篇文章主要是介绍对AWR1843和DCA1000采集的数据进行解析 下面两张图要必须看懂,才能进行以后的操作: 图1: 这张图片主要说明的意思是对于每个tx的chirp,每个rx都会接收到 从上面这 ...
- Xiaojie雷达之路---TI实战笔记---CCS调试模式
文章目录 前言 基础知识 毫米波雷达的两种调试模式 mmwave_automotive_toolbox_3_1_0工具箱 开发工具 案例演示 工程导入 工程重新编译 烧录xwr18xx_ccsdebu ...
- Xiaojie雷达之路---TI实战笔记---chirp、profile、frame、advframe
什么是chirp? chirp是雷达发射的一种信号,频率随着时间线性增加,最多可以定义512个chirp,如下图所示: Chirp Timing Parameters: Idle time:上一次ch ...
- Xiaojie雷达之路---Mailbox深挖
Hello,大家好,我是Xiaojie,欢迎大家能够和Xiaojie来一起学习毫米波雷达知识,本片文章主要是对Mailbox通信进行深挖: 有关Mailbox的源码解析已经在<Xiaojie雷达 ...
- Xiaojie雷达之路---TDM-MIMO及雷达处理流程仿真
Hello,大家好,我是Xiaojie,欢迎大家能够和Xiaojie来一起学习毫米波雷达知识,本篇文章主要目的是介绍TDM-MIMO及雷达信号处理流程的仿真.一起来看看吧!!! 前言 在以前简单的仿真 ...
- Xiaojie雷达之路再回首---TI文档总结
Hello,大家好,我是Xiaojie,学习TI的毫米波雷达将近快连两年了,从刚刚开始什么都不懂截止到现在,在学习过程中慢慢摸索前进,摸索的过程是真的很痛苦,这篇文章呢,主要总结一下TI的相关文档,也 ...
最新文章
- python的id方法_python中id()函数的实用研究实例
- 耗时 3 天,上亿数据如何做到秒级查询?
- Linux-/proc目录简介
- ELK日志管理之——logstash部署
- 遥感RS植被指数大全整理
- 程序员面试金典 - 面试题 16.20. T9键盘(数组)
- asp.net捕获全局未处理异常的几种方法
- python基础 实战作业 ---Excel基本读写与数据处理
- 对php程序的理解,小魏谈对于php程序的理解
- 202012没有oracle加密,Windows2012远程桌面提示"这可能是由于 CredSSP 加密 Oracle 修正" 修复方法...
- 特性Attibute定义和使用
- spring-boot配置文件中server.context-path不起作用
- linux服务器家目录,linux服务器根目录空间不足
- 39份AICon全球人工智能与机器学习技术大会 · 北京站2021(PPT汇总)
- 查看华为huawei状态码
- 梯度、散度、旋度与麦克斯韦方程组
- IPS、VA、TN屏构造和优缺点对比
- 木秀于林,不惧风摧「博客出书的故事④」
- 杰里之. 输出 3 路 PMW【篇】
- Python爬取链家网上的房源信息