当前位置:网站首页>【调试记录1】提高MC3172浮点运算能力,IQmath库的获取与导入使用教程
【调试记录1】提高MC3172浮点运算能力,IQmath库的获取与导入使用教程
2022-08-11 05:24:00 【McuBoy~C】
在MC3172使用IQmath数学库,提高浮点运算能力
【调试记录1】提高MC3172浮点运算能力,IQmath库的获取与导入使用教程
背景:
TI针对没有浮点运算器的定点DSP推出了IQmath库,在使用Q格式对数据进行分析和处理的过程中,十分方便,代码也变得更加简洁。
而在RISC-V架构的也有人实现或者一致了IQmath库。本文目的在于获取RISC架构的IQmath库,并在MC3172 MCU芯片上导入与使用。
MC3172芯片是感芯科技公司新推出的一款单核多线程的MC3172芯片。点击进入官网链接
工程模板准备
打开官方网站,前往以下链接:
在Gitee下载【工程模板文件】并解压工程模板,得到如下文件:
安装 MounRiver Studio
一路Next即可。
IQmath库的获取
打开工程文件:

导出后,解压得到两个文件:.a 和.h文件
IQmath库的导入

这里新建两个文件夹,include放.h文件,lib放.a文件,直接如下拖进来,选择复制方式。
对.a文件进行配置:




配置好后,如下:
在项目中使用
打开main.c引入头文件:
打开头文件,可以见到有许多中文注释,并介绍了函数的作用,如下:
IQmath库的使用与测试
详细的使用介绍,见文末提供的资料文件。
在这里,通过计算三角函数sin,cos进行性能速度对比,通过计算同样次数的三角函数,并且进行IO电平反转,通过一个LED灯或者直接测量IO输出的频率,即可对比库函数的浮点计算与Q格式计算速度。
IO控制实现:
led.c文件
在这里插入代码片#include "../include/led.h"
void Led_Init(u32 gpio_sel,u32 gpio_pin)
{
INTDEV_SET_CLK_RST(gpio_sel,(INTDEV_RUN|INTDEV_IS_GROUP0|INTDEV_CLK_IS_CORECLK_DIV2));
GPIO_SET_OUTPUT_EN_VALUE(gpio_sel,(gpio_pin),GPIO_SET_ENABLE);
LED_OFF(gpio_sel,(gpio_pin));
}
/* * led.h * * Created on: 2022年7月31日 * Author: 四维度 */
#ifndef USER_CODE_LED_H_
#define USER_CODE_LED_H_
#include "../MC3172/MC3172.h"
#define LED_ON(gpio_sel,gpio_pin) GPIO_SET_OUTPUT_PIN_TO_0(gpio_sel,gpio_pin);
#define LED_OFF(gpio_sel,gpio_pin) GPIO_SET_OUTPUT_PIN_TO_1(gpio_sel,gpio_pin);
void Led_Init(u32 gpio_sel,u32 gpio_pin);
#define LED0_ADDR GPIOA_BASE_ADDR
#define LED0_Pin GPIO_PIN6
#define LED0_Init() Led_Init(LED0_ADDR,LED0_Pin)
#define LED0_ON LED_ON(LED0_ADDR,LED0_Pin)
#define LED0_OFF LED_OFF(LED0_ADDR,LED0_Pin)
#endif /* USER_CODE_LED_H_ */
文件路劲如下:
在main添加头文件,准备调用:
先对IQmath测试:
void thread0_main(void)
{
u32 i,j,k;
_iq s,c;
LED0_Init();
while(1){
LED0_ON
for (i = 0; i < 2000; ++i){
for (j = 0; j < 2000; ++j){
for (k = 0; k < 2000; ++k){
c=_IQcosPU(_IQ(3.1415926));
s=_IQsinPU(_IQ(3.1415926));
}
}
}
LED0_OFF
for (i = 0; i < 2000; ++i){
for (j = 0; j < 2000; ++j){
for (k = 0; k < 2000; ++k){
c=_IQcosPU(_IQ(3.1415926));
s=_IQsinPU(_IQ(3.1415926));
}
}
}
}
thread_end();
}
再对math库函数测试:
void thread0_main(void)
{
u32 i,j,k;
float s,c;
LED0_Init();
while(1){
LED0_ON
for (i = 0; i < 2000; ++i){
for (j = 0; j < 2000; ++j){
for (k = 0; k < 2000; ++k){
c=cos(_IQ(3.1415926));
s=sin(_IQ(3.1415926));
}
}
}
LED0_OFF
for (i = 0; i < 2000; ++i){
for (j = 0; j < 2000; ++j){
for (k = 0; k < 2000; ++k){
{
c=cos(_IQ(3.1415926));
s=sin(_IQ(3.1415926));
}
}
}
}
}
thread_end();
}
两次测试程序分别下载到开发板,通过IO口PA6接上LED或者示波器即可观察到对比:
本文到这里结束,测试过程文件以及IQmath手册文末下载,感谢您的观看。
https://gitee.com/Jim-Chenming/mc3172/tree/master/
点击跳转
边栏推荐
- Safety helmet identification system - escort for safe production
- 2022年最新安全帽佩戴识别系统
- 动画(其二)
- Use regex to verify whether the file name is legal
- GBase 8a技术特性-集群架构
- SCNet:Semantic Consistency Networks for 3D Object Detection
- GBase 8s存储结构简介及空间管理
- 目标检测思维导图
- Severe Weather 3D Object Detection Dataset Collection
- Realize data exchange between kernel and userspace through character device virtual file system (passed based on kernel 5.8 test)
猜你喜欢

OpenPCDet安装最新版:spconv一步到位

SCNet:Semantic Consistency Networks for 3D Object Detection

Redis哨兵模式

GBase 8a MPP Cluster产品高级特性

Node-3.构建Web应用(二)

微信小程序部分功能细节

梅科尔工作室-HarmonyOS应用开发第一次培训

更新GreenDAO实体类导致的编译错误

CVPR2020: Seeing Through Fog Without Seeing Fog

Zhejiang University School of Software 2020 Guarantee Research Computer Real Question Practice
随机推荐
Maykel Studio - Django Web Application Framework + MySQL Database Second Training
GBase 8s的多线程结构
Zhejiang University School of Software 2020 Guarantee Research Computer Real Question Practice
第七届集美大学程序设计竞赛(个人赛)题解
用正则验证文件名是否合法
关于安全帽识别系统,你需要知道的选择要点
梅科尔工作室-Pr第一次培训笔记(安装及项目创建)
The selection points you need to know about the helmet identification system
Redis哨兵模式
Realize data exchange between kernel and userspace through character device virtual file system (passed based on kernel 5.8 test)
微信小程序-腾讯云即时通信 IM 小程序直播(一)
架构设计杂谈
SCNet:Semantic Consistency Networks for 3D Object Detection
GBase 8s的分片和索引
目标检测学习目录(持续更新)
Solutions to the 7th Jimei University Programming Contest (Individual Contest)
内核与用户空间通过字符设备通信
Maykle Studio - HarmonyOS Application Development Fourth Training
mAPH - Waymo dataset
Toolbar 和 DrawerLayout 滑动菜单