error 65: access violation at 0x40021000 : no ‘read‘ permission

Development environment: keil MDK V5.10

Operating system: windows 7 (32-bit)

 

Problem description: When using MDK for software design, instead of using ST official templates but manually created projects, using ST official version 3.5 firmware library. Compilation is completely passed, and there is a problem when using software simulation. The program cannot jump to the main entry, and it cannot be executed directly in the SystemInit() function. The error message shown in the title appears in the debug window:

error 65: access violation at 0x40021000 : no 'read' permission

As shown in the figure below, the red circles on the way indicate the location of the code execution and the corresponding error message

Searching for solutions on the Internet and comparing the project templates in the 3.5 version firmware library provided by ST, it was found that there was a problem with the dialog dll and the corresponding parameter configuration of the debug tab in the project configuration options. The default configuration after selecting the MCU is as follows:

You can see that the default configuration of dialog dll is DCM.DLL, and the default configuration of parameter is -pCM3. This configuration cannot be used for normal simulation debugging.

The correct configuration should be dialog dll: DARMSTM.dll parameter: -pSTM32F103C8

These two parameters are different according to the MCU you use. For example, the MCU used in this project is the STM series, then DARMSTM.dll should be used in the dialog DLL option. The STM in the name refers to the manufacturer, and the parameters are specific The MCU chip model of this project uses STM32F103C8T6, so STM32F103C8 is selected, as shown in the figure below:

Why use STM32F103C8T6, but the parameter can only be STM32F103C8, this is because according to ST's MCU naming rules, all the parameters required for simulation are fully specified at the position of C8, including cpu frequency, ram capacity, flash capacity , Peripheral resources, etc. The back part of the model has nothing to do with the simulation. For example, the back name mainly represents the package and operating temperature of the MCU. The official naming rules are as follows:

Of course, there is a more direct reason is that there is no detailed MCU model in the DARMSTM.DLL dynamic link library file. We can use the tool to open the dynamic link library file to check the proof, as shown in the figure below, which can clearly see one The MCU model has only 11 characters, excluding other parameter characters after it.

 

µVISION DEBUGGER: Simulation of Cortex-M Devices


Information in this knowledgebase article applies to:

  • MDK-ARM Version 5

QUESTION

I am trying to use the Simulator that is available in the µVision Debugger with MDK-ARM Version 5. However when I start the debugger I get the following error:

*** error 65: access violation at address : no 'read' permission

This error happens when my application accesses on-chip peripherals. In the past the µVision Debugger used to provide simulation for the on-chip peripherals. Is this no longer available with MDK-ARM Version 5?

ANSWER

The µVision Debugger provides complete instruction set simulation for all ARM7, ARM9, Cortex-M0/M0+, Cortex-M3 and Cortex-M4 processor cores. However it is impossible to simulate the behavior of the on-chip peripherals for many devices.

Today the capabilities of Target Debugging match the functionality of device simulation when using trace with a powerful debug adapter such as the ULINKpro Debug and Trace Unit. It provides with the real-world application features such as Code Coverage, Performance Analyzer, Event Viewer, and Logic Analyzer.

For some older devices, the legacy device simulation is still available and can also be used together with MDK Version 5 projects. To enable the device simulation open the dialog Project - Options for Target - Debug. Under the section Use Simulator change the entries for Dialog DLL and Parameter. The values from the tables below give you device simulation for certain devices. Refer to Simulated Features in the µVision Legacy Device Database to get information about the simulated peripherals for each of these devices.

Peripheral Simulation for STMicroelectronics STM32F1 Series

Dialog DLL  | Parameter       | Microcontroller Device
------------|-----------------|------------------------------------
DARMSTM.DLL | -pSTM32F101C6   | STM32F101C6
DARMSTM.DLL | -pSTM32F101C8   | STM32F101C8
DARMSTM.DLL | -pSTM32F101CBT6 | STM32F101CBT6
DARMSTM.DLL | -pSTM32F101R6   | STM32F101R6
DARMSTM.DLL | -pSTM32F101R8   | STM32F101R8
DARMSTM.DLL | -pSTM32F101RB   | STM32F101RB
DARMSTM.DLL | -pSTM32F101T6   | STM32F101T6
DARMSTM.DLL | -pSTM32F101T8   | STM32F101T8
DARMSTM.DLL | -pSTM32F101V8   | STM32F101V8
DARMSTM.DLL | -pSTM32F101VB   | STM32F101VB
DARMSTM.DLL | -pSTM32F103C6   | STM32F103C6
DARMSTM.DLL | -pSTM32F103C8   | STM32F103C8
DARMSTM.DLL | -pSTM32F103CB   | STM32F103CB
DARMSTM.DLL | -pSTM32F103R6   | STM32F103R6
DARMSTM.DLL | -pSTM32F103R8   | STM32F103R8
DARMSTM.DLL | -pSTM32F103RB   | STM32F103RB
DARMSTM.DLL | -pSTM32F103T6   | STM32F103T6
DARMSTM.DLL | -pSTM32F103T8   | STM32F103T8
DARMSTM.DLL | -pSTM32F103V8   | STM32F103V8
DARMSTM.DLL | -pSTM32F103VB   | STM32F103VB
DARMSTM.DLL | -pSTM32F103ZE   | STM32F103ZE

