【中科亿海微EQ6HL45开发平台测评体验】+ ARM Cortex-M0软核处理器(三)
[复制链接]
5. 利用Keil编译并调试程序
打开Keil MDK,并打开自带的uvproj工程文件,该工程文件使用旧版本Keil MDK开发,对于新版本MDK5,可能会提示“不支持的器件”,“需要安装旧版本支持文件”等信息。
然后直接点击构建,即完成编译-链接-文件格式转换,最后得到我们需要的code.hex。注意:该hex文件为verilog-hex格式,而不是我们在MCU开发中常用的intel-hex格式。
5.1. Keil项目设置
注意该工程的设置选项,对于ROM、RAM的区域定位设置、文件输出、调试设置等,如图:
5.2. Keil仿真调试软件代码
-
解决Keil仿真过程中的“*** error 65: access violation at 0x0000000C : no ‘read’ permission”错误
- 解决步骤:
-
-
Option->Debug->Use_Simulator->CPU.DLL的Parameter,改为-REMAP。现象:依然错误,当时内存地址已经改变:*** error 65: access violation at 0x40023800 : no ‘read’ permission
-
Option->Debug->Use_Simulator->Initialization_File,打开并新建一个.ini文件,里面写上map 0x40000000,0x400FFFFF read write保存即可(MAP不区分大小写,注意read和write中间是空格不是逗号)
-
再进入Debugger就可以了
-
或者,可以省略第二步,进入Debugger之后再设置map:Debug->Memory_map,手动输入0x40000000,0x400FFFFF(输入框上面有个示例是0x4000FFFF,但是这个地址值不够大,我们要大一点的0x400FFFFF)。步骤2和4的区别在于:每次退出Debugger后,步骤4的设置都会丢失,会比较麻烦,所以一般只用步骤2的方法
-
貌似不能通过更改设置中的DLL和它的参数来修正STM32F4的这个错误。因为在keil的安装目录下的ARMBIN里面没有相应的DLL文件(通过“文件说明”项来查看文件的使用说明~)
———————————————— 版权声明:本文为CSDN博主「Maple_Leaf_15」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/Maple_Leaf_15/article/details/51057991
按照以上步骤,步骤2操作截图如下:
步骤4操作截图如下:
5.3. 调试过程与结果
调试过程中,可以在Keil的Debug界面,在Memory窗口上输入AHB2LED地址0x50000000,查看该处的值,可以看到在执行完汇编代码:
STR R0, [R1]
后,该处值按照预期,在0x55和0xAA之间变化:
|