ฉันสามารถตั้งโปรแกรมชิป SWD แบบตั้งโปรแกรมได้ทุกประเภท (ARM-MCU) ด้วย ST-Link ได้หรือไม่?
ฉันสามารถตั้งโปรแกรมชิป SWD แบบตั้งโปรแกรมได้ทุกประเภท (ARM-MCU) ด้วย ST-Link ได้หรือไม่?
คำตอบ:
นอกจากนี้คุณยังสามารถแฟลช 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)
เพื่อเพิ่มคำตอบที่มีอยู่; ชิปบางตัวเป็นที่รู้จักกันทำงานไม่ถูกต้องกับ 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 อื่น ๆ เงิน
ใช่ฉันเชื่อว่าเป็นไปได้แม้ว่าฉันจะไม่ได้ลอง คุณน่าจะฝ่าฝืนข้อตกลงสิทธิ์ใช้งาน 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
ใช่มันเป็นไปได้ ฉันกำลังใช้ stlink v2 (ดั้งเดิมรวมถึง usb stick ประเภทโคลนจีน) ด้วย Coocox IDE Coocox มีแอปโปรแกรมเมอร์แบบสแตนด์อโลน - CoFlashซึ่งสามารถใช้ในการเขียนโปรแกรมชิปจำนวนมาก ฉันมีประสบการณ์กับสองซีรี่ส์เท่านั้น: LPC176x และ LPC175x ผ่านอินเตอร์เฟส SWD และฉันก็ไม่มีปัญหาอะไรกับชิปเหล่านั้น ฉันยังไม่ได้ทำการเปลี่ยนแปลงเฉพาะใด ๆ หรือการอัปเดตสำหรับโปรแกรมเมอร์ (ยกเว้นลิงค์เซนต์เดิมนั้นต้องการระดับแรงดันสูงที่ TVCC (PIN1) มิฉะนั้นจะไม่อนุญาตให้ใช้ชิปโปรแกรมดังนั้นฉันจึงเชื่อมต่อโดยตรงกับ pin 19 (3.3vcc) เพื่อ pin 1 บน stlink v2)
STLink V2 / V2.1 หรือ V3 พร้อมเฟิร์มแวร์ล่าสุดยังสามารถใช้กับแพลตฟอร์ม PC-stlinkv2 Blackmagic ที่โฮสต์บนพีซี คอมไพล์ด้วย "make PROBE_HOST = pc-stlinkv2" เริ่มต้นเซิร์ฟเวอร์ดีบั๊กด้วย "blackmagic_stlinkv2" และเชื่อมต่อกับ: 2000 ใน gdb หรือโหลดไบนารีโดยตรงด้วย "blackmagic_stlinkv2" ใช้ได้กับทุกเป้าหมายที่ BMP รู้ อย่างไรก็ตาม V3 จะปฏิเสธการทำงานกับเป้าหมายที่ไม่ใช่ ST ในขณะที่ V2 ไม่สนใจ