ฉันสามารถใช้โปรแกรมเมอร์ ST-Link สำหรับชิปที่ไม่ใช่ ST ได้หรือไม่


12

ฉันสามารถตั้งโปรแกรมชิป SWD แบบตั้งโปรแกรมได้ทุกประเภท (ARM-MCU) ด้วย ST-Link ได้หรือไม่?


"ST-LINK / V2 เป็นตัวแก้จุดบกพร่องในวงจรและโปรแกรมเมอร์สำหรับตระกูลไมโครคอนโทรลเลอร์ตระกูล STM8 และ STM32" ฉันไม่คิดว่าคุณจะทำได้ในทันที แต่ควรจะทำได้ในทางทฤษฎี มีคนจัดการเชื่อมต่อกับ LPC MCU ที่นี่: lpcware.com/content/forum/…
Fluffy

1
บางทีในบางกรณีถ้าคุณใช้บางอย่างเช่น openocd มากกว่าซอฟต์แวร์ ST หากคุณประสบปัญหามีการใช้งาน CMSIS-DAP แบบโอเพนซอร์สคุณสามารถกระพริบบนมันซึ่งเป็นสากลมากขึ้นโดยการวางซอฟต์แวร์โฮสต์ในการควบคุมรายละเอียดที่ละเอียดยิ่งขึ้น
Chris Stratton

นี่ไม่ใช่สิ่งที่คุณถาม แต่ยังมีเครื่องมือดีบั๊กที่ครอบคลุมเป้าหมายหลายอย่างเช่น PE micro debuggers
mkeith

2
ฉันใช้ ST ลิงก์ไปยังโปรแกรม lpc1549 ใช้งานได้
2425240

คำตอบ:


6

นอกจากนี้คุณยังสามารถแฟลช ST-การเชื่อมโยงและแปลงเป็นเมจิก Probe ภาพเดียวกันจะแปลงBlue Pillเป็น BMP

ฉันทำทั้งสองอย่างแล้ว Blue Pill มีข้อได้เปรียบที่ usb-rs232 เป็นสะพานสำหรับการส่งออก BMP นั้นใช้งานได้ง่าย

BMP รองรับช่วงของชิปเพื่อรวม แต่ไม่ จำกัด เฉพาะ:
ST Microelectronics STM32F0, STM32F1, STM32F3, STM32F2, STM32F4, STM32F7, STM32L0, STM32L1, STM32L4
Atmel SAM3N, SAM3X, SAM3S, SAM3S, SAM4S
Nordic nRF51, nRF52 (นี่คือเหตุผลที่ฉันใช้ BMP)

BMP เป็นโอเพ่นซอร์สสามารถใช้สำหรับการเขียนโปรแกรมเชิงพาณิชย์และฮาร์ดแวร์อาจมีราคาถูก (BMP "ของจริง" ราคาประมาณ $ 60 เม็ดสีน้ำเงิน 5 แพ็คจากอเมซอนถูกส่งน้อยกว่า $ 20)


4

เพื่อเพิ่มคำตอบที่มีอยู่; ชิปบางตัวเป็นที่รู้จักกันทำงานไม่ถูกต้องกับ ST-LINK และ OpenOCD

โดยเฉพาะถ้าเป้าหมายของคุณมาจากตระกูล Atmel SAMD21 ของ MCU คุณมีแนวโน้มที่จะพบปัญหาแปลก ๆ ที่ตรวจพบโปรเซสเซอร์ แต่ความพยายามใด ๆ ในการลบเซกเตอร์แฟลชล้มเหลวโดยมีข้อผิดพลาด

เหตุผลมีส่วนร่วมค่อนข้างจะอ้างถึง:

AFAIK ปัญหาคือครึ่งคำ (16 บิต) เขียนไปยัง NVMCTRL-> การลงทะเบียน CTRLA STLink ไม่ใช้การเข้าถึงหน่วยความจำครึ่งคำและ OpenOCD จำลองเป็นแบบสองไบต์ น่าเสียดายที่การลงทะเบียน CTRLA ประกอบด้วยคีย์และคำสั่งที่ต้องเขียนแบบอะตอม ถ้า STLink เขียนสองไบต์ตัวควบคุม NVM จะตั้งค่าบิต PROGE ในสถานะ: "คำสั่งที่ไม่ถูกต้องและ / หรือคำหลักที่ไม่ถูกต้องคือ / ถูกเขียนในการลงทะเบียนคำสั่ง NVM"

วิธีแก้ปัญหาเกี่ยวข้องกับการคอมไพล์ OpenOCD ใหม่ด้วยแพตช์โค้ด ไม่สนุก.

