在RTOS环境中基于ARM Cortex M4的STM32F4控制器构建OpenSSL库

Jin*_*inu 3 openssl arm keil cmsis stm32f4

我正在研究在STM32F407微控制器(基于ARM Cortex M4)上开发支持openSSL-FIPS的嵌入式蓝牙应用的可行性.该应用程序不能在Linux,Windows或andriod等通用操作系统上运行,但它可以在CMSIS-RTX RTOS上运行.我在Windows中使用Keil作为开发环境,内置armc编译器(armcc)进行编译.

在我的分析过程中,我找到了OpenSSL wiki,它解释了如何构建和安装openSSL库:编译和安装.在页面中虽然有一个用于ARM平台编译的部分,但没有关于如何进行编译的描述.

我还讨论了关于在ARM中交叉编译openSSL的stackoverflow中的一些讨论.但所有这些讨论都基于ARM + Linux,而且没有一个是在RTOS上.

我在使用ARM编译时也经历了以下链接

但这里指定的编译器是GCC.

  1. 是否有可用于上述平台的库?

  2. 是否可以使用RTOS将openSSL移植到ARM Cortex M4平台?更具体的是可以使用CMSIS RTX将其移植到STM32F407吗?

  3. 如果有可能,我应该从哪里开始,它有多复杂?

  4. 如果我在GCC编译器中编译openSSL库并在armc编译的应用程序中使用它会工作吗?(我有一种感觉,它不会)

  5. 我可以在嵌入式软件中使用哪些其他SSL库?(我听说WolfSSL可能是一个选择)

Kal*_*leb 6

  1. 是的,有一个图书馆

  2. 如果设备有足够的闪存来适应已编译的二进制文件,则可以将openSSL移植到ARM cortex m4

    • OpenSSL是一个非常大的库openssl-too-big 800K在发布模式下.这通常不适合任何STM32F4,更不用说为您自己的应用留出空间.STM32F-数据表
  3. 您将首先在Windows中编译OpenSSL并检查占用空间大小.执行此步骤并确认它不适合您设备上的可用闪存应该不复杂.

  4. 它可能无法正常工作,因为它不适合设备.再次归结为一个尺寸问题,而不是"它会起作用",但"它会适合".

  5. 其他SSL库: