在 PSoC4 中使用 TSQR 最小二乘拟合

公告

大中华汽车电子生态圈社区并入开发者社区- 更多资讯点击此

Tip / 登入 to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Translation_Bot
Community Manager
Community Manager
Community Manager

我需要将一个椭球体拟合到一组 4 维度的数据上。 经过大量调查,我决定在 GNU 科学图书馆 (G SL) 中使用 TSQR 方法

我使用 Cygwin 外壳编写了一个测试程序。 结果是准确的,并且仅使用其他方法的一小部分资源。 (在寻找解决方案时,TSQR 并不要求所有数据点都保留在 SRAM 中。 除非它也具有此功能,否则请不要建议其他方法。)

我现在想将代码移植到我的 PSoc4 上。 如何在 PSoC Creator 中安装 GSL 库? 我在其他论坛帖子中看到过提及 GSL 的内容,但没有关于如何安装它的说明。

提前谢谢你。

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/PSoC-4/Using-TSQR-least-squares-fitting-within-PSoC4/td-p/648941

0 点赞
1 解答
Translation_Bot
Community Manager
Community Manager
Community Manager

[帖子已编辑]

这个答案是通过与英飞凌工程师的Zoom通话获得的:

  1. 从 GNU 网站下载该库。 这不能作为 " libgsla 使用 " 该文件是知识库中建议的方法所必需的,因此完全忽略该方法。 该库以.tar.gz 文件的形式出现,其中包含所有 C 代码和标头。
  2. 下载 7Zip 以访问压缩文件。
  3. 确定所需的特定代码和头文件。
  4. 在 PSoC Creator 中,右键单击项目,单击 “添加”,单击 “新建文件夹”。 给它起一个像 " library " _code 这样的名字。
  5. [已编辑] 右键单击新文件夹,然后选择 “添加/现有项目”。 这将带你进入一个类似 Windows 资源管理器的视图。选择所有要添加到项目中的代码文件(如果有多个文件,请按住 Ctrl 单击)。 单击 “打开”,文件将出现在新文件夹中。
  6. 对所有必需的头文件重复步骤 4 和 5。 (创建并填充一个名为 " library_headers " 的文件夹)
  7. PSoC Creator 在构建项目时将能够访问这些文件。

 

我希望这可以帮助其他人。 回想起来,这似乎很简单。

[已编辑] 能够向工程师发送电子邮件并获得实际可行的解决方案真是太好了。 我非常感谢英飞凌工程团队的支持和知识。 令人沮丧的是,需要这样的互动。 我发现 Cypress 文档通常是零碎的、不足的,或者是彻头彻尾的误导性;这个库无法通过链接器设置添加,所以知识库中的信息是错误的。 当然,添加标准 GNU 库的需求并不少见,但是,即使在英飞凌内部,也没有就如何做到这一点达成协议。 我在公司内部的联系人说他问了三位软件大师,他得到了三个正确(但都不同)的答案。 这是最简单的。

 

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/PSoC-4/Using-TSQR-least-squares-fitting-within-PSoC4/m-p/649940

在原帖中查看解决方案

0 点赞
5 回复数
Translation_Bot
Community Manager
Community Manager
Community Manager

@ZiSh_3434191

 

https://community.infineon.com/t5/Knowledge-Base-Articles/Adding-a-Library-File-to-PSoC-Creator-Proj...

这可能会对你有所帮助。 如果你还面临这个问题,请告诉我...

 

问候,

罗汉

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/PSoC-4/Using-TSQR-least-squares-fitting-within-PSoC4/m-p/649471

0 点赞
Translation_Bot
Community Manager
Community Manager
Community Manager

谢谢 @Rohan136。 在发布我的问题之前,我确实看过这份文档。 也许我考虑得太多了,但我有两个问题没有在文件中得到解决。

  1. 哪个 a. 建议文件与 PSoC Creator 兼容?
  2. 一旦我有了正确的 a 文件,我应该把它们放在哪里?