อย่างไรก็ตามถ้าคุณไม่กระพริบ ST-Link ของคุณ (ผ่าน ST-Link อื่น) คุณสามารถแปลงเป็นอะแดปเตอร์ CMSIS-DAPซึ่งทำงานได้ดีกับ SAMD และควรทำงานกับ STM32 และ Cortex-M อื่น ๆ เงิน


1

ใช่ฉันเชื่อว่าเป็นไปได้แม้ว่าฉันจะไม่ได้ลอง คุณน่าจะฝ่าฝืนข้อตกลงสิทธิ์ใช้งาน ST หากคุณลองใช้อุปกรณ์การเขียนโปรแกรมอื่นนอกเหนือจากที่ได้รับจาก ST

เป็นตัวอย่าง Segger (หนึ่งในผู้นำตลาดใน debuggers และโปรแกรมเมอร์) สนับสนุนการแปลง ST-Link ของคุณเป็น J-link (เป็นหลักแทนที่ชิป ST-Link ด้วยรหัส Segger) สิ่งนี้สามารถย้อนกลับได้เช่นกันดังนั้นหากคุณต้องการคืนค่าอุปกรณ์ ST-link ของคุณกลับสู่รูปแบบเดิมคุณสามารถ

อย่างไรก็ตามมี ST-Link หลายรุ่นอย่างไรก็ตาม ดูลิงค์ต่อไปนี้ซึ่งให้ข้อมูลเพิ่มเติมและคำแนะนำเกี่ยวกับวิธีการทำเช่นนี้

https://www.segger.com/jlink-st-link.html
https://www.segger.com/jlink-ob.html


1
ฉันใช้ส่วนหัว stlink บน nucleo และบอร์ดการค้นพบในแบรนด์ cortex-m ส่วนใหญ่ ... และสิ่งที่ฉันไม่สามารถทำให้มันทำงานได้คือปัญหาที่ openocd กำหนดค่าไม่ใช่ stlink
old_timer

1
การกระพริบ ST-Link ไปยัง J-Link จะทำงานได้ (และถูกกฎหมาย) บน Nucleo หรือบอร์ด Discovery และใช้กับ MCU เป้าหมายเท่านั้น อ่านข้อกำหนดสิทธิการใช้งาน Seggar พวกเขาค่อนข้างเข้มงวด เท่าที่ฉันรู้แฟลช Seggar จะไม่ทำงานบน ST-Link แบบสแตนด์อะโลน
GB - AE7OO

1

ใช่มันเป็นไปได้ ฉันกำลังใช้ stlink v2 (ดั้งเดิมรวมถึง usb stick ประเภทโคลนจีน) ด้วย Coocox IDE Coocox มีแอปโปรแกรมเมอร์แบบสแตนด์อโลน - CoFlashซึ่งสามารถใช้ในการเขียนโปรแกรมชิปจำนวนมาก ฉันมีประสบการณ์กับสองซีรี่ส์เท่านั้น: LPC176x และ LPC175x ผ่านอินเตอร์เฟส SWD และฉันก็ไม่มีปัญหาอะไรกับชิปเหล่านั้น ฉันยังไม่ได้ทำการเปลี่ยนแปลงเฉพาะใด ๆ หรือการอัปเดตสำหรับโปรแกรมเมอร์ (ยกเว้นลิงค์เซนต์เดิมนั้นต้องการระดับแรงดันสูงที่ TVCC (PIN1) มิฉะนั้นจะไม่อนุญาตให้ใช้ชิปโปรแกรมดังนั้นฉันจึงเชื่อมต่อโดยตรงกับ pin 19 (3.3vcc) เพื่อ pin 1 บน stlink v2)


0

STLink V2 / V2.1 หรือ V3 พร้อมเฟิร์มแวร์ล่าสุดยังสามารถใช้กับแพลตฟอร์ม PC-stlinkv2 Blackmagic ที่โฮสต์บนพีซี คอมไพล์ด้วย "make PROBE_HOST = pc-stlinkv2" เริ่มต้นเซิร์ฟเวอร์ดีบั๊กด้วย "blackmagic_stlinkv2" และเชื่อมต่อกับ: 2000 ใน gdb หรือโหลดไบนารีโดยตรงด้วย "blackmagic_stlinkv2" ใช้ได้กับทุกเป้าหมายที่ BMP รู้ อย่างไรก็ตาม V3 จะปฏิเสธการทำงานกับเป้าหมายที่ไม่ใช่ ST ในขณะที่ V2 ไม่สนใจ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.