问题标签 [cmsis]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
arm - 芯片版本更改会破坏 CMSIS 的二进制兼容性吗?
假设以下情况:
- 您为某个制造商的基于 ARM 的微控制器开发了一些东西。
- 您正在使用 CMSIS 来连接硬件(在此架构上是推荐的)。
- 软件最终确定,编译成二进制文件,产品正在发货。
- 五年后,当您想要发布一批新产品时,发现二进制文件在您使用的微控制器的当前可用版本上无法正常工作。
- 使用为 micro 提供的新 CMSIS 重新编译后,它可以工作。
这种情况会发生吗?它曾经发生过吗?
为什么这很重要,因为在某些领域重新编译二进制文件可能不是可接受的解决方案。
据我所知,这种情况似乎是一种可能性,因为 CMSIS 包含接口代码(它不仅仅是一堆头文件,至少在我看来不是,我可能是错的),以及 ARM 的建议关于它似乎只是制造商应该实现它并向开发人员提供这个接口。
到目前为止,我在任何一家 ARM 制造商处都找不到任何关于是否以及如何在芯片版本之间保持二进制兼容性(如果适用)的任何信息。
fft - 无法在 Atollic 中使用 CMSIS 库
我正在尝试在 Atollic TrueStudio 中为我的 STM32 微控制器使用 CFFT 功能。但我无法使用任何 DSP 功能。我收到错误 - 未定义对“arm_cfft_f32”的引用和未定义对“arm_cfft_sR_f32_len16”的引用。我不知道问题是什么,因为它适用于 Keil。我究竟做错了什么?
编辑 - 另外,我收到以下错误 -
arm - 在 STM32F4 上使用 rfft 函数时 FFT 结果错误
我正在尝试在 STM32F407G 中使用 rfft 函数,当我将它与在线 fft 计算器进行比较时,我得到了错误的结果。我给出的样本输入为 {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22 ,23,24,25,26,27,28,29,30,31,32}。我使用在线计算器的结果如下 -
但是使用我的代码的结果完全不同。我得到以下结果 -
这是我的代码 -
问题是什么?我无法弄清楚,所以如果有人可以提供帮助,那就太好了。
embedded - 找不到 lpc1768 特定的 FreeRTOS-Plus 库
我继承了一个基于 lpc1768 的硬件构建的项目。这已多年未使用,最初的开发人员离开了公司。
该项目使用 FreeRTOS、用于 lpc1768 的 CMSIS 库和用于 lpc1786 的 FreeRTOS-Plus 组件。当我们尝试将组件升级到当前版本时遇到了问题。
这对于 FreeRTOS 内核来说是成功的。但是对于 CMSIS 和 FreeRTOS-Plus 源代码,我们遇到了问题,甚至无法确定这些部分的源代码曾经是从哪里下载的。
我们有一组名为 FreeRTOS_lpc17xx_can.c、FreeRTOS_lpc17xx_uart.c、FreeRTOS_lpc17xx_DriverInterface.c 等的源文件。在 Google 中甚至可以找到对某些文件名的引用,但我们未能成功识别这些文件所属的产品。版权标题指向 FreeRTOS 的“实时工程师”,但在他们的网站上,我们没有发现任何 lpc1768。之后,我们检查了这些文件是否可从 NXP 获得,但也没有找到任何东西。
有人可以解释这些文件在哪里可用吗?
我们遇到同样问题的第二组源代码是 CMSIS。同样,我们有很多 CMSIS 源代码(这次带有 ARM 版权标头,但我们无法确定这些文件的提供位置。我们希望它们是 NXP 的 openLpc 库的一部分,但无法找到用于 lpc1768 的 openLpc。
因此同样的问题:谁提供 CMSIS lpc1768 接口,我们在哪里可以下载它们?
gdb - [Atollic Truestudio][STM32] 使用 CMSIS-pack/Components 下载/调试 GDB 时“加载失败”
我正在尝试将 CMSIS-pack 与我的新 F103 项目一起使用。到目前为止,我一直在使用自动生成的项目结构,只是将一些文件移动到其他地方,一切正常。现在使用 CMSIS-pack,虽然代码已成功编译,但在将 .elf 下载到 MCU 时出现“加载失败”错误。我运行自动生成的调试配置,与我之前的所有项目相同。我正在使用 ST-link 和 GDB-server。这是错误:
调试日志:
任何想法为什么它不能下载代码,而相同的配置适用于我所有没有组件/CMSIS 包的项目?
问候,帕特里克
eclipse - 如何为 Eclipse 安装 CMSIS 包?
我想安装Keil提供的 CMSIS 包。该页面说从 Eclipse 的帮助菜单下载源代码并安装。但是当我选择文件夹时,它显示错误“找不到文件'jar:file:/path/cmsis-pack-eclipse-master'”。来人帮帮我。我正在使用 Windows 10。
c - 如何创建已知最大大小的结构
编辑:我现在意识到我在数组和指针之间造成的混淆。我很欣赏这些评论,但不会使问题更准确,因为它会失去我写它的部分原因。
我正在尝试初始化一个由每个包含一个数组的结构组成的结构。更清楚的是,我有这个矩阵结构:
我需要将这些矩阵对象的数量放在一个更大的结构中
作为参考,这个矩阵定义和后面使用的初始化函数,来自CMSISarm_math
中的库。
我很难理解我应该如何创建一个dataset
变量。按照这个问题页面中的答案和讨论,我知道我不能神奇地期望 C 知道要分配多少内存,例如dataset d
.
只遵循链接问题的解决方案,我想出了一个函数来为 a 初始化足够的空间dataset
,并用一个函数来创建一个类型的变量dataset
。我现在有这样的东西:
基本上,我假设矩阵的数量和它们包含的最大元素数量都是已知的,因此会保留足够的内存。
我有以下问题:
- 对于这种嵌套结构,整体方法是否正确?
- 结构的空间分配是否
dataset
正确? - 我是否真的确保我创建
arm_matrix_instance_f32
的结构中包含的所有元素dataset
都有足够的空间容纳它们的所有元素? - 我将结构声明为包含
A, B, C
. 如果我以另一个顺序初始化它们会发生什么?例如,结构如何知道之间留有多少空间A
以及C
是否B
仍未声明?
arm - CMSIS DSP 返回硬故障 (Cortex M0)
我正在尝试调试此代码并确定在调用 fft 方法时导致硬故障的原因。程序通过中断从 ADC 读取数据,每 128 个周期计算前一组周期的 FFT。
我已经指出了导致故障的线路。谁能确定我做错了什么?
arm - Keil microVision“无法下载文件...无法写入目标文件”
尝试下载 ARM::CMSIS-RTOS 包时,我的鼠标悬停在上面,底部出现红色错误(“无法下载文件http://www.keil.com/pack/ARM.CMSIS-RTOS_Validation.1.1 .0.pack:无法写入目标文件”)。该项目保存在我可以完全访问的文件中 - 我找到的唯一答案是为什么会发生这种情况。
任何帮助将不胜感激。先感谢您。
c - 将窗口应用于音频样本会拧紧输出
使用 arm_mult_f32 将两个数组相乘会产生意外(垃圾)结果。
我一直在阅读有关dsp的信息。在 FFT 之前,我正在创建 Hann 系数以应用于采样的 PCM 数据。
hanning 函数来自我发现的 hann.m matlab 示例,唯一的区别是 stm32f4 只有一个单精度 FPU,所以我将 uint32_t 用于数据字段而不是双精度。
首先,定义。
调用 hanning 函数来填充窗口。
hann函数如下
没有窗口函数我得到了很好的值,我用 4khz 正弦波测试了代码,它给出了正确的结果(没有 hann 窗口的东西)
新输出的样本看起来不太好。
根据建议,删除了动态分配。新的输出看起来很漂亮,而且很有意义。接下来将规范化输入,并继续我的旅程。