【问题标题】:Build and run library on a Cortex M3 using KEIL uVision IDE使用 KEIL uVision IDE 在 Cortex M3 上构建和运行库
【发布时间】:2015-05-25 16:22:49
【问题描述】:

我想在使用 Keil uVision IDE 的 ARM cortex M3 微控制器上使用 Crypto++ 库。

如何使用 KEIL uVision IDE 在 Cortex M3 上构建和运行库

【问题讨论】:

  • 您为什么不尝试一下,然后询问您遇到的任何问题?否则,由于它是投机性的,这将吸引反对票或关闭。
  • 因为我不知道从哪里开始。否则我会自己做的
  • 对所提问题的回答可能是“是”,但也可能是“否”。无论哪种方式,它都说明了它是多么有用。根本原因可能是“如何将外部项目导入 uVision?”。到“如何解决 为 Cortex-M 构建 Crypto++?”到“MHz Cortex-M3 的速度是否足以运行 ?”,所以我们不知道哪个特定的专业领域是相关的。一个具体的问题是可以回答的; Stack Overflow 的目的不是仅仅希望吸引知识渊博的人参与对话的模糊引导性问题。
  • @user1204481 : 当然可以,但是你尝试一下也不是没有道理的。首先在 uVision 中创建一个通用的 Cortex-M3 库项目并将源代码添加到其中。尝试构建它,看看会发生什么 - 解决问题,如果遇到困难,请提出具体问题。可能值得查看 GCC 构建 makefile 以了解构建是否有什么特别之处。
  • @user1204481 - 你用的是什么板子?我想拿一个来测试。我还需要在 Crypto++ 的 ARM Embedded (Bare Metal) 添加运行测试套件的示例

标签: arm embedded crypto++ cortex-m3


【解决方案1】:

我想在使用 Keil uVision IDE 的 ARM cortex M3 微控制器上使用 Crypto++ 库。

Crypto++ 有一个关于平台交叉编译的 wiki 页面。请参阅 Crypto++ wiki 上的 ARM Embedded (Bare Metal)。它使用 ARM/Terry Guo 的交叉编译器,因此它具有最新的处理器支持。

对于 Cortex M3,您需要将 -mthumb -mcpu=cortex-m3-mthumb -march=armv7-m 添加到 CXXFLAGS。您还需要链接到armv7-m multilib。 (我不确定使用的是哪个 C++ 运行时)。

Crypto++ wiki 上还有 ARM Embedded (Command Line)。但它使用了 Debian 的交叉工具,有时它们还有很多不足之处。

很遗憾,我对Keil uVision IDE一无所知,所以不知道痛点在哪里。


如何构建和运行库

要构建库,请运行 make static dynamic cryptest.exe

构建库后,您需要在板上安装cryptest.exe除了TestVectorsTestData 中的测试向量和数据。

您必须维护目录结构,因为测试数据和向量的路径是硬编码的。一旦板子被这样加载:

+ Filesystem
|
+ --- cryptest.exe
|
+ --- TestData/
|
+ --- TestVectors/
|
...

然后您只需运行 ./cryptest.exe v 即可执行测试。

但是在 10 MHz 到 150 MHz 左右,Cortex M3 将会非常痛苦 :) 更不用说 3.5 MB 二进制文件在资源受限的板上的内存压力......

您可以使用DataDir Patch 修复硬编码路径。它由社区提供,但我认为它应该是图书馆的一部分。它会给我认识的每个发行版维护者带来麻烦。


有人试过吗?

可能,但我不知道。如果你得到结果,那么请回来报告。我缺乏一个示范平台,所以我无法将典型结果添加到 wiki 页面。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-07
    • 2015-07-05
    • 1970-01-01
    • 2011-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-03
    相关资源
    最近更新 更多