Peripheral Simulation for NXP LPC1100 Series

Dialog DLL  | Parameter       | Microcontroller Device
------------|-----------------|------------------------------------
DARMP1.DLL  | -pLPC1111       | LPC1111/002
DARMP1.DLL  | -pLPC1111       | LPC1111/101
DARMP1.DLL  | -pLPC1111       | LPC1111/102
DARMP1.DLL  | -pLPC1111       | LPC1111/103
DARMP1.DLL  | -pLPC1111       | LPC1111/201
DARMP1.DLL  | -pLPC1111       | LPC1111/202
DARMP1.DLL  | -pLPC1112       | LPC1112/101
DARMP1.DLL  | -pLPC1112       | LPC1112/102
DARMP1.DLL  | -pLPC1112       | LPC1112/201
DARMP1.DLL  | -pLPC1112       | LPC1112/202
DARMP1.DLL  | -pLPC1112       | LPC11C12/301
DARMP1.DLL  | -pLPC1113       | LPC1113/201
DARMP1.DLL  | -pLPC1113       | LPC1113/202
DARMP1.DLL  | -pLPC1113       | LPC1113/301
DARMP1.DLL  | -pLPC1113       | LPC1113/302
DARMP1.DLL  | -pLPC1114       | LPC1114/102
DARMP1.DLL  | -pLPC1114       | LPC1114/201
DARMP1.DLL  | -pLPC1114       | LPC1114/202
DARMP1.DLL  | -pLPC1114       | LPC1114/301
DARMP1.DLL  | -pLPC1114       | LPC1114/302
DARMP1.DLL  | -pLPC1114       | LPC11C14/301

Peripheral Simulation for NXP LPC1300 Series

Dialog DLL  | Parameter       | Microcontroller Device
------------|-----------------|------------------------------------
DARMP1.DLL  | -pLPC1311       | LPC1311
DARMP1.DLL  | -pLPC1313       | LPC1313
DARMP1.DLL  | -pLPC1342       | LPC1342
DARMP1.DLL  | -pLPC1343       | LPC1343

Peripheral Simulation for NXP LPC1700 Series

Dialog DLL  | Parameter       | Microcontroller Device
------------|-----------------|------------------------------------
DARMP1.DLL  | -pLPC1751       | LPC1751
DARMP1.DLL  | -pLPC1752       | LPC1752
DARMP1.DLL  | -pLPC1754       | LPC1754
DARMP1.DLL  | -pLPC1756       | LPC1756
DARMP1.DLL  | -pLPC1758       | LPC1758
DARMP1.DLL  | -pLPC1759       | LPC1759
DARMP1.DLL  | -pLPC1764       | LPC1764
DARMP1.DLL  | -pLPC1765       | LPC1765
DARMP1.DLL  | -pLPC1766       | LPC1766
DARMP1.DLL  | -pLPC1767       | LPC1767
DARMP1.DLL  | -pLPC1768       | LPC1768
DARMP1.DLL  | -pLPC1769       | LPC1769
DARMP1.DLL  | -pLPC1772       | LPC1772
DARMP1.DLL  | -pLPC1774       | LPC1774
DARMP1.DLL  | -pLPC1776       | LPC1776
DARMP1.DLL  | -pLPC1777       | LPC1777
DARMP1.DLL  | -pLPC1778       | LPC1778
DARMP1.DLL  | -pLPC1785       | LPC1785
DARMP1.DLL  | -pLPC1786       | LPC1786
DARMP1.DLL  | -pLPC1787       | LPC1787
DARMP1.DLL  | -pLPC1788       | LPC1788

Peripheral Simulation for Atmel SAM3 Series

no simulation for Atmel devices, according to web description.

DARMSAM3.DLL  | -pSAM3U1C       | SAM3U1C
DARMSAM3.DLL  | -pSAM3U1E       | SAM3U1E
DARMSAM3.DLL  | -pSAM3U2C       | SAM3U2C
DARMSAM3.DLL  | -pSAM3U2E       | SAM3U2E
DARMSAM3.DLL  | -pSAM3U4C       | SAM3U4C
DARMSAM3.DLL  | -pSAM3U4E       | SAM3U4E

