Tôi có thể lập trình tất cả các loại chip lập trình SWD (ARM-MCU) với ST-Link không?
Tôi có thể lập trình tất cả các loại chip lập trình SWD (ARM-MCU) với ST-Link không?
Câu trả lời:
Bạn cũng có thể flash liên kết st và chuyển đổi nó thành Black Magic Thăm dò . Hình ảnh tương tự cũng sẽ chuyển đổi Blue Pill thành BMP.
Tôi đã làm cả hai. Blue Pill có lợi thế là cầu nối USB-rs 232 mà BMP xuất khẩu có sẵn dễ dàng.
BMP hỗ trợ một loạt các chip bao gồm nhưng không giới hạn:
ST Microelectronics STM32F0, STM32F1, STM32F3, STM32F2, STM32F4, STM32F7, STM32L0, STM32L1, STM32L4
Atmel SAM3N, SAM3X, SAM3S, SAM3U, SAM4S, SAM4L, SAM D20, D21
Bắc Âu nRF51, nRF52 (Đây là lý do tại sao tôi sử dụng BMP)
BMP là mã nguồn mở, có thể được sử dụng cho lập trình thương mại và phần cứng có thể rẻ (BMP "thực" có giá khoảng 60 đô la, một gói thuốc màu xanh 5 viên từ amazon được bán dưới 20 đô la).
Để thêm vào câu trả lời hiện có; một số chip được biết là không hoạt động đúng với ST-LINK và OpenOCD.
Đặc biệt, nếu mục tiêu của bạn là từ nhóm MCU Atmel SAMD21, bạn có thể gặp phải các vấn đề kỳ lạ, nơi bộ xử lý được phát hiện, nhưng mọi nỗ lực xóa các vùng flash đều bị lỗi.
Lý do là khá liên quan , để trích dẫn:
AFAIK vấn đề là trong một nửa từ (16 bit) ghi vào thanh ghi NVMCTRL-> CTRLA. STLink không thực hiện truy cập bộ nhớ nửa từ và mô phỏng OpenOCD là hai hoạt động byte. Thật không may, thanh ghi CTRLA bao gồm từ khóa và lệnh phải được viết bằng nguyên tử. Nếu STLink ghi hai byte, bộ điều khiển NVM đặt bit PROGE trong TÌNH TRẠNG: "Một lệnh không hợp lệ và / hoặc một từ khóa xấu đã / được ghi trong thanh ghi lệnh NVM"
Cách giải quyết liên quan đến việc biên dịch lại OpenOCD với các bản vá mã. Không vui.
Tuy nhiên, nếu bạn không nhớ flash ST-Link của mình (thông qua ST-Link khác), bạn có thể chuyển đổi nó thành bộ điều hợp CMSIS-DAP , hoạt động tốt với SAMD và cũng hoạt động với STM32 và Cortex-M khác khoai tây chiên.
Có tôi tin rằng điều này là có thể, mặc dù tôi đã không thử nó. Bạn có thể vi phạm thỏa thuận Cấp phép ST, nếu bạn đã thử các thiết bị lập trình khác với các thiết bị từ ST
Như một ví dụ Segger (Một trong những công ty dẫn đầu thị trường về trình gỡ lỗi và lập trình viên) hỗ trợ chuyển đổi ST-Link của bạn thành J-link (về cơ bản ghi đè chip ST-Link bằng mã Segger). Điều này cũng có thể đảo ngược, vì vậy nếu bạn muốn khôi phục thiết bị liên kết ST của mình trở lại dạng ban đầu, bạn có thể.
Tuy nhiên, có một số phiên bản của ST-Link. Hãy xem các liên kết sau đây cung cấp thêm thông tin và hướng dẫn về cách thực hiện việc này.
https://www.segger.com/jlink-st-link.html
https://www.segger.com/jlink-ob.html
Vâng nó có thể. Tôi đang sử dụng stlink v2 (bản gốc, cũng như bản sao loại USB Trung Quốc) với Coocox IDE. Coocox cũng có ứng dụng lập trình độc lập - CoFlash , có thể được sử dụng để lập trình rất nhiều chip. Tôi có kinh nghiệm chỉ với hai loạt: LPC176x và LPC175x, qua giao diện SWD. Và tôi không có vấn đề gì với những con chip đó. Tôi cũng chưa thực hiện bất kỳ thay đổi hoặc cập nhật cụ thể nào cho các lập trình viên (ngoại trừ liên kết st gốc yêu cầu mức điện áp cao ở TVCC (PIN1), nếu không, nó không cho phép lập trình chip, vì vậy tôi đã kết nối trực tiếp pin 19 (3.3vcc) để ghim 1 trên stlink v2).
Một STLink V2 / V2.1 hoặc V3 với phần sụn gần đây cũng có thể được sử dụng với nền tảng PC-stlinkv2 được lưu trữ trên PC. Biên dịch với "make PROBE_HOST = pc-stlinkv2", khởi động máy chủ gỡ lỗi bằng "blackmagic_stlinkv2" và kết nối với: 2000 trong gdb hoặc tải trực tiếp các tệp nhị phân bằng "blackmagic_stlinkv2". Điều này hoạt động với tất cả các mục tiêu mà BMP biết. Tuy nhiên, V3 chủ động từ chối làm việc trên các mục tiêu không phải ST, trong khi V2 không quan tâm.