一、软件仿真步骤设置:
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中的晶振平率是否设置成板子中实际应用的外部晶振