download_bootloader - withrobot/myCortex-STM32F4 GitHub Wiki

myCortex-STM32F4 λ³΄λ“œμ— μ‚¬μš©λœ STM32F4 MCUμ—λŠ” λ‚΄μž₯ ROM μ˜μ—­μ— λΆ€νŠΈλ‘œλ”κ°€ λ‚΄μž₯λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. 이 λΆ€νŠΈλ‘œλ”λŠ” UART, I2C, SPI, CAN 등을 톡해 μ‚¬μš©μž νŽŒμ›¨μ–΄ 이미지λ₯Ό Flash λ©”λͺ¨λ¦¬ μ˜μ—­μ— λ‹€μš΄λ‘œλ”© ν•  수 μžˆλ„λ‘ ν•΄ μ€λ‹ˆλ‹€. μ—¬λŸ¬κ°€μ§€ μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ‚¬μš©ν•  수 μžˆμ§€λ§Œ UARTλ₯Ό μ œμ™Έν•œ λ‚˜λ¨Έμ§€λŠ” λ³„λ„μ˜ μž₯μΉ˜λ‚˜ 회둜, λ‹€μš°λ‘œλ”© ν”„λ‘œκ·Έλž¨μ΄ ν•„μš”ν•œ 관계λ₯Ό κ°„λ‹¨ν•˜κ²Œ μ‚¬μš©ν•  μˆ˜λŠ” μ—†μŠ΅λ‹ˆλ‹€. λ³Έ μ˜ˆμ œμ—μ„œλŠ” UARTλ₯Ό ν†΅ν•œ μ‹œλ¦¬μ–Ό λΆ€νŠΈλ‘œλ” μ‚¬μš©λ²•μ„ μ„€λͺ…ν•΄λ“œλ¦½λ‹ˆλ‹€. λͺ¨λ“  μ˜ˆμ œλŠ” μ‹œλ¦¬μ–Ό λΆ€νŠΈλ‘œλ”λ₯Ό ν†΅ν•΄μ„œ λ‹€μš΄λ‘œλ”© ν•  수 μžˆμœΌλ―€λ‘œ JTAG μž₯μΉ˜κ°€ 없더라도 개발이 κ°€λŠ₯ν•©λ‹ˆλ‹€.

ν•˜λ“œμ›¨μ–΄

STM32F4 λ‚΄μž₯ μ‹œλ¦¬μ–Ό λΆ€νŠΈλ‘œλ”λ₯Ό μ‚¬μš©ν•˜λ €λ©΄ BOOT0, BOOT1 핀에 μ μ ˆν•œ 값을 μΈκ°€ν•œ μƒνƒœμ—μ„œ 리셋해야 ν•©λ‹ˆλ‹€. myCortex-STM32F4 λ³΄λ“œμ—μ„œλŠ” λΆ€νŠΈ μŠ€μœ„μΉ˜(SW1)와 리셋 μŠ€μœ„μΉ˜(SW2)λ₯Ό νƒ‘μž¬ν•˜μ—¬ μ‹œλ¦¬μ–Ό λΆ€νŠΈλ‘œλ”λ₯Ό κ°„λ‹¨ν•˜κ²Œ μ‚¬μš©ν•  수 μžˆλ„λ‘ ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

μ‹œλ¦¬μ–Ό λΆ€νŠΈλ‘œλ”λ₯Ό κΈ°λ™ν•˜κΈ° μœ„ν•΄μ„œλŠ” SW1을 λˆ„λ₯Έ μƒνƒœμ—μ„œ SW2λ₯Ό λˆŒλ €λ‹€κ°€ λ•Œλ©΄ λ©λ‹ˆλ‹€. μ΄ν›„μ—λŠ” SW1을 λ•Œλ©΄ λ©λ‹ˆλ‹€. μ΄λ ‡κ²Œ ν•˜λ©΄ MCUλŠ” λΆ€νŠΈλ‘œλ” μƒνƒœλ‘œ λ™μž‘ν•˜λ©° UARTλ₯Ό 톡해 νŽŒμ›¨μ–΄ 이미지가 λ‹€μš΄λ‘œλ“œ 되기λ₯Ό κΈ°λ‹€λ¦½λ‹ˆλ‹€.

