天天看點

STM32H7系列KEIL軟體仿真失敗的原因分析和解決辦法(error 65:access violation at 0x58024400 : no ‘read‘ permision)

一、問題叙述

筆者最近在使用STM32H750型号的單片機做一個小項目,調試的時候發現無法進行軟體仿真,進入仿真之後出現下圖類似的錯誤,并且無法進入main函數。

STM32H7系列KEIL軟體仿真失敗的原因分析和解決辦法(error 65:access violation at 0x58024400 : no ‘read‘ permision)

筆者在網上找了許多方法,但是一部分是隻使用STM32F10X系列的。最終筆者總結了一下方法。下文先闡述方法再大緻叙述一個原理。

二、解決方法

1、在工程目錄下新建立一個名為 debug.ini 的檔案,在檔案中寫入一下文本并儲存

map 0x40000000, 0x4000D3FF read write // APB1
map 0x40010000, 0x400177FF read write // APB2
map 0x50000000, 0x50003FFF read write // APB3
map 0x58000000, 0x58006BFF read write // APB4
map 0x40020000, 0x400BFFFF read write // AHB1
map 0x48020000, 0x48022BFF read write // AHB2
map 0x51000000, 0x52008FFF read write // AHB3
map 0x58020000, 0x580267FF read write // AHB4
map 0xE0000000, 0xE00FFFFF read write // CORTEX-M7 internal peripherals

FUNC void Setup (void) {
  xPSR = 1<<24;
  SP   = _RDWORD(0x08000000);
  PC   = _RDWORD(0x08000004); 
  _WDWORD(0xE000ED08, 0x08000000);
}

Setup();
           

2、打開KEIL,選擇 project->Options for Target '...' (上方魔術棒的标志)。打開後選擇Debug。在Initalization File 欄中添加上 剛才建立的debug.ini檔案即可

STM32H7系列KEIL軟體仿真失敗的原因分析和解決辦法(error 65:access violation at 0x58024400 : no ‘read‘ permision)