STM32 팁

ST-Link Utility External Loader 예제 소스 컴파일 시 Unknown Device문제.

plainy 0 3,781 2017.09.18 17:59

ST-Link Utility는 External Loader를 사용하여 STM32의 내부 Flash가 아닌 외부에 연결된 Flash에 Data를 writing할 수 있습니다.

ST-Link Utility에는 ST에서 출시된 Discovery board와 Evaluation board에 맞게 제작된 External Loader가 포함되어 있습니다.

 

b9a6e58d781afee0a9b50f29b01a8e4b_1505724632_7891.png 

 

 

ST에서 출시된 보드외에 사용자가 제작한 보드에 맞춰 External Loader를 개발할 수 있도록 Source Code도 제공하고 있습니다.

소스 중 Cube용으로 제작된 N25Q256A_STM32L476G-EVAL_Cube를 Compile하여 External Loader에서 열어보면 아래와 같이 Unknown Device로 나타나는 경우가 있습니다.

b9a6e58d781afee0a9b50f29b01a8e4b_1505724758_7817.png

 

정상적인 경우는 아래와 같이 Device Name과 Device Type, Start Address, Device Size등이 표시되어야 합니다.

b9a6e58d781afee0a9b50f29b01a8e4b_1505724784_5711.png

위 문제는 IAR EWARM 컴파일러 7.70 이상을 사용하였을 경우 나타납니다. 7.60이하(7.50, 7.40등등..)를 사용하였을 때는 정상적으로 표시됩니다.

 

IAR EWARM 7.60의 경우 Compile된 out(ELF)파일이 아래와 같이 2개의 Section으로 분리되나 7.70이상에서는 1개의 Section으로 compile되어 ST-Link Utility에서 Device정보를 확인하지 못하는 문제입니다.

 

 

IAR EWARM 7.60의 MAP파일

 

b9a6e58d781afee0a9b50f29b01a8e4b_1505724996_4483.png

 

IAR EWARM 7.70의 MAP파일
b9a6e58d781afee0a9b50f29b01a8e4b_1505724998_744.png
 

 

위 문제를 해결하기 위해서는 icf파일을 아래와 같이 수정하여 1개의 Section이 분리되도록 하여야 합니다.

 

b9a6e58d781afee0a9b50f29b01a8e4b_1505725077_1068.png
 

icf파일 변경 후 2개의 Section으로 분리됨

b9a6e58d781afee0a9b50f29b01a8e4b_1505725126_607.png
 

 

위와 같이 Section을 분리한 후 out(ELF)파일을 External loader로 사용하면 정상적으로 Device정보가 표시됩니다.

b9a6e58d781afee0a9b50f29b01a8e4b_1505725181_9608.png
 

Comments