반응형
아래 테스트는 STM32CubeIDE 1.6.1/STM32Cube_FW_F7_V1.16.1를 사용하여 테스트 되었습니다.
STM32F746NG에는 RNG(Random number generator)가 들어가 있습니다.
RNG 디바이스는 아날로그 노이즈에 기반한 32bit 랜덤값을 생성해 주는 장치로 데이터시트에 따르면 FIPS PUB 140-2 (2001 October 10) 테스트를 99% 성공률로 패스했다고 적혀있습니다.
[참고] FIPS 140-2란? FIPS(Federal Information Processing Standard: 연방 정보 처리 표준) PUB 140-2는 암호화 모듈의 유효성을 검사하는데 사용되는 미국 정부 컴퓨터 보안 표준입니다. NIST에 의해 수립된 FIPS 140-2는 FISMA(연방 정보 보안 관리법)에 의해 미국과 캐나다 정부 조달의 필수 인증요소로 지정되었습니다. |
RNG 블럭을 테스트해 보기 위해 STM32CubeIDE에서 새 프로젝 생성하여 핀 초기화 후 RNG/SYS/USART1만 설정하였습니다. 다른 부분의 설정은 이전 게시글과 같으며 단지 RNG 설정에서 Activated만 체크를 해 주었습니다.
RNG의 사용법은 stm32f7xx_hal_rng.c 파일에서 찾을 수 있었습니다.
/* USER CODE BEGIN 2 */
HAL_StatusTypeDef status;
uint32_t test_num = 1;
uint32_t random_num = 0;
printf("*** RNG Test ***\r\n");
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
status = HAL_RNG_GenerateRandomNumber(&hrng, &random_num);
if(status == HAL_OK){
printf("[%3d] RN: 0x%08X\r\n", test_num++, (unsigned int)random_num);
}else {
printf("[ERROR] HAL_RNG_GenerateRandomNumber(%d)\r\n", status);
}
HAL_Delay(10);
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
총 3회에 걸쳐 테스트를 해봤는데 매번 다른 랜던값을 잘 생성하고 있는 것으로 보입니다.
반응형
'Hardware > STM32' 카테고리의 다른 글
[STM32F746G-DISCO] STM32Cube Log Utilities Driver 사용하기 (0) | 2024.07.11 |
---|---|
[STM32F746G-DISCO] SDMMC 사용하기(feat. FATFS) (0) | 2024.07.10 |
[STM32F746G-DISCO] Timer PWM 사용하기 (0) | 2024.07.09 |
[STM32F746G-DISCO] Timer 사용하기 (0) | 2024.07.09 |
[STM32F746G-DISCO] LTDC 사용하기 (0) | 2024.07.09 |
댓글