PC와 myCortex-STM32F4 λ³΄λ“œλ₯Ό UART둜 μ—°κ²°ν•˜κΈ° μœ„ν•΄μ„œλŠ” myUSB2UART와 같은 μž₯μΉ˜κ°€ ν•„μš”ν•©λ‹ˆλ‹€. myUSB2UARTλŠ” PC의 USB 포트λ₯Ό μ‚¬μš©ν•˜μ—¬ TTL 레벨의 UART μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ œκ³΅ν•˜λŠ” μž₯μΉ˜μž…λ‹ˆλ‹€. myUSB2UART의 4ν•€ 컀λ„₯ν„°λ₯Ό myCortex-STM32F4의 4ν•€ UART 컀λ„₯ν„°(J4)에 μ—°κ²°ν•˜λ©΄ λ©λ‹ˆλ‹€.

UART μ—°κ²°

참고둜 myUSB2UARTλ₯Ό μ‚¬μš©ν•˜λ©΄ UART μ—°κ²°κ³Ό 전원 곡급을 ν•œλ²ˆμ— ν•  수 μžˆμ–΄ μ†μ‰½κ²Œ ν…ŒμŠ€νŠΈ ν•˜μ‹€ 수 μžˆμŠ΅λ‹ˆλ‹€.

μ†Œν”„νŠΈμ›¨μ–΄

PCμ—λŠ” νŽŒμ›¨μ–΄ 이미지λ₯Ό λ‹€μš΄λ‘œλ“œν•˜λŠ” ν”„λ‘œκ·Έλž¨μ΄ μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€. UART λΆ€νŠΈλ‘œλ” ν”„λ‘œν† μ½œμ΄ κ³΅κ°œλ˜μ–΄ μžˆμ–΄ μ›ν•˜λŠ” ν˜•νƒœλŒ€λ‘œ μ œμž‘ν•  μˆ˜λ„ 있으며, STμ—μ„œ μ œκ³΅ν•˜λŠ” 데λͺ¨ ν”„λ‘œκ·Έλž¨μ„ κ·ΈλŒ€λ‘œ μ‚¬μš©ν•΄λ„ λ©λ‹ˆλ‹€. λ³Έ λ¬Έμ„œμ—μ„œλŠ” STμ—μ„œ μ œκ³΅ν•˜λŠ” ST Flash Loader Demonstration ν”„λ‘œκ·Έλž¨μ„ μ‚¬μš©ν•˜λŠ” 방법을 μ„€λͺ…ν•˜κ² μŠ΅λ‹ˆλ‹€.

ST μ›ΉνŽ˜μ΄μ§€μ—μ„œ ST Flash Loader Demonstration ν”„λ‘œκ·Έλž¨μ„ λ‹€μš΄λ‘œλ“œ λ°›κ±°λ‚˜ λ‹€μš΄λ‘œλ“œνŽ˜μ΄μ§€μ—μ„œ λ°›μœΌμ‹€ μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

λ‹€μš΄λ‘œλ”©

Flash Loader Demonstrator ν”„λ‘œκ·Έλž¨μ„ μ‹œμž‘ν•˜λ©΄ μ•„λž˜μ™€ 같은 화면을 보싀 수 μžˆμŠ΅λ‹ˆλ‹€.

1

이 ν™”λ©΄μ—μ„œ myUSB2UART의 가상 직렬 포트 번호λ₯Ό μ„ νƒν•©λ‹ˆλ‹€. 가상 직렬 포트의 λ²ˆν˜ΈλŠ” μž₯μΉ˜κ΄€λ¦¬μžμ—μ„œ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€. 포트 ν•­λͺ©μ— Silicon Labs CP210x USB to UART Bridge의 COM 포트 번호λ₯Ό μ„ νƒν•˜λ©΄ λ©λ‹ˆλ‹€.

