1,使用hwcrypto 需要使用env 工具配置该选项,这里使用的是SHA1
2,scons --target=mdk5后可以看到驱动已经配置,但是要想使用,对于stm32f4,还需要在cubemx里面打开添加编译选项
然后重新生成代码。可以看到相应代码已经生成
3,还需在board\Kconfig文件中添加编译选项
config BSP_USING_HASH
bool "Enable use hash arithmetic"
select BSP_USING_HASH
default n
4,然后发现相关定义还是无法加载进来,需要做如下配置
首先,需要在stm32f4xx_hal_conf.h文件中打开编译选项
#define HAL_HASH_MODULE_ENABLED
然后libraries\STM32F4xx_HAL\SConscript文件,加入如下内容
import rtconfig
from building import *
# get current directory
cwd = GetCurrentDir()
# The set of source files associated with this SConscript file.
src = Split('''
CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.c
STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c
STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cec.c
STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c
STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_crc.c
STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cryp.c
STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cryp_ex.c
STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_hash.c
STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_hash_ex.c
STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c
STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c
STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c
STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c
STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c
STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c
STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c
STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c
''')
... ...
path = [cwd + '/STM32F4xx_HAL_Driver/Inc',
cwd + '/CMSIS/Device/ST/STM32F4xx/Include',
cwd + '/CMSIS/Include']
CPPDEFINES = ['USE_HAL_DRIVER','HASH']
group = DefineGroup('Libraries', src, depend = [''], CPPPATH = path, CPPDEFINES = CPPDEFINES)
Return('group')
4,完成修改后,重新scons --target=mdk5,这时会在MDK环境的Options for ...C++选项卡里多出了一项HASH定义
5,重新编译:
经搜索得知
用CubeMX生成STM32F417VGT6的配置,
生成工程后打开文件
原来问题出在这里,我板子MCU是STM32F407VGT6硬件HASH库不支持407系列的,415、417、437、439、479可以。