Peripheral Simulation for Toshiba TX03 Series

Dialog DLL  | Parameter           | Microcontroller Device
------------|---------------------|------------------------------------
DARMT3.DLL  | -pTMPM330FDFG       | TMPM330FDFG
DARMT3.DLL  | -pTMPM330FWFG       | TMPM330FWFG
DARMT3.DLL  | -pTMPM330FYFG       | TMPM330FYFG

Peripheral Simulation for Texas Instruments LM3S Series

Dialog DLL  | Parameter           | Microcontroller Device
------------|---------------------|------------------------------------
DLM.DLL     | -pLM3S101           | LM3S101
DLM.DLL     | -pLM3S102           | LM3S102
DLM.DLL     | -pLM3S1110          | LM3S1110
DLM.DLL     | -pLM3S1133          | LM3S1133
DLM.DLL     | -pLM3S1138          | LM3S1138
DLM.DLL     | -pLM3S1150          | LM3S1150
DLM.DLL     | -pLM3S1162          | LM3S1162
DLM.DLL     | -pLM3S1165          | LM3S1165
DLM.DLL     | -pLM3S1332          | LM3S1332
DLM.DLL     | -pLM3S1435          | LM3S1435
DLM.DLL     | -pLM3S1439          | LM3S1439
DLM.DLL     | -pLM3S1512          | LM3S1512
DLM.DLL     | -pLM3S1538          | LM3S1538
DLM.DLL     | -pLM3S1601          | LM3S1601
DLM.DLL     | -pLM3S1607          | LM3S1607
DLM.DLL     | -pLM3S1608          | LM3S1608
DLM.DLL     | -pLM3S1620          | LM3S1620
DLM.DLL     | -pLM3S1625          | LM3S1625
DLM.DLL     | -pLM3S1626          | LM3S1626
DLM.DLL     | -pLM3S1627          | LM3S1627
DLM.DLL     | -pLM3S1635          | LM3S1635
DLM.DLL     | -pLM3S1637          | LM3S1637
DLM.DLL     | -pLM3S1751          | LM3S1751
DLM.DLL     | -pLM3S1776          | LM3S1776
DLM.DLL     | -pLM3S1850          | LM3S1850
DLM.DLL     | -pLM3S1911          | LM3S1911
DLM.DLL     | -pLM3S1918          | LM3S1918
DLM.DLL     | -pLM3S1937          | LM3S1937
DLM.DLL     | -pLM3S1958          | LM3S1958
DLM.DLL     | -pLM3S1960          | LM3S1960
DLM.DLL     | -pLM3S1968          | LM3S1968
DLM.DLL     | -pLM3S1968          | LM3S1968
DLM.DLL     | -pLM3S2110          | LM3S2110
DLM.DLL     | -pLM3S2110          | LM3S2110
DLM.DLL     | -pLM3S2139          | LM3S2139
DLM.DLL     | -pLM3S2276          | LM3S2276
DLM.DLL     | -pLM3S2410          | LM3S2410
DLM.DLL     | -pLM3S2432          | LM3S2432
DLM.DLL     | -pLM3S2533          | LM3S2533
DLM.DLL     | -pLM3S2601          | LM3S2601
DLM.DLL     | -pLM3S2601          | LM3S2601
DLM.DLL     | -pLM3S2608          | LM3S2608
DLM.DLL     | -pLM3S2616          | LM3S2616
DLM.DLL     | -pLM3S2620          | LM3S2620
DLM.DLL     | -pLM3S2637          | LM3S2637
DLM.DLL     | -pLM3S2651          | LM3S2651
DLM.DLL     | -pLM3S2671          | LM3S2671
DLM.DLL     | -pLM3S2678          | LM3S2678
DLM.DLL     | -pLM3S2776          | LM3S2776
DLM.DLL     | -pLM3S2911          | LM3S2911
DLM.DLL     | -pLM3S2918          | LM3S2918
DLM.DLL     | -pLM3S2939          | LM3S2939
DLM.DLL     | -pLM3S2948          | LM3S2948
DLM.DLL     | -pLM3S2950          | LM3S2950
DLM.DLL     | -pLM3S2965          | LM3S2965
DLM.DLL     | -pLM3S2965          | LM3S2965
DLM.DLL     | -pLM3S300           | LM3S300
DLM.DLL     | -pLM3S301           | LM3S301
DLM.DLL     | -pLM3S308           | LM3S308
DLM.DLL     | -pLM3S310           | LM3S310
DLM.DLL     | -pLM3S315           | LM3S315
DLM.DLL     | -pLM3S316           | LM3S316
DLM.DLL     | -pLM3S317           | LM3S317
DLM.DLL     | -pLM3S328           | LM3S328
DLM.DLL     | -pLM3S3651          | LM3S3651
DLM.DLL     | -pLM3S3739          | LM3S3739
DLM.DLL     | -pLM3S3748          | LM3S3748
DLM.DLL     | -pLM3S3748          | LM3S3748
DLM.DLL     | -pLM3S3749          | LM3S3749
DLM.DLL     | -pLM3S3759          | LM3S3759
DLM.DLL     | -pLM3S3768          | LM3S3768
DLM.DLL     | -pLM3S5632          | LM3S5632
DLM.DLL     | -pLM3S5652          | LM3S5652
DLM.DLL     | -pLM3S5662          | LM3S5662
DLM.DLL     | -pLM3S5732          | LM3S5732
DLM.DLL     | -pLM3S5737          | LM3S5737
DLM.DLL     | -pLM3S5739          | LM3S5739
DLM.DLL     | -pLM3S5747          | LM3S5747
DLM.DLL     | -pLM3S5749          | LM3S5749
DLM.DLL     | -pLM3S5752          | LM3S5752
DLM.DLL     | -pLM3S5757          | LM3S5757
DLM.DLL     | -pLM3S5762          | LM3S5762
DLM.DLL     | -pLM3S5767          | LM3S5767
DLM.DLL     | -pLM3S5768          | LM3S5768
DLM.DLL     | -pLM3S5769          | LM3S5769
DLM.DLL     | -pLM3S5791          | LM3S5791
DLM.DLL     | -pLM3S601           | LM3S601
DLM.DLL     | -pLM3S608           | LM3S608
DLM.DLL     | -pLM3S610           | LM3S610
DLM.DLL     | -pLM3S6100          | LM3S6100
DLM.DLL     | -pLM3S611           | LM3S611
DLM.DLL     | -pLM3S6110          | LM3S6110
DLM.DLL     | -pLM3S612           | LM3S612
DLM.DLL     | -pLM3S613           | LM3S613
DLM.DLL     | -pLM3S615           | LM3S615
DLM.DLL     | -pLM3S617           | LM3S617
DLM.DLL     | -pLM3S618           | LM3S618
DLM.DLL     | -pLM3S628           | LM3S628
DLM.DLL     | -pLM3S6420          | LM3S6420
DLM.DLL     | -pLM3S6422          | LM3S6422
DLM.DLL     | -pLM3S6432          | LM3S6432
DLM.DLL     | -pLM3S6537          | LM3S6537
DLM.DLL     | -pLM3S6610          | LM3S6610
DLM.DLL     | -pLM3S6611          | LM3S6611
DLM.DLL     | -pLM3S6618          | LM3S6618
DLM.DLL     | -pLM3S6633          | LM3S6633
DLM.DLL     | -pLM3S6637          | LM3S6637
DLM.DLL     | -pLM3S6730          | LM3S6730
DLM.DLL     | -pLM3S6753          | LM3S6753
DLM.DLL     | -pLM3S6911          | LM3S6911
DLM.DLL     | -pLM3S6918          | LM3S6918
DLM.DLL     | -pLM3S6938          | LM3S6938
DLM.DLL     | -pLM3S6950          | LM3S6950
DLM.DLL     | -pLM3S6952          | LM3S6952
DLM.DLL     | -pLM3S6965          | LM3S6965
DLM.DLL     | -pLM3S800           | LM3S800
DLM.DLL     | -pLM3S801           | LM3S801
DLM.DLL     | -pLM3S808           | LM3S808
DLM.DLL     | -pLM3S811           | LM3S811
DLM.DLL     | -pLM3S812           | LM3S812
DLM.DLL     | -pLM3S815           | LM3S815
DLM.DLL     | -pLM3S817           | LM3S817
DLM.DLL     | -pLM3S818           | LM3S818
DLM.DLL     | -pLM3S828           | LM3S828
DLM.DLL     | -pLM3S8530          | LM3S8530
DLM.DLL     | -pLM3S8538          | LM3S8538
DLM.DLL     | -pLM3S8630          | LM3S8630
DLM.DLL     | -pLM3S8730          | LM3S8730
DLM.DLL     | -pLM3S8733          | LM3S8733
DLM.DLL     | -pLM3S8738          | LM3S8738
DLM.DLL     | -pLM3S8930          | LM3S8930
DLM.DLL     | -pLM3S8933          | LM3S8933
DLM.DLL     | -pLM3S8938          | LM3S8938
DLM.DLL     | -pLM3S8962          | LM3S8962
DLM.DLL     | -pLM3S8970          | LM3S8970
DLM.DLL     | -pLM3S8971          | LM3S8971

MORE INFORMATION

Guess you like

Origin blog.csdn.net/qq_36958104/article/details/111859366