keil软件仿真时遇到的问题汇总

一、软件仿真步骤设置:

1.target-->XTAL晶振设置(STM32,8.0)

2.Option->Debug->Use_Simulator

3.Option->Debug

     Dialog DLL默认是DARMSTM.DLL

     Parameter默认是-pSTM32F103VC

二.

keil仿真时,会遇到程序停在

  /*Wait till HSE is ready and if Time out is reached exit */

  do

  {

   HSEStatus = RCC->CR & RCC_CR_HSERDY;

   StartUpCounter++; 

  }while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT));处不动了

解决方法:

是Debug里面的设置有问题

主要是下面2项设置

Dialog DLL默认是DCM3.DLL

Parameter默认是-pCM3

应改为

Dialog DLL默认是DARMSTM.DLL

Parameter默认是-pSTM32F103ZE     //根据芯片信号具体选择

三.

STM32F407VG工程进入软件仿真时,出现*** error65: access violation at 0x0000000C : no 'read' permission错误。

当点击RUN按钮时会重复提示*** error 65: access violation at 0x00000000 : no 'execute/read'permission的错误。

解决方法:

1.Option->Debug->Use_Simulator->CPU.DLL的Parameter,改为-REMAP。现象:依然错误,当时内存地址已经改变:*** error 65: access violation at 0x40023800 : no 'read' permission

2.Option->Debug->Use_Simulator->Initialization_File,打开并新建一个.ini文件,里面写上map0x40000000,0x400FFFFF read write保存即可(MAP不区分大小写,注意read和write中间是空格不是逗号)

3. 再进入Debugger就可以了

4. 或者,可以省略第二步,进入Debugger之后再设置map:Debug->Memory_map,手动输入0x40000000,0x400FFFFF(输入框上面有个示例是0x4000FFFF,但是这个地址值不够大,我们要大一点的0x400FFFFF)。步骤2和4的区别在于:每次退出Debugger后,步骤4的设置都会丢失,会比较麻烦,所以一般只用步骤2的方法

5. 貌似不能通过更改设置中的DLL和它的参数来修正STM32F4的这个错误。因为在keil的安装目录下的\ARM\BIN里面没有相应的DLL文件(通过“文件说明”项来查看文件的使用说明~)

3.

STM32F103软件仿真时,出现:

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

解决方法:

Debug里面的设置有问题

主要是下面2项设置

Dialog DLL默认是DCM3.DLL

Parameter默认是-pCM3

应改为

Dialog DLL默认是DARMSTM.DLL

Parameter默认是-pSTM32F103VC

4.

软件仿真共示波器看波形,发现周期不对

解决方法:设置target中的晶振平率是否设置成板子中实际应用的外部晶振

你可能感兴趣的:(嵌入式)