.elfλ₯Ό μΉ©μ νλμνλ €κ³ νλ©΄ STM32L1 λ‘λκ° μ¬μ© μ€μμ λνλ΄λ μΌλ ¨μ μ€λ₯κ° λ°μνκ³ (λ μλλ‘ μΈμ© λ¨) λ€μκ³Ό κ°μ μ΄μν μ€λ₯ λ©μμ§μ ν¨κ» νμ μ°κ²°μ΄ μ€ν¨ν©λλ€.
2018-03-08T23:04:41 WARN common.c: Invalid flash type, please check device declaration
2018-03-08T23:04:41 INFO gdb-server.c: Chip ID is 00000000, Core ID is 0bc11477.
μ΄ μνλ Windows μμ€ν μμ STμ ST-Link μ νΈλ¦¬ν°λ₯Ό ν΅ν΄ νλμ¨μ΄ μ¬μ€μ μ€μ μΉ©μ μ°κ²°νμ¬ μΉ©μ΄ 'κ³ μ 'λ λκΉμ§ μ§μλ©λλ€. λ€μμ λ¬Έμ κ°μλ νλμ± μμ μ€μ st-utilμ΄ μ 곡νλ μΆλ ₯μ λλ€.
st-util 1.5.0
2018-03-08T23:04:03 INFO usb.c: -- exit_dfu_mode
2018-03-08T23:04:03 INFO common.c: Loading device parameters....
2018-03-08T23:04:03 INFO common.c: Device connected is: L0x3 device, id 0x10386417
2018-03-08T23:04:03 INFO common.c: SRAM size: 0x2000 bytes (8 KiB), Flash: 0x10000 bytes (64 KiB) in pages of 128 bytes
2018-03-08T23:04:03 INFO gdb-server.c: Chip ID is 00000417, Core ID is 0bc11477.
2018-03-08T23:04:03 INFO gdb-server.c: Listening at *:4242...
2018-03-08T23:04:13 INFO gdb-server.c: Found 4 hw breakpoint registers
2018-03-08T23:04:13 INFO gdb-server.c: GDB connected.
2018-03-08T23:04:14 INFO common.c: Attempting to write 128 (0x80) bytes to stm32 address: 134217728 (0x8000000)
Flash page at addr: 0x08000000 erased
2018-03-08T23:04:14 INFO common.c: Finished erasing 1 pages of 128 (0x80) bytes
2018-03-08T23:04:14 INFO common.c: Starting Half page flash write for STM32L core id
2018-03-08T23:04:14 INFO flash_loader.c: Successfully loaded flash loader in sram
2018-03-08T23:04:17 ERROR flash_loader.c: flash loader run error
2018-03-08T23:04:17 WARN common.c: l1_stlink_flash_loader_run(0x8000000) failed! == -1
2018-03-08T23:04:17 WARN common.c:
write_half_pages failed == -1
0/ 1 pages written
2018-03-08T23:04:17 INFO common.c: Starting verification of write complete
2018-03-08T23:04:17 INFO common.c: Flash written and verified! jolly good!
2018-03-08T23:04:17 INFO common.c: Attempting to write 128 (0x80) bytes to stm32 address: 134217856 (0x8000080)
Flash page at addr: 0x08000080 erased
2018-03-08T23:04:17 INFO common.c: Finished erasing 1 pages of 128 (0x80) bytes
2018-03-08T23:04:17 INFO common.c: Starting Half page flash write for STM32L core id
2018-03-08T23:04:17 INFO flash_loader.c: Successfully loaded flash loader in sram
2018-03-08T23:04:20 ERROR flash_loader.c: flash loader run error
2018-03-08T23:04:20 WARN common.c: l1_stlink_flash_loader_run(0x8000080) failed! == -1
2018-03-08T23:04:20 WARN common.c:
write_half_pages failed == -1
0/ 1 pages written
2018-03-08T23:04:21 INFO common.c: Starting verification of write complete
2018-03-08T23:04:21 INFO common.c: Flash written and verified! jolly good!
[ ... repeats a few times ... ]
μμ / μ€λͺ
:
νλ‘κ·Έλ¨μ΄ μ±κ³΅μ μΌλ‘ κΉλ° μ¬μΌν©λλ€. κ·Έλ¬λ μ±κ³΅λ³΄κ³ μλ λΆκ΅¬νκ³ GDBμμ λ¨κ³λ₯Ό μννλ €κ³ νλ©΄ μΉ©μ΄ μ¬μ€μ μμΉμμ 0x20000010μΌλ‘ μ§μ μ νν©λλ€. κ·Έλμ μ΄λκ°μμ λκ° μλͺ»λμλ€κ³ μκ°ν΄μΌν©λλ€.
κ·Έκ²μ μ΄μν λ¬Έμ μ λλ€. λ¬Έμ μ μμΈμ μ¦μ μ μ μμμ΅λλ€. L1 λ‘λλ κ±°μ λμΌνκΈ° λλ¬Έμ L0 μΉ©κ³Ό νΈνλ©λλ€.
μ‘°κΈ μ΄μν΄ λ³΄μ λλ€. λλ²κ·Έ νλκ·Έκ° μκ±°λ λ λ§μ μ 보λ₯Ό μ 곡νκΈ° μν΄ μΌμΌ ν κ²μ΄ μλμ§ μλ €μ£ΌμΈμ.
μνκ° μλ st-flashλ‘ νλ« λ°μ΄λ리λ₯Ό νλμ ν΄λ³΄μΈμ.
νλμλ₯Ό νμΌλ‘ λ€μ μ½μ΄μ λΉκ΅νκ±°λ gdb λλ μμ λ‘ κ²μ¬ ν΄λ³΄μμμ€.
x / 32x 0x8000000
λ²‘ν° ν
μ΄λΈμ μμμ΄ νμλμ΄μΌν©λλ€.
λ°μ΄λ리λ μ΄λμμ μμΌλ©° κ·Έκ²μ΄ μ’μμ§ μ΄λ»κ² μ μ μμ΅λκΉ?
λν μ£Όμκ° RAMμμλ κ² κ°μ κ²½μ° BOOT νμ μνλ μ΄λ»μ΅λκΉ?
μ κ° μ΄ν΄ λ³΄κ² μ΅λλ€. μ΄μ¨λ λλ²κ±°λ‘ .elfλ₯Ό μ λ‘λνλ λμ .bin νμΌμ νλμνλ λ°©λ²μ λ°°μ°λ €κ³ νμ΅λλ€.
μ½λλ STμ μ μ€ νλ μμ§λ§ λ²‘ν° ν μ΄λΈμ΄μλ μμΉλ₯Ό λ€μ μ΄ν΄ λ³΄κ² μ΅λλ€.
BOOT0 νμ μ μ§λμ΄ μμΌλ―λ‘ RAMμΌλ‘ λΆν ν΄μΌνλ€κ³ μκ°νμ§ μμ΅λλ€.
μ΄ μ§λ¬Έμ λν΄ ν루λ μ΄ν μ΄λ΄μ λ΅λ³ ν΄ λλ¦¬κ² μ΅λλ€. μ‘°μΈμ κ°μ¬λ립λλ€!
μ’μ, L0 ν μ€νΈ νλ‘κ·Έλ¨ (νΉν STμ LSI μ΄κΈ°ν μ)μ L031K6 Nucleo-32 보λμ νλμνλ €κ³ νλλ° μ λλ‘ μλν©λλ€.
κ·Έλ¬λ L051K8μμλ μ¬μ ν λ¬Έμ κ° λ°μν©λλ€. κ°μ₯ ν° μ°¨μ΄μ μ μΌλ° USB λκΈμ μ¬μ©νμ¬ L051K8 보λλ₯Ό νλ‘κ·Έλλ°νκ³ μ¨λ³΄λ ST-Link / V2-1 λλ²κ±°λ₯Ό L031K6 Nucleo 보λμ μ¬μ©νκ³ μλ€λ κ²μ λλ€. USB λλ²κ±°μμ νμ¨μ΄ μ λ°μ΄νΈλ₯Ό μλνμ§λ§ λμμ΄λμ§ μμμ΅λλ€.
λ κ²½μ° λͺ¨λ arm-eabi-none-nm
λ‘ λ²‘ν° ν
μ΄λΈμ΄ μ¬λ°λ₯΄κ² λ°°μΉλμλμ§ νμΈνμ΅λλ€. 08000000 R g_pfnVectors
st-flash write main.bin 0x08000000
λ₯Ό μ¬μ©νμ¬ .bin νμΌμ L051K8λ‘ νλμνλ©΄ μ€λ₯κ° λ°μνμ§λ§ μ¬μ ν μ±κ³΅μλ³΄κ³ ν©λλ€. λμ€μ μΉ©μ μ°κ²°νλ©΄ νλ‘κ·Έλ¨μ΄ 0xFFFFFFFEμ κ³ μ λμ΄ μμμ μ μ μμ΅λλ€.
λ€μμ st-flash
μ μΆλ ₯μ
λλ€.
st-flash 1.5.0
2018-04-23T23:26:42 INFO common.c: Loading device parameters....
2018-04-23T23:26:42 INFO common.c: Device connected is: L0x3 device, id 0x10386417
2018-04-23T23:26:42 INFO common.c: SRAM size: 0x2000 bytes (8 KiB), Flash: 0x10000 bytes (64 KiB) in pages of 128 bytes
2018-04-23T23:26:42 INFO common.c: Ignoring 4 bytes of 0x00 at end of file
2018-04-23T23:26:42 INFO common.c: Attempting to write 18404 (0x47e4) bytes to stm32 address: 134217728 (0x8000000)
Flash page at addr: 0x08004780 erased
2018-04-23T23:26:43 INFO common.c: Finished erasing 144 pages of 128 (0x80) bytes
2018-04-23T23:26:43 INFO common.c: Starting Half page flash write for STM32L core id
2018-04-23T23:26:43 INFO flash_loader.c: Successfully loaded flash loader in sram
2018-04-23T23:26:46 ERROR flash_loader.c: flash loader run error
2018-04-23T23:26:46 WARN common.c: l1_stlink_flash_loader_run(0x8000000) failed! == -1
2018-04-23T23:26:46 WARN common.c:
write_half_pages failed == -1
142/143 pages written
2018-04-23T23:27:03 INFO common.c: Starting verification of write complete
2018-04-23T23:27:04 INFO common.c: Flash written and verified! jolly good!
νμ§λ§ STμ GUI μ νΈλ¦¬ν°λ‘ νλμ λ©λͺ¨λ¦¬λ₯Ό μ΄ν΄λ³΄λ©΄ 0x08000000μμ μμνλ .bin νμΌμ 16 μ§μλ₯Ό λ³Ό μ μμ΅λλ€. νλ‘κ·Έλ¨ μμμ λ²‘ν° ν μ΄λΈμ²λΌ 보μ λλ€. κ·Έλ¦¬κ³ κΈ°λ‘ λ λ©λͺ¨λ¦¬λ 0x080047E0μμ λλλ κ²μ²λΌ 보μ΄λ©° μ΄λ νλ‘κ·Έλ¨ ν¬κΈ°μ λ§λ κ² κ°μ΅λλ€.
μ λͺ¨λ₯΄κ² μ΅λλ€. μ΄κ²μ΄ λ€λ₯Έ μ¬λμ΄ λ³΅μ ν μμλ κ²μ΄ μλλΌλ©΄ μ κ° μ¬μ©νλ μΉ©μ΄λ 보λ μΌ μ μλ€κ³ μκ°ν©λλ€.
μλ νμΈμ,
λΈλ£¨ ν 보λ (STM32F103C8X)μ λμΌν λ¬Έμ
'arm-none-eabi-gdb'λ₯Ό μ¬μ©νλ λͺ¨λ νλ‘κ·Έλ¨ νμ μ±κ³΅νκ³ νλ‘κ·Έλ¨μ 보λμμ μ μ€νλμ§λ§ λ€μ νλ‘κ·Έλλ°νλ €κ³ νλ©΄ λ€μκ³Ό κ°μ λ¬Έμ κ° λ°μνμ΅λλ€.
[ abdullatif @ Host-001 ~] $ st-util
st-util 1.5.0
2018-05-04T23 : 47 : 27 μ 보 common.c : μ₯μΉ λ§€κ° λ³μλ‘λ μ€ ....
2018-05-04T23 : 47 : 27 WARN common.c : μλͺ»λ νλμ μ ν, μ₯μΉ μ μΈμ νμΈνμμμ€.
2018-05-04T23 : 47 : 27 μ 보 gdb-server.c : μΉ© IDλ 00000000, μ½μ΄ IDλ 00000000μ
λλ€.
2018-05-04T23 : 47 : 27 μ 보 gdb-server.c : * : 4242μμ μμ μ€ ...
2018-05-04T23 : 47 : 40 μ 보 gdb-server.c : 0 hw μ€λ¨ μ λ μ§μ€ν°λ₯Ό μ°Ύμμ΅λλ€.
2018-05-04T23 : 47 : 40 μ 보 gdb-server.c : GDBκ° μ°κ²°λμμ΅λλ€.
[ abdullatif @ Host-001 λΉλ] $ arm-none-eabi-gdb Stm32blink.elf
GNU gdb (GDB) 8.1
μ μκΆ (C) 2018 Free Software Foundation, Inc.
λΌμ΄μ μ€ GPLv3 + : GNU GPL λ²μ 3 μ΄μ http://gnu.org/licenses/gpl.html
μ΄κ²μ μμ μννΈμ¨μ΄μ
λλ€. μ¬λ¬λΆμ μμ λ‘κ² λ³κ²½νκ³ μ¬λ°°ν¬ ν μ μμ΅λλ€.
λ²μ΄ νμ©νλ ν 보μ¦μ μμ΅λλ€. "λ³΅μ¬ νμ"λ₯Ό μ
λ ₯ν©λλ€.
μμΈν λ΄μ©μ "λ³΄μ¦ νμ"λ₯Ό μ°Έμ‘°νμμμ€.
μ΄ GDBλ "--host = x86_64-pc-linux-gnu --target = arm-none-eabi"λ‘ κ΅¬μ±λμμ΅λλ€.
κ΅¬μ± μΈλΆ μ¬νμ λ³΄λ €λ©΄ "show configuration"μ μ
λ ₯νμμμ€.
λ²κ·Έλ³΄κ³ μ§μΉ¨μ λ€μμ μ°Έμ‘°νμμμ€.
http://www.gnu.org/software/gdb/bugs/
λ€μμμ μ¨λΌμΈμΌλ‘ GDB μ€λͺ
μ λ° κΈ°ν λ¬Έμ 리μμ€λ₯Ό μ°ΎμΌμμμ€.
http://www.gnu.org/software/gdb/documentation/ .
λμλ§μ λ³΄λ €λ©΄ "help"λ₯Ό μ
λ ₯νμμμ€.
"λ¨μ΄"μ κ΄λ ¨λ λͺ
λ Ήμ κ²μνλ €λ©΄ "apropos word"λ₯Ό μ
λ ₯νμμμ€ ...
Stm32blink.elfμμ κΈ°νΈ μ½κΈ° ... μλ£.
(gdb) λμ νμ₯ μ격 : 4242
: 4242λ₯Ό μ¬μ©ν μ격 λλ²κΉ
0x00000000 in ?? ()
(gdb) λΆν
λ‘λ© μΉμ
.isr_vector, ν¬κΈ° 0x10c lma 0x8000000
λ‘λ μ€ν¨
(gdb)
보λκ° λ€μ μλνλ €λ©΄ 'st-flash'λ‘ λΆνΈ λ‘λλ₯Ό νλμν΄μΌν©λλ€.
λλ F103 λ¬Έμ κ° λ΄κ° λ³Έ κ²κ³Ό λμΌνλ€κ³ νμ νμ§ μμ΅λλ€. μ΄ λꡬμμ μλΉν μ μ§μλλ κ²μΌλ‘ 보μ΄λ©° L0 λ¬Έμ λ λΉ μΉ©μμλ λ°μν©λλ€.
μ΄ λ¬Έμ μ μλ μ λͺ©μ΄ μλͺ»λμμ΅λλ€. μ£μ‘ν©λλ€. λ€μ λ μ₯μΉμμ λμμ΄ λ°μν©λλ€.
STM32L052K8
STM32L082KZ
λλ src/chipid.c
λ₯Όλ³΄κ³ L0x1 λ° L0x3 μΉ©μ λν μ°Έμ‘° 맀λ΄μΌ λ§ μ€μ μ μ°Έμ‘°λμμμ νμΈνμ΅λλ€. L0x2 μΉ©μ ν° μ°¨μ΄μ μ΄ μμ΅λκΉ?
λ€μ diffλ STM32L052K8μ μ¬μ©νμ¬μ΄ λ¬Έμ λ₯Ό μμ ν ν΄κ²°νλ κ²μΌλ‘ 보μ΄μ§λ§ μ΄μμ μΈ μ루μ μ΄ μλλΌκ³ μκ°ν©λλ€.
diff --git a/src/common.c b/src/common.c
index b9b7382..7d2480d 100644
--- a/src/common.c
+++ b/src/common.c
@@ -1647,7 +1647,8 @@ int stlink_erase_flash_page(stlink_t *sl, stm32_addr_t flashaddr)
}
int stlink_erase_flash_mass(stlink_t *sl) {
- if (sl->flash_type == STLINK_FLASH_TYPE_L0) {
+ //if (sl->flash_type == STLINK_FLASH_TYPE_L0) {
+ if (sl->chip_id == STLINK_CHIPID_STM32_L0_CAT2 || sl->chip_id == STLINK_CHIPID_STM32_L0_CAT5) {
/* erase each page */
int i = 0, num_pages = (int) sl->flash_size/sl->flash_pgsz;
for (i = 0; i < num_pages; i++) {
μ΄ λ³κ²½ μ¬νμ ID 0x0417
μ μ°κ΄λ μΌλ° L0x3
λ μ΄λΈλ‘ μλ³λλ μΉ©μμ λλ μ§μ°κΈ°μ λν L0
νΉμ λμμ μ κ±°ν©λλ€.
L0
-νΉμ λ
Όλ¦¬κ° μ΄λ¬ν 'Category-3' L0x2
μΉ©μ λ¬Έμ λ₯Ό μΌμΌν€λ μ΄μ λ₯Ό λͺ¨λ₯΄κ² μ΅λλ€. STM32L031 Nucleo 보λμμ μ μλνλ κ² κ°μ΅λλ€. μ¬κΈ°μ μΉ©μ IDλ 'Category-2'μ₯μΉλ‘ μλ³λλ 0x0425
μ
λλ€.
STM32L151CCμ μ μ¬ν λ¬Έμ κ° μμ΅λλ€.
λμΌν μ€λ₯κ° λ°μνκ³ νμΈ λ¨κ³μμ μ€ν¨ν©λλ€.
ST-Link μ νΈλ¦¬ν°λ₯Ό μ¬μ©νμ¬ μλμΌλ‘ λ©λͺ¨λ¦¬λ₯Ό νμΈνλ©΄ νλμκ° μ¬λ°λ₯΄κ² κΈ°λ‘ λ κ²μΌλ‘ νμλ©λλ€.
μ₯μΉμ μ½κΈ° / μ°κΈ° 보νΈκ° μ€μ λμ΄ μμ§ μμ΅λλ€.
st-flash --reset write 'build/bin'/uartbridge-mbiot.bin 0x08000000
st-flash 1.4.0-57-g7651d21
2019-02-28T09:33:08 INFO common.c: Loading device parameters....
2019-02-28T09:33:08 INFO common.c: Device connected is: L1 Medium-Plus-density device, id 0x10f86427
2019-02-28T09:33:08 INFO common.c: SRAM size: 0x8000 bytes (32 KiB), Flash: 0x40000 bytes (256 KiB) in pages of 256 bytes
2019-02-28T09:33:08 INFO common.c: Attempting to write 14376 (0x3828) bytes to stm32 address: 134217728 (0x8000000)
Flash page at addr: 0x08003800 erased
2019-02-28T09:33:08 INFO common.c: Finished erasing 57 pages of 256 (0x100) bytes
2019-02-28T09:33:08 INFO common.c: Starting Half page flash write for STM32L core id
2019-02-28T09:33:08 INFO flash_loader.c: Successfully loaded flash loader in sram
2019-02-28T09:33:12 ERROR flash_loader.c: flash loader run error
2019-02-28T09:33:12 WARN common.c: l1_stlink_flash_loader_run(0x8000000) failed! == -1
2019-02-28T09:33:12 WARN common.c:
write_half_pages failed == -1
55/ 56 pages written
2019-02-28T09:33:25 INFO common.c: Starting verification of write complete
2019-02-28T09:33:25 ERROR common.c: Verification of flash failed at offset: 0
stlink_fwrite_flash() == -1
@WRansohoff : λ¦΄λ¦¬μ€ v1.5.1μ ββλ¬Έμ κ° μ¬μ ν μ‘΄μ¬νλμ§ νμΈνμμμ€.
λ¬Όλ‘ μ λλ€. STM32L0 μΉ΄ν κ³ λ¦¬ 2 μΉ©μμλ μ΄λ¬ν νμμ΄ κ³μ λ°μνλμ§ νμΈν©λλ€.
νμ§λ§ λλΆλΆμ 보λλ μ€ν λ¦¬μ§ ATMμ μμΌλ―λ‘ 5 μμ μ΄μ¬λ₯Ό λ§μΉ λκΉμ§ ν μ μμ κ²μ λλ€. λ―Έμν©λλ€.
@WRansohoff : μ΄κ²μ λν μ λ°μ΄νΈκ° μμ΅λκΉ?
μλ
νμΈμ, STM32L433RCμ λμΌν λ¬Έμ κ° μμ΅λλ€.
st-util 1.6.1μ μ¬μ©νκ³ μμ΅λλ€.
MCUμ νλμλ₯Ό μ§μ°μμμ€.
μ΄ κΈ°μ¬ μ¬μ© : https://electronics.stackexchange.com/questions/204996/stm32-st-link-cannot-connect-to-mcu-after-successful-programming
STM32Cubeμμ SWD / JTAG νμ νμνλ κ²μ μμμ μ μμ΅λλ€.