platformio에서 STM32
5513 단어 MacOSXSTM32PlatformIO
F103편
또 다시 톤을 타고 STM32도 시도해 보았습니다.
환경은 눈표의 MacBoot Air Original입니다.
bash-3.2$ platformio init --board genericSTM32F103C8
Arduno 스타일의 L 치카 코드를 src 이하로 만듭니다.
STM32의 순정 쓰기 툴은 ST-LINK(JTAG/SWD)입니다만, 시리얼에서의 ISP도 서포트되고 있는 것 같습니다.
타겟은 Aitendo의 EVB-STM32F103C8T6에서 boot0을 1, boot1을 0으로 하고, TXD/RXD/GND를 FT에 연결하고, 전원 공급을 위해 USB도 연결해 둡니다. 이 타겟의 TXD/RXD의 실크 반대입니다.
bash-3.2$ platformio run --target upload
[Tue Jan 31 09:37:33 2017] Processing genericSTM32F103C8 (platform: ststm32, boa
rd: genericSTM32F103C8, framework: arduino)
--------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
Converting main.ino
Collected 24 compatible libraries
Looking for dependencies...
Project does not have dependencies
Compiling .pioenvs/genericSTM32F103C8/src/main.ino.o
Looking for upload disk...
Auto-detected: /dev/cu.usbserial-DA0059MQ
Uploading .pioenvs/genericSTM32F103C8/firmware.bin
stm32flash Arduino_STM32_0.9
http://github.com/rogerclarkmelbourne/arduino_stm32
Using Parser : Raw BINARY
Interface serial_posix: 230400 8E1
Version : 0x22
Option 1 : 0x00
Option 2 : 0x00
Device ID : 0x0410 (Medium-density)
- RAM : 20KiB (512b reserved by bootloader)
- Flash : 128KiB (sector size: 4x1024)
- Option RAM : 16b
- System RAM : 2KiB
Write to memory
Erasing memory
Wrote address 0x0800200c (100.00%) Done.
Starting execution at address 0x08000000... done.
========================= [SUCCESS] Took 4.81 seconds =========================
MSP430에서는 uploader를 사용할 수 없었지만 STM32에서는 제대로 사용할 수있는 것 같습니다.
또 STM32는 많은 framework가 있어 여러가지 놀 수 있을 것 같습니다.
platformio에서 uploader가 멋지게 FT 직렬 포트를 판별하고 실행하는 처음에는 조금 저항이 있었지만 편리합니다.
정말 platformio는 훌륭합니다.
F303편
아키즈키 전자에서 팔고 있는 칩의 STM32F303K8T6 도 시도해 보았습니다.
nucleo_f303k8이 같은 칩을 사용하고 있기 때문에, 이 보드에서 init하고 mbed인 빌드는 통과했습니다. genericSTM32F103C8은 Arduino 기반이었지만 nucleo_f303k8은 mbed 기반이되는 것 같습니다.
회로를 넣어 BOOT0/NRST를 stm32flash에서 자동으로 제어할 수 있는 것 같습니다만, 귀찮았기 때문에 점퍼로 했습니다.
upload는 STLink 기반이므로 원래 303에서는 사용할 수 없으므로 직접 stm32flash를 사용했습니다.
bash-3.2$ platformio run
[Tue Mar 14 10:35:17 2017] Processing nucleo_f303k8 (platform: ststm32, board: n
ucleo_f303k8, framework: mbed)
--------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
Collected 8 compatible libraries
Looking for dependencies...
Project does not have dependencies
Calculating size .pioenvs/nucleo_f303k8/firmware.elf
text data bss dec hex filename
11588 128 1224 12940 328c .pioenvs/nucleo_f303k8/firmware.elf
========================= [SUCCESS] Took 4.25 seconds =========================
bash-3.2$ ~/.platformio/packages/tool-stm32duino/stm32flash/stm32flash -w .pioen
vs/nucleo_f303k8/firmware.bin -b 115200 /dev/cu.usbserial-DA0059MQ
stm32flash Arduino_STM32_0.9
http://github.com/rogerclarkmelbourne/arduino_stm32
Using Parser : Raw BINARY
Interface serial_posix: 115200 8E1
Version : 0x31
Option 1 : 0x00
Option 2 : 0x00
Device ID : 0x0438 (F303x4/334/328)
- RAM : 12KiB (6144b reserved by bootloader)
- Flash : 256KiB (sector size: 2x2048)
- Option RAM : 16b
- System RAM : 8KiB
Write to memory
Erasing memory
Wrote address 0x0800301c (100.00%) Done.
uploader를 변경하는 것도 할 수 있는 것 같은 생각이 듭니다만, 방법을 모릅니다.
솔직히 Nucleo Board 을 구입하면 STLinkV2의 101과 타겟의 303을 얻을 수 있지만 가제트는 1K 이내에서 구입할 수있는 것으로하고 있기 때문에, 303을 사용해 보았습니다.
싸게 STlink v2가 입수했기 때문에 stlink st-flash는 platformio에도 들어 있습니다만, 에러로 실행할 수 없었기 때문에, 빌드했습니다.
핀
SWD
1
3.3V
23
SWDIO
24
SWCLK
32
GND
bash-3.2$ ./st-flash write ../../../../ARM/pio/stm32f303/.pioenvs/nucleo_f303k8/
firmware.bin 0x8000000
st-flash 1.0.0
2018-03-01T12:40:58 INFO common.c: Loading device parameters....
2018-03-01T12:40:58 INFO common.c: Device connected is: F334 device, id 0x100164
38
2018-03-01T12:40:58 INFO common.c: SRAM size: 0x3000 bytes (12 KiB), Flash: 0x10
000 bytes (64 KiB) in pages of 2048 bytes
2018-03-01T12:40:58 INFO common.c: Attempting to write 12356 (0x3044) bytes to s
tm32 address: 134217728 (0x8000000)
Flash page at addr: 0x08003000 erased
2018-03-01T12:40:59 INFO common.c: Finished erasing 7 pages of 2048 (0x800) byte
s
2018-03-01T12:40:59 INFO common.c: Starting Flash write for VL/F0/F3/F1_XL core
id
2018-03-01T12:40:59 INFO flash_loader.c: Successfully loaded flash loader in sra
m
7/7 pages written
2018-03-01T12:40:59 INFO common.c: Starting verification of write complete
2018-03-01T12:41:00 INFO common.c: Flash written and verified! jolly good!
Reference
이 문제에 관하여(platformio에서 STM32), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yamori813/items/e8ea2f7e73fd119d0c17
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
bash-3.2$ platformio init --board genericSTM32F103C8
bash-3.2$ platformio run --target upload
[Tue Jan 31 09:37:33 2017] Processing genericSTM32F103C8 (platform: ststm32, boa
rd: genericSTM32F103C8, framework: arduino)
--------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
Converting main.ino
Collected 24 compatible libraries
Looking for dependencies...
Project does not have dependencies
Compiling .pioenvs/genericSTM32F103C8/src/main.ino.o
Looking for upload disk...
Auto-detected: /dev/cu.usbserial-DA0059MQ
Uploading .pioenvs/genericSTM32F103C8/firmware.bin
stm32flash Arduino_STM32_0.9
http://github.com/rogerclarkmelbourne/arduino_stm32
Using Parser : Raw BINARY
Interface serial_posix: 230400 8E1
Version : 0x22
Option 1 : 0x00
Option 2 : 0x00
Device ID : 0x0410 (Medium-density)
- RAM : 20KiB (512b reserved by bootloader)
- Flash : 128KiB (sector size: 4x1024)
- Option RAM : 16b
- System RAM : 2KiB
Write to memory
Erasing memory
Wrote address 0x0800200c (100.00%) Done.
Starting execution at address 0x08000000... done.
========================= [SUCCESS] Took 4.81 seconds =========================
아키즈키 전자에서 팔고 있는 칩의 STM32F303K8T6 도 시도해 보았습니다.
nucleo_f303k8이 같은 칩을 사용하고 있기 때문에, 이 보드에서 init하고 mbed인 빌드는 통과했습니다. genericSTM32F103C8은 Arduino 기반이었지만 nucleo_f303k8은 mbed 기반이되는 것 같습니다.
회로를 넣어 BOOT0/NRST를 stm32flash에서 자동으로 제어할 수 있는 것 같습니다만, 귀찮았기 때문에 점퍼로 했습니다.
upload는 STLink 기반이므로 원래 303에서는 사용할 수 없으므로 직접 stm32flash를 사용했습니다.
bash-3.2$ platformio run
[Tue Mar 14 10:35:17 2017] Processing nucleo_f303k8 (platform: ststm32, board: n
ucleo_f303k8, framework: mbed)
--------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
Collected 8 compatible libraries
Looking for dependencies...
Project does not have dependencies
Calculating size .pioenvs/nucleo_f303k8/firmware.elf
text data bss dec hex filename
11588 128 1224 12940 328c .pioenvs/nucleo_f303k8/firmware.elf
========================= [SUCCESS] Took 4.25 seconds =========================
bash-3.2$ ~/.platformio/packages/tool-stm32duino/stm32flash/stm32flash -w .pioen
vs/nucleo_f303k8/firmware.bin -b 115200 /dev/cu.usbserial-DA0059MQ
stm32flash Arduino_STM32_0.9
http://github.com/rogerclarkmelbourne/arduino_stm32
Using Parser : Raw BINARY
Interface serial_posix: 115200 8E1
Version : 0x31
Option 1 : 0x00
Option 2 : 0x00
Device ID : 0x0438 (F303x4/334/328)
- RAM : 12KiB (6144b reserved by bootloader)
- Flash : 256KiB (sector size: 2x2048)
- Option RAM : 16b
- System RAM : 8KiB
Write to memory
Erasing memory
Wrote address 0x0800301c (100.00%) Done.
uploader를 변경하는 것도 할 수 있는 것 같은 생각이 듭니다만, 방법을 모릅니다.
솔직히 Nucleo Board 을 구입하면 STLinkV2의 101과 타겟의 303을 얻을 수 있지만 가제트는 1K 이내에서 구입할 수있는 것으로하고 있기 때문에, 303을 사용해 보았습니다.
싸게 STlink v2가 입수했기 때문에 stlink st-flash는 platformio에도 들어 있습니다만, 에러로 실행할 수 없었기 때문에, 빌드했습니다.
핀
SWD
1
3.3V
23
SWDIO
24
SWCLK
32
GND
bash-3.2$ ./st-flash write ../../../../ARM/pio/stm32f303/.pioenvs/nucleo_f303k8/
firmware.bin 0x8000000
st-flash 1.0.0
2018-03-01T12:40:58 INFO common.c: Loading device parameters....
2018-03-01T12:40:58 INFO common.c: Device connected is: F334 device, id 0x100164
38
2018-03-01T12:40:58 INFO common.c: SRAM size: 0x3000 bytes (12 KiB), Flash: 0x10
000 bytes (64 KiB) in pages of 2048 bytes
2018-03-01T12:40:58 INFO common.c: Attempting to write 12356 (0x3044) bytes to s
tm32 address: 134217728 (0x8000000)
Flash page at addr: 0x08003000 erased
2018-03-01T12:40:59 INFO common.c: Finished erasing 7 pages of 2048 (0x800) byte
s
2018-03-01T12:40:59 INFO common.c: Starting Flash write for VL/F0/F3/F1_XL core
id
2018-03-01T12:40:59 INFO flash_loader.c: Successfully loaded flash loader in sra
m
7/7 pages written
2018-03-01T12:40:59 INFO common.c: Starting verification of write complete
2018-03-01T12:41:00 INFO common.c: Flash written and verified! jolly good!
Reference
이 문제에 관하여(platformio에서 STM32), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yamori813/items/e8ea2f7e73fd119d0c17텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)