当我尝试在链接器"中"加入 gsl 时,我收到错误消息 B " uild 错误:找不到-lgsl。" 经过一番挖掘,我在这里找到了适用于 Windows 机器的 GSL 库,但有五种不同的版本可供选择。 显然,PSoC Creator对GCC的实现会更喜欢某个版本。 哪一个? 赛普拉斯应该提供一些指导,但事实并非如此。

一旦我有了正确的 a 文件(我需要 GSL 和 CBLAS),我不知道该把它们放在哪里。GNU 网站上的安装文档说要把库文件放在 /usr/local/lib 中,这是针对 Linux 系统的。当然,PSoC Creator 在 Windows 环境中运行,因此这些说明不起作用。

您发送的知识库文档说我们可以将文件放在任何地方。 将它们放在预期的位置是一种很好的做法。 我认为"通常的"位置会在 GCC 库文件夹中,在较大的 GCC 文件夹结构中的某个地方。 但我找不到 PSoC Creator 正在使用的 GCC 安装程序。 只要浏览一下文件夹,我就找到了 C:\Program Files (x86)\ Cypress\ pSoC Creator\ 4.4\ pSoC 创作者\ lib\ CortexM3\ ARM_GCC_541\ Debug。 这是放置其他 a 的正确位置吗 文件? 再说一遍,我希望赛普拉斯能更好地解释这一点。

谢谢你的帮助。 也许需要一篇关于添加 GCC 库的教程。

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/PSoC-4/Using-TSQR-least-squares-fitting-within-PSoC4/m-p/649619

0 点赞
Translation_Bot
Community Manager
Community Manager
Community Manager

这里还有另外三个 Windows 实现。 也许其中一个会起作用? 但这是面向 R 开发者的 GitHub,而不是 GCC 库的官方来源。 我对使用来自这样来源的代码犹豫不决。

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/PSoC-4/Using-TSQR-least-squares-fitting-within-PSoC4/m-p/649623

0 点赞
Translation_Bot
Community Manager
Community Manager
Community Manager

[帖子已编辑]

这个答案是通过与英飞凌工程师的Zoom通话获得的:

  1. 从 GNU 网站下载该库。 这不能作为 " libgsla 使用 " 该文件是知识库中建议的方法所必需的,因此完全忽略该方法。 该库以.tar.gz 文件的形式出现,其中包含所有 C 代码和标头。
  2. 下载 7Zip 以访问压缩文件。
  3. 确定所需的特定代码和头文件。
  4. 在 PSoC Creator 中,右键单击项目,单击 “添加”,单击 “新建文件夹”。 给它起一个像 " library " _code 这样的名字。
  5. [已编辑] 右键单击新文件夹,然后选择 “添加/现有项目”。 这将带你进入一个类似 Windows 资源管理器的视图。选择所有要添加到项目中的代码文件(如果有多个文件,请按住 Ctrl 单击)。 单击 “打开”,文件将出现在新文件夹中。
  6. 对所有必需的头文件重复步骤 4 和 5。 (创建并填充一个名为 " library_headers " 的文件夹)
  7. PSoC Creator 在构建项目时将能够访问这些文件。

 

我希望这可以帮助其他人。 回想起来,这似乎很简单。

[已编辑] 能够向工程师发送电子邮件并获得实际可行的解决方案真是太好了。 我非常感谢英飞凌工程团队的支持和知识。 令人沮丧的是,需要这样的互动。 我发现 Cypress 文档通常是零碎的、不足的,或者是彻头彻尾的误导性;这个库无法通过链接器设置添加,所以知识库中的信息是错误的。 当然,添加标准 GNU 库的需求并不少见,但是,即使在英飞凌内部,也没有就如何做到这一点达成协议。 我在公司内部的联系人说他问了三位软件大师,他得到了三个正确(但都不同)的答案。 这是最简单的。

 

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/PSoC-4/Using-TSQR-least-squares-fitting-within-PSoC4/m-p/649940

0 点赞
Translation_Bot
Community Manager
Community Manager
Community Manager

对于使用最小的 ARM 芯片来运行 4 维数据拟合任务,应该持现实态度。 这通常是一项 RPi 任务。 我建议先进行一些测试,以了解完成任务所需的操作数量。

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/PSoC-4/Using-TSQR-least-squares-fitting-within-PSoC4/m-p/650066

0 点赞