Tôi đang sử dụng MDK-Lite Phiên bản 5.23 với bảng STMicroelectronics STM32F072B-Disco "Discovery" và tôi đang thử sử dụng Ví dụ Flash được cung cấp bởi các mẫu Discovery.
Tôi đã sử dụng bảng và toolchain này cho các ví dụ khác và tôi đã mã hóa một số công việc SPI và GPIO. IDE hoạt động như một nhà vô địch. Tuy nhiên, đối với dự án cụ thể này, tôi có thể xây dựng mã và chạy nó bằng cách tải xuống và sử dụng nút đặt lại. Tôi không thể sử dụng trình gỡ lỗi trên dự án ngay khi tôi sử dụng thói quen HAL_FLASHEx_Erase (). Khi tôi thực hiện thói quen đó, IDE sẽ bật lên hộp thoại "Không thể truy cập mục tiêu. Tắt phiên gỡ lỗi."
Đối với những gì nó có giá trị, tôi biết đó không phải là lỗi lập trình bởi vì nếu tôi tải xuống mã và sau đó thực thi mã bằng cách nhấn nút đặt lại, nó sẽ hoạt động. Tôi đã sử dụng cùng trình gỡ lỗi này với bảng TI và nó cũng có thể lập trình flash và thực hiện các thói quen flash. Tôi khá chắc chắn rằng tôi không xóa phần flash nơi mã được lưu trữ, vì vậy không phải vậy.
Nếu tôi bước qua dòng này trong main.c
if (HAL_FLASHEx_Erase(&EraseInitStruct, &PageError) != HAL_OK)
sau đó nó giảm phiên gỡ lỗi. Thay vào đó, nếu tôi bước vào cùng một dòng và sau đó bước qua từng cuộc gọi trong thói quen xóa flash, thì nó sẽ hoạt động và cuối cùng bước ra khỏi thói quen và tôi có thể gỡ lỗi phần còn lại của mã.