KEIL5.23环境搭建和软件仿真STM32F10x
MDK-523.EXE下载
https://www.keil.com/demo/eval/arm.htm需要填写一些资料后,才能下载。
标准库下载
http://www.st.com/en/embedded-software/stm32-standard-peripheral-libraries.html?querycriteria=productId=LN1939标准外设库列表,根据需要下载。
如何创建一个不依赖IDE自带标准外设库的工程。
Startup文件夹下放置 STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm\目录下的文件。
User 目录下放置 main.c和STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template\目录下的stm32f10x_conf.h、stm32f10x_it.c和stm32f10x_it.h。
Libraries目录放置标准库STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver\目录下inc和src文件。
CMSIS目录放置STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport\下的core_cm3.h和core_cm3.c,以及STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\目录下的stm32f10x.h、system_stm32f10x.c和system_stm32f10x.h
工程中对应添加的文件
Options的C/C++页,需要添加 USE_STDPERIPH_DRIVER:用标准外设库,STM32F10x_HD这个根据实际用的HD,ld和md。
Options 的debug页需要配下图3红圈的地方。软件模拟选第一个红圈,并且需要按第三个红圈修改自己对应的MCU型号。第2个红圈单独说明。
这样设置好后,编译你的工程,点击这个按钮后,会弹出“running with xx limit 32k” 之类的,这需要注册keil的license。解决办法自己百度。
解决license问题后,执行的时候仍然会有问题,“access violation at 0x00000000 : no 'read'permission ”之类的错误提示。这时就需要用到debug页中第二个红圈的debug.ini。
map 0x40000000,0x4000FFFF read write // APB1
map 0x40010000,0x40013FFF read write // APB2 not contant TIMER9.10.11
map 0x40018000,0x40029FFF read write // AHB
map 0x50000000,0x5003FFFF read write // AHB
map 0xE0000000,0xE00FFFFF read write // CORTEX-M3 internal peripherals
FUNC voidSetup(void) {
xPSR = 1<<24;
SP =_RDWORD(0x08000000);
PC =_RDWORD(0x08000004);
_WDWORD(0xE000ED08, 0x08000000);
}
Setup();
这里数据是根据参考手册中的Memory map查找的。 不同的mcu可能不一样,需要根据参考手册调整。
不用这种ini的方式,还可以在菜单debug-》Memory map中添加对应的内存映射。
新手遇到的最主要的问题解决了,接下就实现你心中的想法了,开搞!!!
总结于网络上的资料而得。