硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3907|回复: 21
收起左侧

[DSP视频教程] DSP视频教程第5期:Matlab生成C算法文件在STM32上运行,相比Simulink生成C工程具有更广泛适用性(2022-03-27)

  [复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106422
QQ
发表于 2022-3-27 03:45:57 | 显示全部楼层 |阅读模式
本期视频教程为大家分享Matlab生成C算法文件。与上期的Matlab Simulink不同,这次可以把Matlab的m脚本文件生成的C文件移植到板子上跑。适用性更广,也更适合大家使用。

因为很多时候仅仅是想把某个算法生成C来运行。借助Matlab强劲的算法功能,大大有助于我们实际项目工程使用。

视频(1080p):

https://www.bilibili.com/video/BV1ZS4y1U7Bg/



本期视频教程分为以下几个部分:
第1部分:注意事项
(1)Matlab安装路径问题,切不要有空格。
(2)Matlab的C/C++头文件路径。
(3)Matlab工程路径。

第2部分:Matlab Simulink生成DSP工程。

第3部分:Matlab的m脚本文件生成C代码.
这个里面有好几个坑,这里重点是把坑给大家填一下。
(1)准备一个m脚本文件,type查看是否正常。
(2)m脚本算法文件生成C代码。
(3)移植C代码到工程运行测试。

移植了一个Matlab的滑动平均滤波效果:
image.png

移植到板子上运行效果:
image.png


配套资料:
百度网盘:

链接:https://pan.baidu.com/s/1N2UjvtjxS1-byUQVXhvuTQ  提取码:aoro


评分

参与人数 1金币 +20 收起 理由
missfox + 20

查看全部评分

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106422
QQ
 楼主| 发表于 2022-3-27 06:42:18 | 显示全部楼层
审核有点慢,还在审核中。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106422
QQ
 楼主| 发表于 2022-3-27 10:09:17 | 显示全部楼层
经验总结,B站不推荐周末发视频,审核太慢。
回复

使用道具 举报

23

主题

1403

回帖

1472

积分

至尊会员

积分
1472
发表于 2022-3-28 09:05:34 | 显示全部楼层
辛苦,这个很实用。
代码不规范,亲人两行泪!
回复

使用道具 举报

8

主题

133

回帖

167

积分

初级会员

积分
167
发表于 2022-3-28 12:18:35 | 显示全部楼层
回复

使用道具 举报

3

主题

27

回帖

36

积分

新手上路

积分
36
发表于 2022-3-28 20:59:29 | 显示全部楼层
楼主 matlab打开后中文变乱码了
l输入以下命令
>> feature('locale')

ans =

  包含以下字段的 struct:

               ctype: 'zh_CN.GBK'
             collate: 'zh_CN.GBK'
                time: 'zh_CN.GBK'
             numeric: 'en_US_POSIX.GBK'
            monetary: 'zh_CN.GBK'
            messages: 'zh_CN.GBK'
            encoding: 'GBK'
    terminalEncoding: 'GBK'
         jvmEncoding: 'GBK'
              status: 'MathWorks locale management system initialized.'
             warning: ''
要修改什么
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106422
QQ
 楼主| 发表于 2022-3-29 00:26:26 | 显示全部楼层
panyi1013 发表于 2022-3-28 20:59
楼主 matlab打开后中文变乱码了
l输入以下命令
>> feature('locale')

看下是不是这个问题。

Matlab打开m脚本文件中文乱码的解决办法
https://www.armbbs.cn/forum.php? ... 5063&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

3

主题

27

回帖

36

积分

新手上路

积分
36
发表于 2022-3-29 22:09:14 | 显示全部楼层
eric2013 发表于 2022-3-29 00:26
看下是不是这个问题。

Matlab打开m脚本文件中文乱码的解决办法

感谢回复,确实是这样的,看来我要多试试查找以前贴子才行
回复

使用道具 举报

0

主题

12

回帖

12

积分

新手上路

积分
12
发表于 2022-3-30 11:15:36 来自手机 | 显示全部楼层
生成的算法跟平台相关吗,是否可以移植到M3的内核
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106422
QQ
 楼主| 发表于 2022-3-30 12:02:21 | 显示全部楼层
wei886 发表于 2022-3-30 11:15
生成的算法跟平台相关吗,是否可以移植到M3的内核

无关,纯C的。
回复

使用道具 举报

3

主题

90

回帖

99

积分

初级会员

积分
99
发表于 2022-5-25 09:07:43 | 显示全部楼层
妙啊
回复

使用道具 举报

2

主题

75

回帖

81

积分

初级会员

积分
81
发表于 2022-5-28 11:26:49 | 显示全部楼层

我之前也做过Simulink生成模型在单片机运行。用的h750。
提供底层相关接口后,simulink可以自动把程序编译后部署到硬件,搭配外部AD DA,运行时可以实时调节参数采集数据,特别适合我这边高校做实验。
但也发现了缺点,自带的框架不能生产h745这种多核的处理程序。多核程序目前貌似只有a核心搭配操作系统使用。
还有cmsis-dsp确实能替换生成的函数,但是对于复杂的矩阵运算等,自带的指令集还是不够,需要neon helium
这种加速指令集,这个要等m85的片子出来了。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106422
QQ
 楼主| 发表于 2022-5-29 09:06:03 | 显示全部楼层
eggplant886 发表于 2022-5-28 11:26
我之前也做过Simulink生成模型在单片机运行。用的h750。
提供底层相关接口后,simulink可以自动把程序编 ...

本帖是纯C,没有使用Simulink,  所以任何机子都可以跑,只是快慢的问题。

常用的算法,M7已经非常强了,还用不到上M85。

说到AI,Cortex-A系统也是渣,只能干底端的活,现在好点的都是刷NPU。所以ARM也开始整些神经网络内核搭配M核和A核。
回复

使用道具 举报

23

主题

1403

回帖

1472

积分

至尊会员

积分
1472
发表于 2022-5-30 09:12:29 | 显示全部楼层
下期DSP视频什么时候开,等的花都谢了
代码不规范,亲人两行泪!
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106422
QQ
 楼主| 发表于 2022-5-30 15:45:25 | 显示全部楼层
missfox 发表于 2022-5-30 09:12
下期DSP视频什么时候开,等的花都谢了

本周继续更新。
回复

使用道具 举报

0

主题

7

回帖

7

积分

新手上路

积分
7
发表于 2022-8-22 17:32:12 | 显示全部楼层
楼主您好,请教一下,matlab里面用了矩阵运算,移植到H7需要额外添加矩阵运算的库吗?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106422
QQ
 楼主| 发表于 2022-8-23 10:27:27 | 显示全部楼层
huayang 发表于 2022-8-22 17:32
楼主您好,请教一下,matlab里面用了矩阵运算,移植到H7需要额外添加矩阵运算的库吗?

可以用ARM DSP库的矩阵运算API。
回复

使用道具 举报

73

主题

678

回帖

897

积分

金牌会员

积分
897
发表于 2022-8-23 14:20:00 | 显示全部楼层
eric2013 发表于 2022-8-23 10:27
可以用ARM DSP库的矩阵运算API。

大佬,ARM DSP库带矩阵运算API吗
回复

使用道具 举报

0

主题

7

回帖

7

积分

新手上路

积分
7
发表于 2022-8-23 20:45:15 | 显示全部楼层
eric2013 发表于 2022-8-23 10:27
可以用ARM DSP库的矩阵运算API。

谢谢,程序已经调通了。那个matlab账号登不上是因为移动屏蔽了网址,改用电信网络就可以登陆了。另外用matlab coder APP生成C代码也是一样的效果。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106422
QQ
 楼主| 发表于 2022-8-24 01:27:28 | 显示全部楼层
huayang 发表于 2022-8-23 20:45
谢谢,程序已经调通了。那个matlab账号登不上是因为移动屏蔽了网址,改用电信网络就可以登陆了。另外用ma ...

好的,解决了就好。
回复

使用道具 举报

0

主题

8

回帖

8

积分

新手上路

积分
8
发表于 2024-2-7 16:37:30 | 显示全部楼层
压缩包下载 后,不能正常打开了 20240207
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106422
QQ
 楼主| 发表于 2024-2-13 15:00:34 | 显示全部楼层
pengjun_45 发表于 2024-2-7 16:37
压缩包下载 后,不能正常打开了 20240207

下载解压查看了,是正常的


27.png
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-20 04:11 , Processed in 0.254235 second(s), 33 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表