μž₯μΉ˜κ΄€λ¦¬μž

ν•˜λ“œμ›¨μ–΄ν•­λͺ©μ—μ„œ μ„€λͺ…ν•œ 바와 같이 SW1κ³Ό SW2λ₯Ό μ΄μš©ν•΄ λΆ€νŠΈλ‘œλ” λͺ¨λ“œλ‘œ λ¦¬μ…‹ν•œ μƒνƒœμ—μ„œ Loader ν”„λ‘œκ·Έλž¨μ˜ Next λ²„νŠΌμ„ ν΄λ¦­ν•©λ‹ˆλ‹€.

myCortex-STM32F4 λ³΄λ“œκ°€ λΆ€νŠΈλ‘œλ” λͺ¨λ“œκ°€ μ•„λ‹ˆλΌλ©΄ λ‹€μŒ ν™”λ©΄μœΌλ‘œ λ°”λ‘œ λ„˜μ–΄κ°€μ§€ μ•Šκ³  μž μ‹œν›„ μ—λŸ¬ λ©”μ‹œμ§€κ°€ 좜λ ₯λ©λ‹ˆλ‹€. 이런 κ²½μš°μ—λŠ” μ²˜μŒλΆ€ν„° λ‹€μ‹œ ν•˜λ©΄ λ©λ‹ˆλ‹€.

loader2

λ˜λ‹€μ‹œ Nextλ₯Ό ν΄λ¦­ν•©λ‹ˆλ‹€.

loader3

μœ„ ν™”λ©΄κ³Ό 같이 Select target이라 λ‚˜μ˜¬ λ•Œ STM32F4_512Kλ₯Ό μ„ νƒν•©λ‹ˆλ‹€. 그러면 μ•„λž˜μ™€ 같이 화면이 μ „ν™˜λ©λ‹ˆλ‹€.

loader4

λ˜λ‹€μ‹œ Nextλ₯Ό ν΄λ¦­ν•˜λ©΄ μ•„λž˜μ™€ 같은 화면이 λ‚˜νƒ€λ‚©λ‹ˆλ‹€.

loader5

λ‹€μš΄λ‘œλ“œ ν•  νŽŒμ›¨μ–΄ λ°”μ΄λ„ˆλ¦¬ 이미지λ₯Ό μ„ νƒν•˜κ³  λ‹€μš΄λ‘œλ“œκ°€ μ‹€ν–‰λ˜λŠ” ν™”λ©΄μž…λ‹ˆλ‹€. Download to device ν•­λͺ©μ—μ„œ λ°”μ΄λ„ˆλ¦¬ 이미지 νŒŒμΌμ„ μ„ νƒν•©λ‹ˆλ‹€. λ°”μ΄λ„ˆλ¦¬ 이미지 νŒŒμΌμ€ ν”„λ‘œμ νŠΈλ₯Ό EWARMμ—μ„œ λΉŒλ“œν•˜λ©΄ 각 예제의 Debug/Exe 폴더에 EWARM.hex 파일둜 λ§Œλ“€μ–΄μ§‘λ‹ˆλ‹€. 이 νŒŒμΌμ„ μ„ νƒν•©λ‹ˆλ‹€. λ‚˜λ¨Έμ§€ μ˜΅μ…˜λ“€μ€ μœ„ ν™”λ©΄κ³Ό 같이 μ„ νƒν•œ ν›„ Nextλ₯Ό ν΄λ¦­ν•˜λ©΄ ν”Œλž˜μ‰¬ λ©”λͺ¨λ¦¬ ν”„λ‘œκ·Έλž˜λ°μ΄ μ§„ν–‰λ˜κ³ , μ™„λ£Œλœ ν›„μ—λŠ” μžλ™μœΌλ‘œ λ¦¬μ…‹λ˜μ–΄ μ‹€ν–‰λ©λ‹ˆλ‹€.

loader6